Two-Phase Assessment Approach to Improve the Efficiency of Refactoring Identification

Ah Rim Han, Sungdeok Cha

Research output: Contribution to journalArticlepeer-review

1 Citation (Scopus)

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 languageEnglish
Article number7990580
Pages (from-to)1001-1023
Number of pages23
JournalIEEE Transactions on Software Engineering
Volume44
Issue number10
DOIs
Publication statusPublished - 2018 Oct 1

Keywords

  • Refactoring assessment
  • maintainability improvement
  • refactoring identification

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Two-Phase Assessment Approach to Improve the Efficiency of Refactoring Identification'. Together they form a unique fingerprint.

Cite this