FSE 2016 All Events

24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2016), November 13–18, 2016, Seattle, WA, USA

Desktop Layout

Session 19: Open Source
Research Papers
Emerald 2, Chair: Mei Naggapan
Why We Refactor? Confessions of GitHub Contributors
Danilo Silva, Nikolaos Tsantalis, and Marco Tulio Valente
(Federal University of Minas Gerais, Brazil; Concordia University, Canada)
Publisher's Version
Supplementary Material
Abstract: Refactoring is a widespread practice that helps developers to improve the maintainability and readability of their code. However, there is a limited number of studies empirically investigating the actual motivations behind specific refactoring operations applied by developers. To fill this gap, we monitored Java projects hosted on GitHub to detect recently applied refactorings, and asked the developers to explain the reasons behind their decision to refactor the code. By applying thematic analysis on the collected responses, we compiled a catalogue of 44 distinct motivations for 12 well-known refactoring types. We found that refactoring activity is mainly driven by changes in the requirements and much less by code smells. Extract Method is the most versatile refactoring operation serving 11 different purposes. Finally, we found evidence that the IDE used by the developers affects the adoption of automated refactoring tools.


Time stamp: 2019-05-19T07:26:38+02:00