A Large Scale Empirical Study of the Relationship Between Build Technology and Build Maintenance

Authors -

Shane, McIntosh; Meiyappan, Nagappan; Bram, Adams; Audris, Mockus and Ahmed, E. Hassan

Venue -

Empirical Software Engineering, Accepted to be published on May 23 2014

Related Tags -

Abstract -

Build systems specify how source code is translated into deliverables. They require continual maintenance as the system they build evolves. This build maintenance can become so burdensome that projects switch build technologies, potentially having to rewrite thousands of lines of build code. We aim to understand the prevalence of different build technologies and the relationship between build technology and build maintenance by analyzing version histories in a corpus of 177,039 repositories spread across four software forges, three software ecosystems, and four largescale projects. We study low-level, abstraction-based, and framework-driven build technologies, as well as tools that automatically manage external dependencies. We find that modern, framework-driven build technologies need to be maintained more often and these build changes are more tightly coupled with the source code than low-level or abstraction-based ones. However, build technology migrations tend to coincide with a shift of build maintenance work to a build-focused team, deferring the cost of build maintenance to them.

Preprint -

PDF

BibTex -

@article{McIntosh2014,
 author = {Shane, McIntosh and Meiyappan, Nagappan and Bram, Adams and Audris, Mockus and Ahmed, E. Hassan},
 keyword = {Release Engineering, ESE in Ultra Large Repositories},
 title = {A Large Scale Empirical Study of the Relationship Between Build Technology and Build Maintenance},
 type = {journal},
 venue = {Empirical Software Engineering, Accepted to be published on May 23 2014}
}