Skip to the main content

Original scientific paper

https://doi.org/https://doi.org/10.24138/jcomss-2024-0083

Unsupervised Machine Learning for Effective Code Smell Detection: A Novel Method

Ruchin Gupta ; KIET Group of Institutions, Delhi-NCR, Ghaziabad, India
Narendra Kumar ; Galgotias College of Engineering and Technology
Sunil Kumar ; Galgotias College of Engineering and Technology
Jitendra Kumar Seth ; KIET Group of Institutions, Delhi-NCR, Ghaziabad, India


Full text: english pdf 1.298 Kb

page 307-316

downloads: 0

cite


Abstract

The quality of source code is negatively impacted by code smells. Since the term "code smell" originated, numerous attempts have been made to comprehend it by identifying it using various techniques, such as metric-based, heuristic-based, optimization-based, machine learning (ML)-based, etc. Among these, supervised machine learning (SML) has shown effectiveness in detecting code smells. However, SML techniques have significant limitations, including the dependency on expensive and high-quality labeled data, the need for representative training datasets, and the risk of introducing biases in labeled examples that lead to skewed predictions. To overcome these challenges, this study introduces a method that leverages unsupervised machine learning (UnML) along with feature engineering. Unlike SML, UnML does not require labeled data and minimizes potential biases. The proposed method was evaluated using four datasets containing different types of code smells and was compared with a previous study that used SML techniques. The results indicate that the UnML-based method is effective, achieving outcomes closely aligned with those from the SML approach. This method is especially beneficial in situations where labeled data is scarce or unavailable and can be used to identify new code smells, generate labeled data for SML and detect multiple code smells simultaneously within a codebase.

Keywords

Code Smell; unsupervised machine learning; open-source Java projects

Hrčak ID:

323519

URI

https://hrcak.srce.hr/323519

Publication date:

31.12.2024.

Visits: 0 *