Comparing Commit Messages and Source Code Metrics for the Prediction Refactoring Activities

Understanding how developers refactor their code is critical to support the design improvement process of software. This paper investigates to what extent code metrics are good indicators for predicting refactoring activity in the source code. In order to perform this, we formulated the prediction o...

Full description

Saved in:
Bibliographic Details
Published inAlgorithms Vol. 14; no. 10; p. 289
Main Authors Sagar, Priyadarshni Suresh, AlOmar, Eman Abdulah, Mkaouer, Mohamed Wiem, Ouni, Ali, Newman, Christian D.
Format Journal Article
LanguageEnglish
Published Basel MDPI AG 01.10.2021
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Understanding how developers refactor their code is critical to support the design improvement process of software. This paper investigates to what extent code metrics are good indicators for predicting refactoring activity in the source code. In order to perform this, we formulated the prediction of refactoring operation types as a multi-class classification problem. Our solution relies on measuring metrics extracted from committed code changes in order to extract the corresponding features (i.e., metric variations) that better represent each class (i.e., refactoring type) in order to automatically predict, for a given commit, the method-level type of refactoring being applied, namely Move Method, Rename Method, Extract Method, Inline Method, Pull-up Method, and Push-down Method. We compared various classifiers, in terms of their prediction performance, using a dataset of 5004 commits and extracted 800 Java projects. Our main findings show that the random forest model trained with code metrics resulted in the best average accuracy of 75%. However, we detected a variation in the results per class, which means that some refactoring types are harder to detect than others.
ISSN:1999-4893
1999-4893
DOI:10.3390/a14100289