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}
}