Non-Source Code Refactoring: A Systematic Literature Review

Siti Rochimah, Siska Arifiani, Vika F. Insanittaqwa
2015 International Journal of Software Engineering and Its Applications  
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
more » ... opic 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. 198 Copyright ⓒ 2015 SERSC literatures published on this topic were mainly based on code refactoring catalog by Fowler et al., [1] , where the diversity of the research lies in the variety of bad smells, refactoring activities, or refactoring scenarios. There were also a lot of research dedicated to create tools to aid the refactoring process, such as Refactoring Browser [2], XRefactory [3] , and Code Imp [4] . These tools are applicable in the refactoring of source code in order to get rid of the bad smells. Amongst the early trend in refactoring, there was a small number of publications addressing the refactoring process in higher software abstraction, such as in high-level model, design pattern, or software architechture [5] . The first known publication on this topic was the refactoring of Unified Modelling Language (UML) diagram by Sunyé et al., [6] , published in 2001. This particular area of research, which we will refer to as "nonsource code refactoring", has received an increasing amount of attention and has implemented the refactoring process in other software artifacts. Publications in non-source code refactoring show a promising research opportunity, which is to implement refactoring activity outside the scope covered in Fowler catalog. In this Systematic Literature Review (SLR), we aim to cover the techniques that had been used in non-source code refactoring activity and to analyze the advantage and disadvantage of each technique. We used two online sources, IEEExplore and Science Direct, to obtain literatures published since 2002 to 2014. After conducting literature selection based on certain criteria, the selected studies then processed and analized to answer the research questions. The result is presented and concluded at the end of this paper. The rest of the paper is organized as follows: Section 2 presents relevant literatures in the area of software refactoring literature review. Section 3 provides theoritical background about software refactoring and non-source code refactoring. Section 4 describes our method of systematic review. Section 5 reports the results and findings based on the research questions. Finally, the conclusions are presented in Section 6.
doi:10.14257/ijseia.2015.9.6.19 fatcat:k263tdpqt5f7bbeqx7hdeyvdei