Comparing commit messages and source code metrics for the prediction refactoring activities

  • Priyadarshni Suresh Sagar
  • , Eman Abdulah Alomar
  • , Mohamed Wiem Mkaouer
  • , Ali Ouni
  • , Christian D. Newman

Research output: Contribution to journalArticlepeer-review

23 Scopus citations

Abstract

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.

Original languageEnglish
Article number289
JournalAlgorithms
Volume14
Issue number10
DOIs
StatePublished - Oct 2021

Keywords

  • Commits
  • Refactoring
  • Software engineering
  • Software metrics
  • Software quality

Fingerprint

Dive into the research topics of 'Comparing commit messages and source code metrics for the prediction refactoring activities'. Together they form a unique fingerprint.

Cite this