Shayan Noei, Heng Li et Ying Zhou
Article de revue (2025)
|
Libre accès au plein texte de ce document Version officielle de l'éditeur Conditions d'utilisation: Creative Commons: Attribution (CC BY) Télécharger (907kB) |
Abstract
Refactoring is a technical approach to increase the internal quality of software without altering its external functionalities. Developers often invest significant effort in refactoring. With the increased adoption of continuous integration and deployment (CI/CD), refactoring activities may vary within and across different releases and be influenced by various release goals. For example, developers may consistently allocate refactoring activities throughout a release, or prioritize new features early on in a release and only pick up refactoring late in a release. Different approaches to allocating refactoring tasks may have different implications for code quality. However, there is a lack of existing research on how practitioners allocate their refactoring activities within a release and their impact on code quality. Therefore, we first empirically study the frequent release-wise refactoring patterns in 207 open-source Java projects and their characteristics. Then, we analyze how these patterns and their transitions affect code quality. We identify four major release-wise refactoring patterns: early active, late active, steady active, and steady inactive. We find that adopting the late active pattern—characterized by gradually increasing refactoring activities as the release approaches—leads to the best code quality. We observe that as projects mature, refactoring becomes more active, reflected in the increasing use of the steady active release-wise refactoring pattern and the decreasing utilization of the steady inactive release-wise refactoring pattern. While the steady active pattern shows improvement in quality-related code metrics (e.g., cohesion), it can also lead to more architectural problems. Additionally, we observe that developers tend to adhere to a single refactoring pattern rather than switching between different patterns. The late active pattern, in particular, can be a safe release-wise refactoring pattern that is used repeatedly. Our results can help practitioners understand existing release-wise refactoring patterns and their effects on code quality, enabling them to utilize the most effective pattern to enhance release quality.
Mots clés
| Département: | Département de génie informatique et génie logiciel |
|---|---|
| URL de PolyPublie: | https://publications.polymtl.ca/64347/ |
| Nom de la conférence: | ACM SIGSOFT International Conference on Software Testing and Analysis (ISSTA) |
| Lieu de la conférence: | Trondheim, Norway |
| Date(s) de la conférence: | 2025-06-25 - 2025-06-28 |
| Titre de la revue: | Proceedings of the ACM on Software Engineering (vol. 2, no FSE) |
| Maison d'édition: | ACM |
| DOI: | 10.1145/3715734 |
| URL officielle: | https://doi.org/10.1145/3715734 |
| Date du dépôt: | 28 mars 2025 10:28 |
| Dernière modification: | 23 nov. 2025 11:42 |
| Citer en APA 7: | Noei, S., Li, H., & Zhou, Y. (2025). An empirical study on release-wise refactoring patterns. [Autre type de communication de conférence]. Proceedings of the ACM on Software Engineering, 2(FSE), 403-424. Présentée à ACM SIGSOFT International Conference on Software Testing and Analysis (ISSTA), Trondheim, Norway. https://doi.org/10.1145/3715734 |
|---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements
Dimensions
