Using Continuous Change Analysis to Understand the Practice of Refactoring
Negara, Stas; Chen, Nicholas; Vakilian, Mohsen; Johnson, Ralph E.; Dig, Danny
Loading…
Permalink
https://hdl.handle.net/2142/30759
Description
Title
Using Continuous Change Analysis to Understand the Practice of Refactoring
Author(s)
Negara, Stas
Chen, Nicholas
Vakilian, Mohsen
Johnson, Ralph E.
Dig, Danny
Issue Date
2012-04-25
Keyword(s)
refactoring inference
practice of refactoring
code evolution
Abstract
Despite the enormous success that manual and automated refactoring has enjoyed during the last decade, we know little about the practice of refactoring. Understanding the refactoring practice is important for developers, refactoring tool builders, and researchers. Many previous approaches to study refactorings are based on comparing code snapshots, which is imprecise, incomplete, and does not allow to answer research questions that involve time or compare manual and automated refactoring.
We present the first empirical study that considers both manual and automated refactoring. This study is enabled by our novel algorithm, which infers refactorings from continuous changes. We applied this algorithm to the code evolution data collected from 23 developers working in their natural environment for 1,520 hours. Using a corpus of 5,269 refactorings, we reveal several surprising facts about how manual and automated refactorings are different. For example, some popular automated refactorings are not representative when taking into account manual refactorings. More than one third of the refactorings performed by developers are grouped. For some refactoring kinds, up to 42% of performed refactorings do not reach the Version Control System.
Use this login method if you
don't
have an
@illinois.edu
email address.
(Oops, I do have one)
IDEALS migrated to a new platform on June 23, 2022. If you created
your account prior to this date, you will have to reset your password
using the forgot-password link below.