# How does Object-Oriented Code Refactoring Influence Software Quality?   Research Landscape and Challenges

**Authors:** Satnam Kaur, Paramvir Singh

arXiv: 1908.05399 · 2019-08-19

## 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.

## Key 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 settings found more positive impact of refactoring on software quality than studies performed in industries. In general, refactoring activities caused all quality attributes to improve or degrade except for cohesion, complexity, inheritance, fault-proneness and power consumption attributes. Furthermore, individual refactoring activities have variable effects on most quality attributes explored in primary studies, indicating that refactoring does not always improve all quality attributes. Conclusions: This study points out several open issues which require further investigation, e.g., lack of industrial validation, lesser coverage of refactoring activities, limited tool support, etc.

---
Source: https://tomesphere.com/paper/1908.05399