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 条
  • [41] ASSESSING COGNITIVE COMPLEXITY IN JAVA']JAVA-BASED OBJECT-ORIENTED SYSTEMS: METRICS AND TOOL SUPPORT
    Crasso, Marco
    Mateos, Cristian
    Zunino, Alejandro
    Misra, Sanjay
    Polvorin, Pablo
    COMPUTING AND INFORMATICS, 2016, 35 (03) : 497 - 527
  • [42] JFML: A Java']Java Library to Design Fuzzy Logic Systems According to the IEEE Std 1855-2016
    Soto-Hidalgo, J. M.
    Alonso, Jose M.
    Acampora, Giovanni
    Alcala-Fdez, J.
    IEEE ACCESS, 2018, 6 : 54952 - 54964
  • [43] Studying the Use of Java']Java Logging Utilities in the Wild
    Chen, Boyuan
    Jiang, Zhen Ming
    2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 397 - 408
  • [44] Challenges of Producing Software Bill of Materials for Java']Java
    Balliu, Musard
    Baudry, Benoit
    Bobadilla, Sofia
    Ekstedt, Mathias
    Monperrus, Martin
    Ron, Javier
    Sharma, Aman
    Skoglund, Gabriel
    Soto-Valero, Cesar
    Wittlinger, Martin
    IEEE SECURITY & PRIVACY, 2023, 21 (06) : 12 - 23
  • [45] Spork: Structured Merge for Java']Java With Formatting Preservation
    Larsen, Simon
    Falleri, Jean-Remy
    Baudry, Benoit
    Monperrus, Martin
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (01) : 64 - 83
  • [46] Updating Gin's profiler for current Java']Java
    Watkinson, Myles
    Brownlee, Alexander E. I.
    2023 IEEE/ACM INTERNATIONAL WORKSHOP ON GENETIC IMPROVEMENT, GI, 2023, : 23 - 28
  • [47] A multimedia case management system implemented in Java']Java
    Stewart, HD
    Davis, ML
    Handy, DL
    Kvarfordt, KB
    Ford, G
    SENSORS, C31, INFORMATION, AND TRAINING TECHNOLOGIES FOR LAW ENFORCEMENT, 1999, 3577 : 200 - 208
  • [48] Teaching digital holography through an interface in Java']Java
    Araiza-Esquivel, Ma.
    Godina, Pilar C.
    Lopez-Martinez, Alfonso
    Olvera, Carlos
    Villagrana Barraza, Santiago
    Ortiz-Daz, Diana
    FIFTEENTH CONFERENCE ON EDUCATION AND TRAINING IN OPTICS AND PHOTONICS (ETOP 2019), 2019, 11143
  • [49] An empirical study of data constraint implementations in Java']Java
    Florez, Juan Manuel
    Moreno, Laura
    Zhang, Zenong
    Wei, Shiyi
    Marcus, Andrian
    EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (05)
  • [50] A journey among Java']Java neutral program variants
    Harrand, Nicolas
    Allier, Simon
    Rodriguez-Cancio, Marcelino
    Monperrus, Martin
    Baudry, Benoit
    GENETIC PROGRAMMING AND EVOLVABLE MACHINES, 2019, 20 (04) : 531 - 580