Authors:
Antonio Diogo Forte Martins
;
Cristiano Melo
;
José Maria Monteiro
and
Javam de Castro Machado
Affiliation:
Federal University of Ceara, Fortaleza, Ceara, Brazil
Keyword(s):
Machine Learning, Change-proneness Prediction, Software Quality.
Abstract:
During the lifecycle of software, maintenance has been considered one of the most complex and costly phases in terms of resources and costs. In addition, software evolves in response to the needs and demands of the ever-changing world and thus becomes increasingly complex. In this scenario, an approach that has been widely used to rationalize resources and costs during the evolution of object-oriented software is to predict change-prone classes. A change-prone class may indicate a part of poor quality of software that needs to be refactored. Recently, some strategies for predicting change-prone classes, which are based on the use of software metrics and code smells, have been proposed. In this paper, we present an empirical study on the performance of 8 machine learning techniques used to predict classes prone to change. Three different training scenarios were investigated: object-oriented metrics, code smells, and object-oriented metrics and code smells combined. To perform the expe
riments, we built a data set containing eight object-oriented metrics and 32 types of code smells, which were extracted from the source code of a web application that was developed between 2013 and 2018 over eight releases. The machine learning algorithms that presented the best results were: RF, LGBM, and LR. The training scenario that presented the best results was the combination of code smells and object-oriented metrics.
(More)