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

    13 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