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

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Ghammam, Anwar, Rzig, Dhia Elhaq, Almukhtar, Mohamed, Khalsi, Rania, Hassan, Foyzul, Kessentini, Marouane
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866917974926950400
author Ghammam, Anwar
Rzig, Dhia Elhaq
Almukhtar, Mohamed
Khalsi, Rania
Hassan, Foyzul
Kessentini, Marouane
author_facet Ghammam, Anwar
Rzig, Dhia Elhaq
Almukhtar, Mohamed
Khalsi, Rania
Hassan, Foyzul
Kessentini, Marouane
contents 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 \totalCommits examined build-file-related commits. We identified \totalRefactoringCategories build-related refactorings, which we divided into \totalCategories 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 \totalTechnicalDebts 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 \toolFoneScore across all build systems.
format Preprint
id arxiv_https___arxiv_org_abs_2504_01907
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Build Code Needs Maintenance Too: A Study on Refactoring and Technical Debt in Build Systems
Ghammam, Anwar
Rzig, Dhia Elhaq
Almukhtar, Mohamed
Khalsi, Rania
Hassan, Foyzul
Kessentini, Marouane
Software Engineering
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 \totalCommits examined build-file-related commits. We identified \totalRefactoringCategories build-related refactorings, which we divided into \totalCategories 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 \totalTechnicalDebts 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 \toolFoneScore across all build systems.
title Build Code Needs Maintenance Too: A Study on Refactoring and Technical Debt in Build Systems
topic Software Engineering
url https://arxiv.org/abs/2504.01907