Abstract
To automate the refactoring identification process, a large number of candidates need to be compared. Such an overhead can make the refactoring approach impractical if the software size is large and the computational load of a fitness function is substantial. In this paper, we propose a two-phase assessment approach to improving the efficiency of the process. For each iteration of the refactoring process, refactoring candidates are preliminarily assessed using a lightweight, fast delta assessment method called the Delta Table. Using multiple Delta Tables, candidates to be evaluated with a fitness function are selected. A refactoring can be selected either interactively by the developer or automatically by choosing the best refactoring, and the refactorings are applied one after another in a stepwise fashion. The Delta Table is the key concept enabling a two-phase assessment approach because of its ability to quickly calculate the varying amounts of maintainability provided by each refactoring candidate. Our approach has been evaluated for three large-scale open-source projects. The results convincingly show that the proposed approach is efficient because it saves a considerable time while still achieving the same amount of fitness improvement as the approach examining all possible candidates.
Original language | English |
---|---|
Article number | 7990580 |
Pages (from-to) | 1001-1023 |
Number of pages | 23 |
Journal | IEEE Transactions on Software Engineering |
Volume | 44 |
Issue number | 10 |
DOIs | |
Publication status | Published - 2018 Oct 1 |
Bibliographical note
Funding Information:This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (NRF-2014R1A1A2054098). We also gratefully acknowledge Yoo Shin and Ingwon Song for the valuable comments when revising this paper.
Publisher Copyright:
© 1976-2012 IEEE.
Keywords
- Refactoring assessment
- maintainability improvement
- refactoring identification
ASJC Scopus subject areas
- Software