A large empirical assessment of the role of data balancing in machine-learning-based code smell detection

Code smells can compromise software quality in the long term by inducing technical debt. For this reason, many approaches aimed at identifying these design flaws have been proposed in the last decade. Most of them are based on heuristics in which a set of metrics is used to detect smelly code compon...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:The Journal of systems and software Ročník 169; s. 110693
Hlavní autoři: Pecorelli, Fabiano, Di Nucci, Dario, De Roover, Coen, De Lucia, Andrea
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier Inc 01.11.2020
Témata:
ISSN:0164-1212
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:Code smells can compromise software quality in the long term by inducing technical debt. For this reason, many approaches aimed at identifying these design flaws have been proposed in the last decade. Most of them are based on heuristics in which a set of metrics is used to detect smelly code components. However, these techniques suffer from subjective interpretations, a low agreement between detectors, and threshold dependability. To overcome these limitations, previous work applied Machine-Learning that can learn from previous datasets without needing any threshold definition. However, more recent work has shown that Machine-Learning is not always suitable for code smell detection due to the highly imbalanced nature of the problem. In this study, we investigate five approaches to mitigate data imbalance issues to understand their impact on Machine Learning-based approaches for code smell detection in Object-Oriented systems and those implementing the Model-View-Controller pattern. Our findings show that avoiding balancing does not dramatically impact accuracy. Existing data balancing techniques are inadequate for code smell detection leading to poor accuracy for Machine-Learning-based approaches. Therefore, new metrics to exploit different software characteristics and new techniques to effectively combine them are needed. •A broad study on data balancing for ML-based code smells detection in OO systems.•A novel study on code smells specific to systems implementing the MVC pattern.•A discussion on the role of balancing techniques and the impact of metrics selection.•An analysis of the overhead in terms of efficiency caused by data balancing.•An extensive replication package containing raw data, scripts, and additional plots.
ISSN:0164-1212
DOI:10.1016/j.jss.2020.110693