Journal
INFORMATION AND SOFTWARE TECHNOLOGY
Volume 156, Issue -, Pages -Publisher
ELSEVIER
DOI: 10.1016/j.infsof.2022.107134
Keywords
Code refactoring; Composite refactoring; Software maintenance; Software project; Systematic mapping
Ask authors/readers for more resources
Code refactoring aims to improve software quality by transforming the code, and composite refactoring consists of two or more interrelated refactorings. This study analyzes the technical literature on composite refactoring and establishes a conceptual framework for its representation models, characteristics, and effects.
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 sys-tematic 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 deter-mine 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 applica-tions, and the improvement of tooling support for composite refactorings.
Authors
I am an author on this paper
Click your name to claim this paper and add it to your profile.
Reviews
Recommended
No Data Available