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

by   Satnam Kaur, et al.

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.



page 7

page 11

page 15

page 19

page 21

page 23

page 29

page 30


A Systematic Mapping Study on Requirements Engineering in Software Ecosystems

Software ecosystems (SECOs) and open innovation processes have been clai...

The impact of software complexity on cost and quality - A comparative analysis between Open source and proprietary software

Early prediction of software quality is important for better software pl...

The Effects of Continuous Integration on Software Development: a Systematic Literature Review

Context: Continuous integration (CI) is a software engineering technique...

A systematic mapping study of developer social network research

Developer social networks (DSNs) are a tool for the analysis of communit...

The impact of Use Cases in real-world software development projects: A systematic mapping study

Objective: To identify and classify the positive and negative impacts of...

An Expert Module Design and Implementation that Evaluation the C&K Metric Suite in Terms of Object Oriented Software Quality

Object-oriented software has some features such as encapsulation, inheri...

The Effects of Human Aspects on the Requirements Engineering Process: A Systematic Literature Review

Requirements Engineering (RE) requires the collaboration of various role...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.