Revisiting Scenarios of Using Refactoring Techniques to Improve Software Systems Quality

Refactoring is one of the most widely used techniques in practice to improve the quality of existing software. However, it is observed that refactoring does not continually improve all software quality attributes. Recent studies indicated that different refactoring techniques have significantly different, sometimes opposite, and conflicting effects on software quality attributes. In other words, there is contradictory evidence on the refactoring benefit. As a result, developers face challenges in selecting appropriate refactoring techniques when they use them to improve software quality. To the best of our knowledge, no study has investigated factors that may explain inconsistent or diverging results concerning the effect of refactoring techniques on software quality. Therefore, in this study, scenarios of using refactoring techniques factor have been identified, investigated, and thoroughly analyzed. Ten of the most commonly used refactoring techniques in practice have been chosen and individually applied in seven case studies of varying sizes (small, medium, and large). The Quality Model for Object-Oriented Design (QMOOD) is used to assess how refactoring techniques affect quality attributes. The findings provide strong evidence that this factor plays a significant role in producing the various effects of refactoring techniques on quality attributes. These findings can help software developers understand how to use refactoring techniques to improve software quality while taking this factor into account. The best scenario for using each refactoring technique to improve software system quality has been identified. The findings can provide guidelines for software developers to use refactoring techniques to improve the quality of software systems based on the best scenarios of using the refactoring techniques.

[1]  Mamdouh Alenezi,et al.  Software Refactoring Prediction Using SVM and Optimization Algorithms , 2022, Processes.

[2]  Ally S. Nyamawe Mining commit messages to enhance software refactorings recommendation: A machine learning approach , 2022, Machine Learning with Applications.

[3]  Ali Ouni,et al.  Comparing Commit Messages and Source Code Metrics for the Prediction Refactoring Activities , 2021, Algorithms.

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

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

[6]  Mamdouh Alenezi,et al.  Harnessing deep learning algorithms to predict software refactoring , 2020 .

[7]  Amandeep Kaur,et al.  A Systematic Literature Review on Empirical Analysis of the Relationship Between Code Smells and Software Quality Attributes , 2019, Archives of Computational Methods in Engineering.

[8]  José Augusto Fabri,et al.  An Approach to Software Maintenance: A Case Study in Small and Medium-Sized Businesses IT Organizations , 2020, Int. J. Softw. Eng. Knowl. Eng..

[9]  Marouane Kessentini,et al.  30 Years of Software Refactoring Research: A Systematic Literature Review , 2020, ArXiv.

[10]  Yann-Gaël Guéhéneuc,et al.  Code Smells and Refactoring: A Tertiary Systematic Review of Challenges and Observations , 2020, J. Syst. Softw..

[11]  Kathryn Kasmarik,et al.  A Better Set of Object-Oriented Design Metrics for Within-Project Defect Prediction , 2020, EASE.

[12]  Rasmita Panigrahi,et al.  Application of Naïve Bayes classifiers for refactoring Prediction at the method level , 2020, 2020 International Conference on Computer Science, Engineering and Applications (ICCSEA).

[13]  Vinicius H. S. Durelli,et al.  The Effectiveness of Supervised Machine Learning Algorithms in Predicting Software Refactoring , 2020, IEEE Transactions on Software Engineering.

[14]  Marouane Kessentini,et al.  RefBot: Intelligent Software Refactoring Bot , 2019, 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[15]  Paramvir Singh,et al.  How does Object-Oriented Code Refactoring Influence Software Quality? Research Landscape and Challenges , 2019, J. Syst. Softw..

[16]  Alessandro F. Garcia,et al.  Revisiting the refactoring mechanics , 2019, Inf. Softw. Technol..

[17]  Shashank Mouli Satapathy,et al.  Method Level Refactoring Prediction on Five Open Source Java Projects using Machine Learning Techniques , 2019, ISEC.

[18]  Shashank Mouli Satapathy,et al.  Application of SMOTE and LSSVM with Various Kernels for Predicting Refactoring at Method Level , 2018, ICONIP.

[19]  Ricardo Terra,et al.  A Quality-oriented Approach to Recommend Move Method Refactorings , 2018, SBQS.

[20]  Wentao Wang,et al.  Recommending Refactoring Solutions Based on Traceability and Code Metrics , 2018, IEEE Access.

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

[22]  Marouane Kessentini,et al.  Model refactoring by example: A multi‐objective search based software engineering approach , 2018, J. Softw. Evol. Process..

[23]  Usman Qamar,et al.  Scrum Software Maintenance Model: Efficient Software Maintenance in Agile Methodology , 2018, 2018 21st Saudi Computer Society National Computer Conference (NCC).

[24]  Ana M. Fernández-Sáez,et al.  An industrial case study on the use of UML in software maintenance and its perceived benefits and hurdles , 2018, Empirical Software Engineering.

[25]  Jehad Al Dallal Predicting move method refactoring opportunities in object-oriented code , 2017, Inf. Softw. Technol..

[26]  Ashish Sureka,et al.  Application of LSSVM and SMOTE on Seven Open Source Projects for Predicting Refactoring at Class Level , 2017, 2017 24th Asia-Pacific Software Engineering Conference (APSEC).

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

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

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

[30]  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).

[31]  Other Contributors Are Indicated Where They Contribute The Eclipse Foundation , 2017 .

[32]  Katsuro Inoue,et al.  Multi-Criteria Code Refactoring Using Search-Based Software Engineering , 2016, ACM Trans. Softw. Eng. Methodol..

[33]  P. Maglio,et al.  Innovation and Big Data in Smart Service Systems , 2016 .

[34]  Hareton K. N. Leung,et al.  MSR4SM: Using topic models to effectively mining software repositories for software maintenance tasks , 2015, Inf. Softw. Technol..

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

[36]  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.

[37]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[38]  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.

[39]  Jehad Al Dallal Identifying refactoring opportunities in object-oriented code: A systematic literature review , 2015, Inf. Softw. Technol..

[40]  Ee Ogheneovo,et al.  On the Relationship between Software Complexity and Maintenance Costs , 2014 .

[41]  Girish Suryanarayana,et al.  Refactoring for Software Design Smells: Managing Technical Debt , 2014 .

[42]  Paul Gestwicki,et al.  Refactoring code to increase readability and maintainability: a case study , 2014 .

[43]  Gabriele Bavota,et al.  On the Impact of Refactoring Operations on Code Quality Metrics , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[44]  Mohamed Wiem Mkaouer,et al.  Recommendation system for software refactoring using innovization and interactive dynamic optimization , 2014, ASE.

[45]  S. H. Kannangara,et al.  An Empirical Exploration of Refactoring effect on Software Quality using External Quality Factors , 2014 .

[46]  Václav Rajlich,et al.  Software evolution and maintenance , 2014, FOSE.

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

[48]  Puneet Kumar Goyal,et al.  QMOOD metric sets to assess quality of Java program , 2014, 2014 International Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT).

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

[50]  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).

[51]  Richard Torkar,et al.  Software fault prediction metrics: A systematic literature review , 2013, Inf. Softw. Technol..

[52]  Miryung Kim,et al.  A field study of refactoring challenges and benefits , 2012, SIGSOFT FSE.

[53]  Mel Ó Cinnéide,et al.  Improving Software Security Using Search-Based Refactoring , 2012, SSBSE.

[54]  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).

[55]  Mohammad Alshayeb,et al.  Using Software Quality Attributes to Classify Refactoring to Patterns , 2012, J. Softw..

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

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

[58]  Lionel C. Briand,et al.  An object-oriented high-level design-based class cohesion metric , 2010, Inf. Softw. Technol..

[59]  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.

[60]  Mohammad Alshayeb,et al.  Investigating the Effect of Refactoring on Software Testing Effort , 2009, 2009 16th Asia-Pacific Software Engineering Conference.

[61]  Mohammad Alshayeb,et al.  Empirical investigation of refactoring effect on software quality , 2009, Inf. Softw. Technol..

[62]  Mohammad Alshayeb,et al.  Refactoring Effect on Cohesion Metrics , 2009, 2009 International Conference on Computing, Engineering and Information.

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

[64]  Harald C. Gall,et al.  Mining Software Evolution to Predict Refactoring , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[65]  Diomidis Spinellis,et al.  Refactoring--Does It Improve Software Quality? , 2007, Fifth International Workshop on Software Quality (WoSQ'07: ICSE Workshops 2007).

[66]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[67]  K. Eisenhardt Building theories from case study research , 1989, STUDI ORGANIZZATIVI.

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

[69]  Alessandro F. Garcia,et al.  Revisiting Refactoring Mechanics from Tool Developers' Perspective , 2020, SBMF.

[70]  Mamdouh Alenezi,et al.  Empirical Analysis of Object-Oriented Software Test Suite Evolution , 2019, International Journal of Advanced Computer Science and Applications.

[71]  M. Kessentini,et al.  S Interactive and Dynamic Multi-Objective Software Refactoring Recommendations , 2019 .

[72]  Anas Abdin,et al.  Empirical Evaluation of the Impact of Object-Oriented Code Refactoring on Quality Attributes: A Systematic Literature Review , 2018, IEEE Transactions on Software Engineering.

[73]  Mazen Alotaibi,et al.  Advances and Challenges in Software Refactoring: A Tertiary Systematic Literature Review , 2018 .

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

[75]  S. Kowalewski,et al.  An Empirical Evaluation of Refactoring , 2007, e Informatica Softw. Eng. J..

[76]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[77]  Fernando Brito e Abreu,et al.  Object-Oriented Software Engineering: Measuring and Controlling the Development Process , 1994 .