Non-Source Code Refactoring: A Systematic Literature Review

Since software refactoring techniques were introduced, the process is commonly applied to alter the structure of source code. However, there is also increasing popularity in the topic of refactoring in other software artifacts at non-source code level. This paper provides a systematic literature review of existing studies in non-source code refactoring. We use two digital libraries as publication source, IEEExplore and Science Direct, to obtain published articles in non-source code refactoring topic published in between 2002 – 2014 with certain keywords. The 20 selected literatures then processed based on certain criteria, including the refactoring method and refactoring identification source. Then we use this information to provide categorization of non-source code refactoring activity and the advantages and disadvantages of each category. The systematic literature review performed has provided categorization of non-source code refactoring method and has shown that each method has certain advantages and disadvantages. Refactoring detection at non-source code level can be done in the software design model, source code with nonconventional detection, and other software artifacts. The methods used can be categorized as heuristic method, where the refactoring identification is done based on certain rules, and non-heuristic method, where the refactoring identification is done with a certain algoritm that explores every possibility of refactoring opportunities. The advantage of heuristic method is the speed and precision. The disadvantage of this method is the needed effort to produce the rules and the possibility of the non optimal result. The advantage of non-heuristic method is it can yield a generally more optimal result. The disadvantage of non-heuristic method is that the result depends strongly on the robustness of each algorithm.

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

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

[3]  Jehad Al Dallal Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics , 2012, Inf. Softw. Technol..

[4]  Mohammed Misbhauddin,et al.  UML model refactoring: a systematic literature review , 2013, Empirical Software Engineering.

[5]  Manfred Reichert,et al.  Refactoring large process model repositories , 2011, Comput. Ind..

[6]  Emmanouel A. Giakoumakis,et al.  Automated refactoring to the Strategy design pattern , 2012, Inf. Softw. Technol..

[7]  Gabriele Bavota,et al.  Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures , 2011, J. Syst. Softw..

[8]  Iman Hemati Moghadam,et al.  Automated Refactoring Using Design Differencing , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[9]  Mohammad Alshayeb,et al.  Software refactoring at the package level using clustering techniques , 2011, IET Softw..

[10]  Jan Mendling,et al.  On the refactoring of activity labels in business process models , 2012, Inf. Syst..

[11]  Hironori Washizaki,et al.  A technique for automatic component extraction from object-oriented programs by refactoring , 2005, Sci. Comput. Program..

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

[13]  Zhendong Niu,et al.  Traceability-enabled refactoring for managing just-in-time requirements , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[14]  Pieter Van Gorp,et al.  Evaluation of model transformation approaches for model refactoring , 2014, Sci. Comput. Program..

[15]  Nan Niu,et al.  Supporting requirements traceability through refactoring , 2013, 2013 21st IEEE International Requirements Engineering Conference (RE).

[16]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

[17]  Eduardo Figueiredo,et al.  Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics , 2009, SQM@CSMR.

[18]  Tracy Hall,et al.  Code Bad Smells: a review of current knowledge , 2011, J. Softw. Maintenance Res. Pract..

[19]  A. Amirat,et al.  Refactor Software architecture using graph transformation approach , 2012, Second International Conference on the Innovative Computing Technology (INTECH 2012).

[20]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[21]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[22]  Remco M. Dijkman,et al.  Identifying refactoring opportunities in process model repositories , 2011, Inf. Softw. Technol..

[23]  Mark Kent O'Keeffe,et al.  Search-based refactoring for software maintenance , 2008, J. Syst. Softw..

[24]  Claudia A. Marcos,et al.  Toward automated refactoring of crosscutting concerns into aspects , 2013, J. Syst. Softw..

[25]  Mesfin Abebe,et al.  Trends, Opportunities and Challenges of Software Refactoring: A Systematic Literature Review , 2014 .

[26]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[27]  Martin Glinz,et al.  Feature Unweaving: Refactoring Software Requirements Specifications into Software Product Lines , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[28]  Alexander Egyed,et al.  From Requirements to Features: An Exploratory Study of Feature-Oriented Refactoring , 2011, 2011 15th International Software Product Line Conference.