TY - JOUR
T1 - Composite refactoring: Representations, characteristics and effects on software projects.
AU - Bibiano, Ana Carla
AU - Uchôa, Anderson
AU - Guez Assuncao, Wesley Klewerton
AU - Tenório, Daniel
AU - Colanzi, Thelma E.
AU - Vergilio, Silvia Regina
AU - Garcia, Alessandro
PY - 2023/4
Y1 - 2023/4
N2 - Context:
code refactoring is a code transformation that aims to improve software quality. A composite refactoring (or, simply, composite) is defined by two or more interrelated refactorings, which is often applied by developers. Each composite needs to be somehow represented and has its own characteristics (e.g., code scope) as well as its effects on software quality. However, these basic elements of composites are rarely studied systematically. The lack of systematic knowledge also misguides the design of automated support tools for supporting composite refactoring. Thus, researchers might have controversial views about basic elements of composite refactorings. An example of these literature conflicts concerns the effect of composites: while some studies suggest composites more often remove code smells, other studies indicate composites often introduce code smells.
Objective:
in this sense, our study aims at analyzing the technical literature of composite refactoring and building a conceptual framework of the representation models, characteristics, and the effect of composite refactoring.
Method:
we conducted a systematic mapping with 140 primary empirical studies about refactoring. Our systematic mapping summarizes the current knowledge on composites and also presents a conceptual framework intended to characterize composite refactoring.
Results:
our conceptual framework presents seven representation models, nine characteristics, and thirteen effects of composites. We found out that studies used multidimensional representations, like graphs, to determine what refactoring(s) may be suggested and combined. On composite characteristics, studies mentioned developers often finish a composite in up to a month. However, these studies do not detail why and when composites span for several weeks. Then, we discussed other existing gaps on the current literature of composites. For instance, while most of the studies report the effect of composites on internal software quality, e.g., code smells, their effect on external software quality is little explored.
Conclusion:
our results can motivate future studies to more deeply investigate composite refactoring applications, and the improvement of tooling support for composite refactorings.
AB - Context:
code refactoring is a code transformation that aims to improve software quality. A composite refactoring (or, simply, composite) is defined by two or more interrelated refactorings, which is often applied by developers. Each composite needs to be somehow represented and has its own characteristics (e.g., code scope) as well as its effects on software quality. However, these basic elements of composites are rarely studied systematically. The lack of systematic knowledge also misguides the design of automated support tools for supporting composite refactoring. Thus, researchers might have controversial views about basic elements of composite refactorings. An example of these literature conflicts concerns the effect of composites: while some studies suggest composites more often remove code smells, other studies indicate composites often introduce code smells.
Objective:
in this sense, our study aims at analyzing the technical literature of composite refactoring and building a conceptual framework of the representation models, characteristics, and the effect of composite refactoring.
Method:
we conducted a systematic mapping with 140 primary empirical studies about refactoring. Our systematic mapping summarizes the current knowledge on composites and also presents a conceptual framework intended to characterize composite refactoring.
Results:
our conceptual framework presents seven representation models, nine characteristics, and thirteen effects of composites. We found out that studies used multidimensional representations, like graphs, to determine what refactoring(s) may be suggested and combined. On composite characteristics, studies mentioned developers often finish a composite in up to a month. However, these studies do not detail why and when composites span for several weeks. Then, we discussed other existing gaps on the current literature of composites. For instance, while most of the studies report the effect of composites on internal software quality, e.g., code smells, their effect on external software quality is little explored.
Conclusion:
our results can motivate future studies to more deeply investigate composite refactoring applications, and the improvement of tooling support for composite refactorings.
UR - https://www.sciencedirect.com/science/article/pii/S0950584922002439
UR - https://www.scopus.com/pages/publications/85145966825
U2 - 10.1016/j.infsof.2022.107134
DO - 10.1016/j.infsof.2022.107134
M3 - Article
SN - 0950-5849
VL - 156
JO - Information and Software Technology
JF - Information and Software Technology
M1 - 107134
ER -