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 条
  • [21] Understanding Type Changes in Java']Java
    Ketkar, Ameya
    Tsantalis, Nikolaos
    Dig, Danny
    PROCEEDINGS OF THE 28TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '20), 2020, : 629 - 641
  • [22] A study of library migrations in Java']Java
    Teyton, Cedric
    Falleri, Jean-Remy
    Palyart, Marc
    Blanc, Xavier
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2014, 26 (11) : 1030 - 1052
  • [23] Safe Automated Refactoring for Intelligent Parallelization of Java']Java 8 Streams
    Khatchadourian, Raffi
    Tang, Yiming
    Bagherzadeh, Mehdi
    Ahmed, Syed
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019), 2019, : 619 - 630
  • [24] Safe and Atomic Run-time Code Evolution for Java']Java and its Application to Dynamic AOP
    Wuerthinger, Thomas
    Ansaloni, Danilo
    Binder, Walter
    Wimmer, Christian
    Moessenboeck, Hanspeter
    ACM SIGPLAN NOTICES, 2011, 46 (10) : 825 - 844
  • [25] An Empirical Study on the Practice of Maintaining Object-Relational Mapping Code in Java']Java Systems
    Chen, Tse-Hsun
    Shang, Weiyi
    Yang, Jinqiu
    Hassan, Ahmed E.
    Godfrey, Michael W.
    Nasser, Mohamed
    Flora, Parminder
    13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 165 - 176
  • [26] A comprehensive catalog of refactoring strategies to handle test smells in Java']Java-based systems
    Martins, Luana
    Ghaleb, Taher A.
    Costa, Heitor
    Machado, Ivan
    SOFTWARE QUALITY JOURNAL, 2024, 32 (02) : 641 - 679
  • [27] Genetic diversity and the origin of commercial plantation of Indonesian teak on Java']Java Island
    Prasetyo, Eko
    Widiyatno
    Indrioko, Sapto
    Na'iem, Mohammad
    Matsui, Tetsuya
    Matsuo, Ayumi
    Suyama, Yoshihisa
    Tsumura, Yoshihiko
    TREE GENETICS & GENOMES, 2020, 16 (02)
  • [28] JMaCS: a Java']Java monitoring and control system
    Dickens, Rob
    ADVANCED SOFTWARE AND CONTROL FOR ASTRONOMY II, PTS 1 & 2, 2008, 7019
  • [29] Preventive program maintenance in Demeter/Java']Java
    Lieberherr, KJ
    Orleans, D
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 604 - 605
  • [30] A Public Unified Bug Dataset for Java']Java
    Ferenc, Rudolf
    Toth, Zoltan
    Ladanyi, Gergely
    Siket, Istvan
    Gyimothy, Tibor
    PROMISE'18: PROCEEDINGS OF THE 14TH INTERNATIONAL CONFERENCE ON PREDICTIVE MODELS AND DATA ANALYTICS IN SOFTWARE ENGINEERING, 2018, : 12 - 21