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 条
  • [1] The evolution of Java build systems
    Shane McIntosh
    Bram Adams
    Ahmed E. Hassan
    Empirical Software Engineering, 2012, 17 : 578 - 608
  • [2] Towards Build Verifiability for Java']Java-based Systems
    Xiong, Jiawen
    Shi, Yong
    Chen, Boyuan
    Cogo, Filipe R.
    Jiang, Zhen Ming
    2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE (ICSE-SEIP 2022), 2022, : 297 - 306
  • [3] Vroom: Faster Build Processes for Java']Java
    Bell, Jonathan
    Melski, Eric
    Dattatreya, Mohan
    Kaiser, Gail E.
    IEEE SOFTWARE, 2015, 32 (02) : 96 - 103
  • [4] Exception Evolution in Long-lived Java']Java Systems
    Osman, Haidar
    Chis, Andrei
    Corrodi, Claudio
    Ghafari, Mohammad
    Nierstrasz, Oscar
    2017 IEEE/ACM 14TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2017), 2017, : 302 - 311
  • [5] Build System with Lazy Retrieval for Java']Java Projects
    Celik, Ahmet
    Knaust, Alex
    Milicevic, Aleksandar
    Gligoric, Milos
    FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, : 643 - 654
  • [6] The evolution of Java']Java security
    Koved, L
    Nadalin, AJ
    Neal, D
    Lawson, T
    IBM SYSTEMS JOURNAL, 1998, 37 (03) : 349 - 364
  • [7] Towards Build Verifiability for Java-based Systems
    Xiong, Jiawen
    Shi, Yong
    Chen, Boyuan
    Cogo, Filipe R.
    Jiang, Zhen Ming Jack
    Proceedings - International Conference on Software Engineering, 2022, : 297 - 306
  • [8] Java']Java and the evolution of Web software
    Steele, G
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 538 - 538
  • [9] Simplifying the evolution of Java']Java programs
    Seiter, LM
    Lieberherr, KJ
    Orleans, D
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 655 - 656
  • [10] Evolution of distributed Java']Java programs
    Eisenbach, S
    Sadler, C
    Shaikh, S
    COMPONENT DEPLOYMENT, 2002, 2370 : 51 - 66