Trends, Opportunities and Challenges of Software Refactoring: A Systematic Literature Review

Software refactoring is a technique that transforms the various types of software artifacts to improve the software internal structure without affecting the external behavior. Refactoring is commonly applied to improve the software quality after a significant amount of features are added. Researchers in the area have studied the different angles of refactoring and developed the right evidence, knowledge and skill. And they published their research findings through journals and conference papers to provide an easy access to everyone. Eventually, the knowledge accumulated in these literatures is huge, so that it needs structuring and organizing. The main purpose of this study is to extend a previously conducted study by covering more literatures and applying a systematic literature review method to increase the accuracy and validity of the study. We study a collection of literature from different electronic databases, published since 1999 to understand and extract the software refactoring knowledge through classification and summarization. The classification and summarization can reveal the research pattern, common concerns and statistics of the published papers in the last fifteen years. The extracted information should help the researchers to formulate better research topics that can solve the crucial problems in software refactoring and save the researchers effort and time.

[1]  Oscar Nierstrasz,et al.  Object-oriented reengineering patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[2]  Arie van Deursen,et al.  Refactoring: Emerging Trends and Open Problems , 2003 .

[3]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A systematic literature review , 2009, Inf. Softw. Technol..

[4]  Raed Shatnawi,et al.  An Empirical Assessment of Refactoring Impact on Software Quality Using a Hierarchical Quality Model , 2011 .

[5]  Meir M. Lehman,et al.  Rules and Tools for Software Evolution Planning and Management , 2001, Ann. Softw. Eng..

[6]  Zhendong Niu,et al.  Schedule of Bad Smell Detection and Resolution: A New Way to Save Effort , 2012, IEEE Transactions on Software Engineering.

[7]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[8]  Panita Meananeatra,et al.  Identifying refactoring sequences for improving software maintainability , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[9]  Tor Guimaraes,et al.  Managing application program maintenance expenditures , 1983, CACM.

[10]  Mesfin Abebe,et al.  Classification and Summarization of Software Refactoring Researches: A Literature Review Approach , 2014 .

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

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

[13]  Robert S. Arnold Tutorial on software restructuring , 1986 .

[14]  Gustavo Rossi,et al.  Refactoring for Usability in Web Applications , 2011, IEEE Software.

[15]  E. Tacconelli Systematic reviews: CRD's guidance for undertaking reviews in health care , 2010 .

[16]  Paula Gomes Mian,et al.  Systematic Review in Software Engineering , 2005 .

[17]  Paul W. Oman,et al.  Using metrics to evaluate software system maintainability , 1994, Computer.

[18]  Pieter Van Gorp,et al.  A discussion of refactoring in research and practice , 2004 .

[19]  William G. Griswold Program restructuring as an aid to software maintenance , 1992 .

[20]  Frank Tip,et al.  Refactoring support for class library migration , 2005, OOPSLA '05.