The search functionality is under construction.
The search functionality is under construction.

Refactoring Opportunity Identification Methodology for Removing Long Method Smells and Improving Code Analyzability

Panita MEANANEATRA, Songsakdi RONGVIRIYAPANISH, Taweesup APIWATTANAPONG

  • Full Text Views

    0

  • Cite this

Summary :

An important step for improving software analyzability is applying refactorings during the maintenance phase to remove bad smells, especially the long method bad smell. Long method bad smell occurs most frequently and is a root cause of other bad smells. However, no research has proposed an approach to repeating refactoring identification, suggestion, and application until all long method bad smells have been removed completely without reducing software analyzability. This paper proposes an effective approach to identifying refactoring opportunities and suggesting an effective refactoring set for complete removal of long method bad smell without reducing code analyzability. This approach, called the long method remover or LMR, uses refactoring enabling conditions based on program analysis and code metrics to identify four refactoring techniques and uses a technique embedded in JDeodorant to identify extract method. For effective refactoring set suggestion, LMR uses two criteria: code analyzability level and the number of statements impacted by the refactorings. LMR also uses side effect analysis to ensure behavior preservation. To evaluate LMR, we apply it to the core package of a real world java application. Our evaluation criteria are 1) the preservation of code functionality, 2) the removal rate of long method characteristics, and 3) the improvement on analyzability. The result showed that the methods that apply suggested refactoring sets can completely remove long method bad smell, still have behavior preservation, and have not decreased analyzability. It is concluded that LMR meets the objectives in almost all classes. We also discussed the issues we found during evaluation as lesson learned.

Publication
IEICE TRANSACTIONS on Information Vol.E101-D No.7 pp.1766-1779
Publication Date
2018/07/01
Publicized
2018/04/26
Online ISSN
1745-1361
DOI
10.1587/transinf.2017KBP0026
Type of Manuscript
Special Section PAPER (Special Section on Knowledge-Based Software Engineering)
Category

Authors

Panita MEANANEATRA
  Thammasat University
Songsakdi RONGVIRIYAPANISH
  Thammasat University
Taweesup APIWATTANAPONG
  National Science and Technology Development Agency

Keyword