The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. ex. Some numerals are expressed as "XNUMX".
Copyrights notice
The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. Copyrights notice
Une étape importante pour améliorer l’analysabilité du logiciel consiste à appliquer des refactorisations pendant la phase de maintenance pour éliminer les mauvaises odeurs, en particulier la mauvaise odeur de la méthode longue. Les mauvaises odeurs de méthode longue sont les plus fréquentes et sont à l’origine d’autres mauvaises odeurs. Cependant, aucune recherche n'a proposé une approche permettant de répéter l'identification, la suggestion et l'application du refactoring jusqu'à ce que toutes les mauvaises odeurs de la méthode longue aient été complètement supprimées sans réduire l'analysabilité du logiciel. Cet article propose une approche efficace pour identifier les opportunités de refactoring et suggère un ensemble de refactoring efficace pour supprimer complètement les mauvaises odeurs des méthodes longues sans réduire l'analysabilité du code. Cette approche, appelée Long Method Remover ou LMR, utilise des conditions permettant le refactoring basées sur l'analyse du programme et les métriques du code pour identifier quatre techniques de refactoring et utilise une technique intégrée dans JDeodorant pour identifier la méthode d'extraction. Pour une suggestion d'ensemble de refactorisation efficace, LMR utilise deux critères : le niveau d'analysabilité du code et le nombre d'instructions impactées par les refactorisations. LMR utilise également l’analyse des effets secondaires pour garantir la préservation du comportement. Pour évaluer LMR, nous l'appliquons au package principal d'une application Java réelle. Nos critères d'évaluation sont 1) la préservation de la fonctionnalité du code, 2) le taux de suppression des caractéristiques des méthodes longues et 3) l'amélioration de l'analysabilité. Le résultat a montré que les méthodes qui appliquent les ensembles de refactoring suggérés peuvent supprimer complètement les mauvaises odeurs des méthodes longues, tout en préservant le comportement et n'ont pas diminué l'analysabilité. Il est conclu que le LMR répond aux objectifs dans presque toutes les classes. Nous avons également discuté des problèmes que nous avons découverts lors de l'évaluation en tant que leçons apprises.
Panita MEANANEATRA
Thammasat University
Songsakdi RONGVIRIYAPANISH
Thammasat University
Taweesup APIWATTANAPONG
National Science and Technology Development Agency
The copyright of the original papers published on this site belongs to IEICE. Unauthorized use of the original or translated papers is prohibited. See IEICE Provisions on Copyright for details.
Copier
Panita MEANANEATRA, Songsakdi RONGVIRIYAPANISH, Taweesup APIWATTANAPONG, "Refactoring Opportunity Identification Methodology for Removing Long Method Smells and Improving Code Analyzability" in IEICE TRANSACTIONS on Information,
vol. E101-D, no. 7, pp. 1766-1779, July 2018, doi: 10.1587/transinf.2017KBP0026.
Abstract: 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.
URL: https://global.ieice.org/en_transactions/information/10.1587/transinf.2017KBP0026/_p
Copier
@ARTICLE{e101-d_7_1766,
author={Panita MEANANEATRA, Songsakdi RONGVIRIYAPANISH, Taweesup APIWATTANAPONG, },
journal={IEICE TRANSACTIONS on Information},
title={Refactoring Opportunity Identification Methodology for Removing Long Method Smells and Improving Code Analyzability},
year={2018},
volume={E101-D},
number={7},
pages={1766-1779},
abstract={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.},
keywords={},
doi={10.1587/transinf.2017KBP0026},
ISSN={1745-1361},
month={July},}
Copier
TY - JOUR
TI - Refactoring Opportunity Identification Methodology for Removing Long Method Smells and Improving Code Analyzability
T2 - IEICE TRANSACTIONS on Information
SP - 1766
EP - 1779
AU - Panita MEANANEATRA
AU - Songsakdi RONGVIRIYAPANISH
AU - Taweesup APIWATTANAPONG
PY - 2018
DO - 10.1587/transinf.2017KBP0026
JO - IEICE TRANSACTIONS on Information
SN - 1745-1361
VL - E101-D
IS - 7
JA - IEICE TRANSACTIONS on Information
Y1 - July 2018
AB - 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.
ER -