How does Object-Oriented Code Refactoring Influence Software Quality? Research Landscape and Challenges
Satnam Kaur, Paramvir Singh

TL;DR
This systematic mapping study reviews 142 empirical studies on object-oriented code refactoring, revealing its varied impact on software quality attributes and highlighting gaps like limited industrial validation and tool support.
Contribution
It provides a comprehensive classification and analysis of empirical research on refactoring effects, identifying key trends and open issues in the field.
Findings
Refactoring generally improves or degrades quality attributes, except for cohesion, complexity, inheritance, fault-proneness, and power consumption.
Academic studies report more positive impacts than industrial studies.
Effects of individual refactoring activities on quality attributes vary significantly.
Abstract
Context: Software refactoring aims to improve software quality and developer productivity. Numerous empirical studies investigating the impact of refactoring activities on software quality have been conducted over the last two decades. Objective: This study aims to perform a comprehensive systematic mapping study of existing empirical studies on evaluation of the effect of object-oriented code refactoring activities on software quality attributes. Method: We followed a multi-stage scrutinizing process to select 142 primary studies published till December 2017. The selected primary studies were further classified based on several aspects to answer the research questions defined for this work. In addition, we applied vote-counting approach to combine the empirical results and their analysis reported in primary studies. Results: The findings indicate that studies conducted in academic…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
