Abstract

Software refactoring is an approach that aims to improve software system quality by restructuring its internal design without altering the functionality of the software system. The software refactoring has gained comprehensive attention from the research community in software engineering since its emerging in 1999. Empirical studies were carried out to investigate whether the software refactoring indeed can achieve improvement in the software system quality. It is widely believed that refactoring has a favorable quality impact. However, several researchers have opposed this belief. This paper presents a systematic literature review (SLR) of the empirical studies that have been conducted in the industrial setting. Twenty studies were chosen and analyzed in depth as primary studies.The objectives of this SLR are to identify the refactoring techniques examined, and software quality attributes investigated as well as to analyze the connection between the refactoring techniques and the software quality attributes based on the selected empirical studies to understand the situation. The findings showed a lack of empirical research on the effect of the refactoring on software quality. Additionally, the relationship between the refactoring techniques and software quality attributes is unclear. Thus, several recommendations have been proposed to address these gaps.

Highlights

  • Software maintenance is an important component of the process of software development

  • In thisreview of studies concentrating on relation between software refactoring and software quality in industrial setting, we noted that few studies existed that have been conducted in the industrial environment

  • RQ1:What are the techniques of refactoring, inner and external quality attributes researched in industrial settings? We identified, based on the extracted data from the primary studies, the refactoring techniques that have been applied, attributes of inner and external quality investigated through empirical studies

Read more

Summary

Introduction

Software maintenance is an important component of the process of software development. Opdyke introduced the term of "refactoring" for the first time in his PhD thesis [4]within the object-oriented programming context.Fowler described refactoring as a mechanism that reorganizes a software system's inner layout to enhance its quality without altering its functionality [5].Fowler proposed a catalogthat included sixty-eight object-oriented refactoring techniques (e.g. add parameter, extract method, and extract class) [5]. These refactoring techniques aim to reorganize classes, methods, and variables of a software system design to facilitate future modifications and extensions as maintainability becomes easier. The high quality of the software is very essential for clients [42]

Objectives
Methods
Results
Discussion
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.