A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability

Abstract

It is very common in various fields that there is a gap between theoretical results and their practical applications. This is true for code refactoring as well, which has a solid theoretical background while being used in development practice at the same time. However, more and more studies suggest that developers perform code refactoring entirely differently than the theory would suggest. Our paper encourages the further investigation of code refactorings in practice by providing an excessive open dataset of source code metrics and applied refactorings through several releases of 7 open-source systems. As a first step of processing this dataset, we examined the quality attributes of the refactored source code classes and the values of source code metrics improved by those refactorings. Our early results show that lower maintainability indeed triggers more code refactorings in practice and these refactorings significantly decrease complexity, code lines, coupling and clone metrics. However, we observed a decrease in comment related metrics in the refactored code.

Publication
Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016), Suita, Osaka, Japan, Pages 599–603

BibTeX:

@InProceedings{KHF16,
    author    = {K\'ad\'ar, Istv\'an and Heged\H{u}s, P\'{e}ter and Ferenc, Rudolf and Gyim\'othy, Tibor},
    title     = {A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability},
    booktitle = {Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016)},
    year      = {2016},
    pages     = {599--603},
    address   = {Suita, Osaka, Japan},
    month     = mar,
    publisher = {IEEE Computer Society},
    doi       = {10.1109/SANER.2016.42},
    keywords  = {empirical study, code refactoring, software maintainability},
    url       = {http://ieeexplore.ieee.org/document/7476680/},
}