Do Automatic Refactorings Improve Maintainability? An Industrial Case Study

TitleDo Automatic Refactorings Improve Maintainability? An Industrial Case Study
Publication TypeConference Paper
Year of Publication2015
AuthorsSzőke G, Nagy C, Hegedűs P, Ferenc R, Gyimóthy T
Conference NameProceedings of the 31st International Conference on Software Maintenance and Evolution (ICSME 2015)
PublisherIEEE Computer Society
Conference LocationBremen, Germany
Keywordsautomatic refactoring, coding issues, ISO/IEC 25010, Software maintainability

Refactoring is often treated as the main remedy against the unavoidable code erosion happening during software evolution. Studies show that refactoring is indeed an elemental part of the developers' arsenal. However, empirical studies about the impact of refactorings on software maintainability still did not reach a consensus. Moreover, most of these empirical investigations are carried out on open-source projects where distinguishing refactoring operations from other development activities is a challenge in itself. We had a chance to work together with several software development companies in a project where they got extra budget to improve their source code by performing refactoring operations. Taking advantage of this controlled environment, we collected a large amount of data during a refactoring phase where the developers used a (semi)automatic refactoring tool. By measuring the maintainability of the involved subject systems before and after the refactorings, we got valuable insights into the effect of these refactorings on large-scale industrial projects. All but one company, who applied a special refactoring strategy, achieved a maintainability improvement at the end of the refactoring phase, but even that one company suffered from the negative impact of only one type of refactoring.