• P-ISSN 0974-6846 E-ISSN 0974-5645

Indian Journal of Science and Technology

Article

Indian Journal of Science and Technology

Year: 2018, Volume: 11, Issue: 20, Pages: 1-12

Original Article

Prioritizing Code Smell Correction Task using Strength Pareto Evolutionary Algorithm

Abstract

Objective: Code smells indicate the design decay in software applications. The code smells existence in the software will hinder the understandability of code and possibly increases changes and fault proneness. Methods / Statistical Analysis: To remove the code smells’ from the software applications refactoring operations are applied which in turn improves the software system structure without changing its overall behaviour. Generally, in a large sized system, code smell cannot be fixed automatically. Therefore based on the maintainer’s preference, the prioritized list of refactoring sequences to fix the code smells is essential. Findings: Majority of the refactoring just rely on the structural information, which fails to preserve the construct semantics, minimization of changes and the use of development history. To overcome this, in this work, the Strength Pareto Evolutionary Algorithm (SPEA) is used to prioritize the list of refactoring operations that maximize the quality improvement, constructs semantics coherence and preserving the consistency with the previous refactoring. This work is carried out on two open source software Xerces-J and J Hot Draw. Blob, shotgun surgery, functional decomposition, data class, Swiss army knife and schizophrenic class code smells’ are considered for prioritizing refactoring operations in these open source system. SPEA is evaluated using the metrics Code smell Correction Ratio (CCR) and Refactoring Meanings (RM). Application / Improvements: SPEA is compared with other algorithms namely Non-dominated Sorting Genetic Algorithm II (NSGA II) and Chemical Reaction Optimization (CRO), to prove its efficiency in prioritizing code smell correction tasks.

Keywords: Code Smells, Maintenance, Prioritizing, Refactoring, Search Based Software Engineering, Strength Pareto Evolutionary Algorithm (SPEA)

DON'T MISS OUT!

Subscribe now for latest articles and news.