Predicting Fault Incidence Using Software Change History
IEEE Transactions on Software Engineering
Elements of Software Science (Operating and programming systems series)
Elements of Software Science (Operating and programming systems series)
Language-specific make technology for the Java programming language
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Overhauling Amd for the '00s: A Case Study of GNU Autotools
Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Metrics and Laws of Software Evolution - The Nineties View
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
The Build-Time Software Architecture View
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Evolution in Open Source Software: A Case Study
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Use of relative code churn measures to predict system defect density
Proceedings of the 27th international conference on Software engineering
IEEE Transactions on Software Engineering
Feature Identification: A Novel Approach and a Case Study
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Evolution and Growth in Large Libre Software Projects
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
Beyond source code: the importance of other artifacts in software development (a case study)
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
Kode vicious: System changes and side effects
Communications of the ACM - A Direct Path to Dependable Software
How developer communication frequency relates to bug introducing changes
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
A model of large program development
IBM Systems Journal
Variability modeling in the real: a perspective from the operating systems domain
Proceedings of the IEEE/ACM international conference on Automated software engineering
An empirical study of build maintenance effort
Proceedings of the 33rd International Conference on Software Engineering
On understanding laws, evolution, and conservation in the large-program life cycle
Journal of Systems and Software
A study of variability spaces in open source software
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
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.