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] A Shadow Structure for Modularity of Java']Java Program Evolution
    Ajouli, Akram
    PROCEEDINGS 41ST EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS SEAA 2015, 2015, : 39 - 42
  • [32] Transparent dynamic database evolution from Java']Java™
    Rashid, A
    Sawyer, P
    JAVA AND DATABASES, 2000, : 373 - 386
  • [33] An empirical study of evolution of inheritance in Java']Java OSS
    Nasseri, E.
    Counsell, S.
    Shepperd, M.
    ASWEC 2008: 19TH AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2008, : 269 - 278
  • [34] Observations on the assured evolution of concurrent Java']Java programs
    Greenhouse, A
    Halloran, TJ
    Scherlis, WL
    SCIENCE OF COMPUTER PROGRAMMING, 2005, 58 (03) : 384 - 411
  • [35] Evolution of the Practice of Software Testing in Java']Java Projects
    Islam, Anisha
    Hewage, Nipuni Tharushika
    Bangash, Abdul Ali
    Hindle, Abram
    2023 IEEE/ACM 20TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2023, : 367 - 371
  • [36] Unrestricted and safe dynamic code evolution for Java']Java
    Wuerthinger, Thomas
    Wimmer, Christian
    Stadler, Lukas
    SCIENCE OF COMPUTER PROGRAMMING, 2013, 78 (05) : 481 - 498
  • [37] Java']Java in embedded systems: two approaches
    Hedenstedt, J
    COMPUTER DESIGN, 1998, 37 (08): : 74 - 74
  • [38] JS']JSET - THE JAVA']JAVA SOFTWARE EVOLUTION TRACKER
    Molnar, Arthur-Jozsef
    KEPT 2011: KNOWLEDGE ENGINEERING PRINCIPLES AND TECHNIQUES, 2011, : 259 - 270
  • [39] Teaching database management systems with Java']Java
    Merzbacher, M
    SIGCSE 2000: PROCEEDINGS OF THE THIRTY-FIRST SIGCSE TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2000, 32 (01): : 31 - 35
  • [40] Generating Java']Java code for TINA systems
    Guimaraes, RP
    Borelli, WD
    14TH SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING, PROCEEDINGS, 2002, : 68 - 74