An Empirical Investigation into the Role of API-Level Refactorings during Software Evolution

Author(s): Miryung Kim, Dongxiang Cai, Sunghun Kim
Venue: International Conference on Software Engineering
Date: 2011

Type of Experiement: Survey/Multi-Case Study
Sample Size: 3
Class/Experience Level: Other
Participant Selection: Large open source projects
Data Collection Method: Code Metric, Project Artifact(s)


This paper presents information on the effects that refactoring has on a software project throughout it's lifetime. It is noted that there is a large amount of conventional wisdom regarding the effects of refactoring. Some of these holdings are contradictory and have not been rigorously shown through empirical evidence. This study set out to perform a systematic analysis of the effects of refactoring to find if more in-depth investigation on the field of refactoring is needed.

The study chose three large open source projects to study. The thorough analysis reconstructed refactoring history, bug history, and bug fix history from project revision history. It was found that the number of bug fixes increase immediately following a refactoring, the developers productivity during bug fixing is increased by refactoring, bugs are fixed during refactoring, and project schedule pressures have no effect on refactoring efforts. The paper claims that these findings call for an in-depth investigation of refactoring's true benefits and the implications of refactoring investment.