The evolution of Java']Java build systems

被引:37
|
作者
McIntosh, Shane [1 ]
Adams, Bram [1 ]
Hassan, Ahmed E. [1 ]
机构
[1] Queens Univ, SAIL, Kingston, ON, Canada
关键词
Build systems; Software evolution; ANT; Maven; Software complexity; SOFTWARE; PROGRAM; CODE;
D O I
10.1007/s10664-011-9169-5
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Build systems are responsible for transforming static source code artifacts into executable software. While build systems play such a crucial role in software development and maintenance, they have been largely ignored by software evolution researchers. However, a firm understanding of build system aging processes is needed in order to allow project managers to allocate personnel and resources to build system maintenance tasks effectively, and reduce the build maintenance overhead on regular development activities. In this paper, we study the evolution of build systems based on two popular Java build languages (i.e., ANT and Maven) from two perspectives: (1) a static perspective, where we examine the complexity of build system specifications using software metrics adopted from the source code domain; and (2) a dynamic perspective, where the complexity and coverage of representative build runs are measured. Case studies of the build systems of six open source build projects with a combined history of 172 releases show that build system and source code size are highly correlated, with source code restructurings often requiring build system restructurings. Furthermore, we find that Java build systems evolve dynamically in terms of duration and recursive depth of the directory hierarchy.
引用
收藏
页码:578 / 608
页数:31
相关论文
共 50 条
  • [31] Java']Java™:: the practical virtuality of Internet programming
    MacKenzie, Adrian
    NEW MEDIA & SOCIETY, 2006, 8 (03) : 441 - 465
  • [32] On tracking Java']Java methods with Git mechanisms
    Higo, Yoshiki
    Hayashi, Shinpei
    Kusumoto, Shinji
    JOURNAL OF SYSTEMS AND SOFTWARE, 2020, 165
  • [33] In vivo test and rollback of Java']Java applications as they are
    Bertolino, Antonia
    De Angelis, Guglielmo
    Miranda, Breno
    Tonella, Paolo
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2023, 33 (07)
  • [34] Flight of the FINCH Through the Java']Java Wilderness
    Orlov, Michael
    Sipper, Moshe
    IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, 2011, 15 (02) : 166 - 182
  • [35] Verifying temporal specifications of Java']Java programs
    Spegni, Francesco
    Spalazzi, Luca
    Liva, Giovanni
    Pinzger, Martin
    Bollin, Andreas
    SOFTWARE QUALITY JOURNAL, 2020, 28 (02) : 695 - 744
  • [36] Regression test selection for Java']Java software
    Harrold, MJ
    Jones, JA
    Li, TY
    Liang, DL
    Orso, A
    Pennings, M
    Sinha, S
    Spoon, SA
    Gujarathi, A
    ACM SIGPLAN NOTICES, 2001, 36 (11) : 312 - 326
  • [37] A Java']Java software for creation of image mosaics
    Bossert, O
    COMPUTER METHODS AND PROGRAMS IN BIOMEDICINE, 2004, 75 (02) : 159 - 161
  • [38] JaMaBuild: Mass Building of Java']Java Projects
    Sulir, Matus
    Nosal, Milan
    COMPANION PROCEEDINGS OF THE 2023 ACM SIGPLAN INTERNATIONAL CONFERENCE ON SYSTEMS, PROGRAMMING, LANGUAGES, AND APPLICATIONS: SOFTWARE FOR HUMANITY, SPLASH COMPANION 2023, 2023, : 56 - 57
  • [39] Suboptimal Comments in Java']Java Projects: From Independent Comment Changes to Commenting Practices
    Wang, Chao
    He, Hao
    Pal, Uma
    Marinov, Darko
    Zhou, Minghui
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2023, 32 (02)
  • [40] Injecting Shortcuts for Faster Running Java']Java Code
    Brownlee, Alexander E., I
    Petke, Justyna
    Rasburn, Anna F.
    2020 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION (CEC), 2020,