Recent Studies on the Effects of Refactoring in Software Quality: Challenges and Open Issues

Refactoring is widely thought to improve software quality. Several studies, however, claimed that the effect of refactoring on software quality could be positive, negative, or have no effect. When using refactoring techniques to improve software quality, software developers face difficulties in selecting appropriate techniques. There has been no research into the contradictions in the effect of refactoring on software quality. Therefore, this study reviewed 30 recent empirical studies on the effect of various refactoring techniques on various internal and external software quality attributes. This review has three goals: first, to identify related empirical studies; second, to identify the applied refactoring techniques, internal and external quality attributes, and third, to analyze the relationship between refactoring and software quality. There were 18 studies that found that refactoring improves software quality, and 12 studies that found the opposite. More research is needed to understand the trade-off between improving and worsening various attributes. Current challenges and open issues that need further investigation have been identified and discussed.

[1]  Mohamed Wiem Mkaouer,et al.  On the impact of Continuous Integration on refactoring practice: An exploratory study on TravisTorrent , 2021, Inf. Softw. Technol..

[2]  Mazni Omar,et al.  Refactoring Techniques for Improving Software Quality: Practitioners’ Perspectives , 2021, Journal of Information and Communication Technology.

[3]  Lerina Aversano,et al.  An empirical study on the co-occurrence between refactoring actions and Self-Admitted Technical Debt removal , 2021, J. Syst. Softw..

[4]  Abdullah Almogahed Et.al Empirical Studies on Software Refactoring Techniques in the Industrial Setting , 2021 .

[5]  Petrus Mursanto,et al.  Empirical Evaluation of the Impact of Refactoring on Internal Quality Attributes , 2020, 2020 International Conference on Advanced Computer Science and Information Systems (ICACSIS).

[6]  Alessandro F. Garcia,et al.  Refactoring effect on internal quality attributes: What haven't they told you yet? , 2020, Inf. Softw. Technol..

[7]  Mazni Omar,et al.  Impact of Software Refactoring on Software Quality in the Industrial Environment: A Review of Empirical Studies , 2018 .

[8]  Raja Wasim Ahmad,et al.  A Methodology for Impact Evaluation of Refactoring on External Quality Attributes of a Software Design , 2017, 2017 International Conference on Frontiers of Information Technology (FIT).

[9]  Sajjad Mahmood,et al.  An empirical study to improve software security through the application of code refactoring , 2017, Inf. Softw. Technol..

[10]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[11]  Alessandro F. Garcia,et al.  How does refactoring affect internal quality attributes?: A multi-project study , 2017, SBES.

[12]  Gurpreet Kaur,et al.  Improving the quality of software by refactoring , 2017, 2017 International Conference on Intelligent Computing and Control Systems (ICICCS).

[13]  Andrea De Lucia,et al.  An Exploratory Study on the Relationship between Changes and Refactoring , 2017, 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).

[14]  Mohammad Alshayeb,et al.  An empirical study on the effect of the order of applying software refactoring , 2016, 2016 7th International Conference on Computer Science and Information Technology (CSIT).

[15]  Francesca Arcelli Fontana,et al.  On evaluating the impact of the refactoring of architectural problems on software quality , 2016, XP Workshops.

[16]  Tibor Gyimóthy,et al.  A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[17]  Gabriele Bavota,et al.  An experimental investigation on the innate relationship between quality and refactoring , 2015, J. Syst. Softw..

[18]  Tracy Hall,et al.  The Relationship between Depth of Inheritance and Refactoring: An Empirical Study of Eclipse Releases , 2015, 2015 41st Euromicro Conference on Software Engineering and Advanced Applications.

[19]  C. Wohlin,et al.  Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review , 2015, Empirical Software Engineering.

[20]  S. H. Kannangara,et al.  An Empirical Evaluation of Impact of Refactoring On Internal and External Measures of Code Quality , 2015, ArXiv.

[21]  Mohammad Iftekharul Hoque,et al.  An Empirical Study on Refactoring Activity , 2014, ArXiv.

[22]  Miryung Kim,et al.  An Empirical Study of RefactoringChallenges and Benefits at Microsoft , 2014, IEEE Transactions on Software Engineering.

[23]  Tibor Gyimóthy,et al.  A Case Study of Refactoring Large-Scale Industrial Systems to Efficiently Improve Source Code Quality , 2014, ICCSA.

[24]  Anju Saha,et al.  EFFECT OF REFACTORING ON SOFTWARE QUALITY , 2014 .

[25]  Eleni Stroulia,et al.  A multidimensional empirical study on refactoring activity , 2013, CASCON.

[26]  Petrus Mursanto,et al.  Refactoring rules effect of class cohesion on high-level design , 2013, 2013 International Conference on Information Technology and Electrical Engineering (ICITEE).

[27]  S. H. Kannangara,et al.  Impact of Refactoring on Code Quality Improvement in Software Maintenance , 2013 .

[28]  Miryung Kim,et al.  An empirical investigation into the impact of refactoring on regression testing , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[29]  Gabriele Bavota,et al.  When Does a Refactoring Induce Bugs? An Empirical Study , 2012, 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation.

[30]  Tushar Sharma,et al.  Quantifying Quality of Software Design to Measure the Impact of Refactoring , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference Workshops.

[31]  Vittorio Cortellessa,et al.  Antipattern-based model refactoring for software performance improvement , 2012, QoSA '12.

[32]  Michele Marchesi,et al.  Refactoring and its Relationship with Fan-in and Fan-out: An Empirical Study , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[33]  Mohammad Alshayeb,et al.  A Classification of Refactoring Methods Based on Software Quality Attributes , 2011 .

[34]  Mohammad Alshayeb,et al.  The Impact of Refactoring to Patterns on Software Quality Attributes , 2011 .

[35]  Francesca Arcelli Fontana,et al.  Impact of refactoring on quality code evaluation , 2011, WRT '11.

[36]  Miryung Kim,et al.  An empirical investigation into the role of API-level refactorings during software evolution , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[37]  Serge Demeyer,et al.  Studying the Effect of Refactorings: A Complexity Metrics Perspective , 2010, 2010 Seventh International Conference on the Quality of Information and Communications Technology.

[38]  Sandro Morasca,et al.  A probability-based approach for measuring external attributes of software artifacts , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[39]  Witold Pedrycz,et al.  A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team , 2008, CEE-SET.

[40]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[41]  Nur Haryani Zakaria,et al.  Refactoring Codes to Improve Software Security Requirements , 2022, Procedia Computer Science.

[42]  Manpreet Kaur,et al.  Analysis of Code Refactoring Impact on Software Quality , 2016 .

[43]  Mauricio Finavaro Aniche,et al.  Does the Act of Refactoring Really Make Code Simpler ? A Preliminary Study , 2013 .