Build Code Needs Maintenance Too: A Study on Refactoring and Technical Debt in Build Systems

📅 2025-04-02
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Prior research has largely overlooked the interplay between technical debt and refactoring practices in build systems. Method: We conduct the first empirical study on refactoring of build scripts (Gradle/Ant/Maven), proposing the first evidence-based taxonomy of build-system refactorings—identifying otalRefactoringCategories patterns across otalCategories high-level categories—and mapping them to otalTechnicalDebts types of build-related technical debt. We further introduce BuildRefMiner, the first LLM-powered automated detection tool for build-script refactoring, integrating GPT-4o with pattern mining to achieve a oolFoneScore F1-score across diverse build systems. Contribution/Results: Through static code analysis, manual validation, and developer surveys, we empirically confirm that developers proactively apply refactoring to mitigate build-level technical debt—establishing both theoretical foundations and practical tools for intelligent build-system maintenance and evolution.

Technology Category

Application Category

📝 Abstract
In modern software engineering, build systems play the crucial role of facilitating the conversion of source code into software artifacts. Recent research has explored high-level causes of build failures, but has largely overlooked the structural properties of build files. Akin to source code, build systems face technical debt challenges that hinder maintenance and optimization. While refactoring is often seen as a key tool for addressing technical debt in source code, there is a significant research gap regarding the specific refactoring changes developers apply to build code and whether these refactorings effectively address technical debt. In this paper, we address this gap by examining refactorings applied to build scripts in open-source projects, covering the widely used build systems of Gradle, Ant, and Maven. Additionally, we investigate whether these refactorings are used to tackle technical debts in build systems. Our analysis was conducted on otalCommits examined build-file-related commits. We identified otalRefactoringCategories build-related refactorings, which we divided into otalCategories main categories. These refactorings are organized into the first empirically derived taxonomy of build system refactorings. Furthermore, we investigate how developers employ these refactoring types to address technical debts via a manual commit-analysis and a developer survey. In this context, we identified otalTechnicalDebts technical debts addressed by these refactorings and discussed their correlation with the different refactorings. Finally, we introduce BuildRefMiner, an LLM-powered tool leveraging GPT-4o to automate the detection of refactorings within build systems. We evaluated its performance and found that it achieves an F1 score of oolFoneScore across all build systems.
Problem

Research questions and friction points this paper is trying to address.

Study refactoring practices in build systems
Investigate technical debt in build scripts
Develop tool for detecting build refactorings
Innovation

Methods, ideas, or system contributions that make the work stand out.

Examining refactorings in Gradle, Ant, Maven
Taxonomy of build system refactorings introduced
LLM-powered BuildRefMiner automates refactoring detection
🔎 Similar Papers
No similar papers found.
A
Anwar Ghammam
Oakland University, Rochester Hills, USA
D
Dhia Elhaq Rzig
University of Michigan- Dearborn, Dearborn, USA
M
Mohamed Almukhtar
University of Michigan- Flint, Flint, USA
R
Rania Khalsi
University of Michigan- Flint, Flint, USA
F
Foyzul Hassan
University of Michigan- Dearborn, Dearborn, USA
Marouane Kessentini
Marouane Kessentini
Full Professor, Oakland University
Search-based Software EngineeringSBSERefactoringSoftware QualityCode-Smells