Back to overview

A large-scale empirical exploration on refactoring activities in open source software projects

Type of publication Peer-reviewed
Publikationsform Original article (peer-reviewed)
Author Vassallo Carmine, Grano Giovanni, Palomba Fabio, Gall Harald C., Bacchelli Alberto,
Project SURF-MobileAppsData
Show all

Original article (peer-reviewed)

Journal Sci. Comput. Program.
Volume (Issue) 180
Page(s) 1 - 15
Title of proceedings Sci. Comput. Program.
DOI 10.1016/j.scico.2019.05.002

Open Access

Type of Open Access Repository (Green Open Access)


Refactoring is a well-established practice that aims at improving the internal structure of a software system without changing its external behavior. Existing literature provides evidence of how and why developers perform refactoring in practice. In this paper, we continue on this line of research by performing a large-scale empirical analysis of refactoring practices in 200 open source systems. Specifically, we analyze the change history of these systems at commit level to investigate: (i) whether developers perform refactoring operations and, if so, which are more diffused and (ii) when refactoring operations are applied, and (iii) which are the main developer-oriented factors leading to refactoring. Based on our results, future research can focus on enabling automatic support for less frequent refactorings and on recommending refactorings based on the developer's workload, project's maturity and developer's commitment to the project.