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

Authors - Shane McIntosh, Meiyappan Nagappan, Bram Adams, Audris Mockus, Ahmed E. Hassan
Venue - Empirical Software Engineering, vol. 20, pp. 1587-1633, 2015

Related Tags - EMSE 2015 build systems software evolution

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 large-scale 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

Slides

Bibtex

@article{mcintosh2015emse,
  Author = {Shane McIntosh and Meiyappan Nagappan and Bram Adams and Audris Mockus and Ahmed E. Hassan},
  Title = {{A Large-Scale Empirical Study of the Relationship between Build Technology and Build Maintenance}},
  Year = {2015},
  Journal = {Empirical Software Engineering},
  Volume = {20},
  Number = {6},
  Pages = {1587-1633}
}