Understanding the Implications of Changes to Build Systems

Authors - Mahtab Nejati, Mahmoud Alfadel, Shane McIntosh
Venue - International Conference on Automated Software Engineering, pp. To appear, 2024

Related Tags - ASE 2024 build systems software quality

Abstract - The maintenance of build systems imposes a considerable overhead on software development. Since automated quality assurance methods are rarely applied to build specifications, the importance of the role peer code review plays in the maintenance of build systems is amplified. Yet prior work shows that the review process for build systems suffers from a lack of build experts and effective tooling.

To support the understanding of changes to build specifications (a key stage in the review process), we propose BCIA—an approach to summarize the impact of changes to build specifications across the build configuration space. BCIA traverses the paths through which data and control flow in the prior and updated versions of the build system to generate an Impact Knowledge Graph (IKG), which describes the impact of the change across the build configuration space. We develop BuiScout—a prototype implementation of BCIA for CMake-based build systems. We use BuiScout to evaluate our approach through an empirical study of 10,000 change sets that we mine from ten large open-source projects that span a total of 28 development years. Our findings indicate that BuiScout can detect an impact that propagates to unmodified parts of the build system in 77.37% of the studied change sets. These changes impact a median of 14 unmodified commands, with a median of 95.55% of the impacted commands per change set appearing in unmodified files. Our study suggests that dedicated approaches, such as BCIA, have the potential to alleviate the challenges developers face when assessing the impact of changes to build systems.

Preprint - PDF

Bibtex

@inproceedings{nejati2024ase,
  Author = {Mahtab Nejati and Mahmoud Alfadel and Shane McIntosh},
  Title = {{Understanding the Implications of Changes to Build Systems}},
  Year = {2024},
  Booktitle = {Proc. of the International Conference on Automated Software Engineering (ASE)},
  Pages = {To appear}
}