Abstract | ||
---|---|---|
Currently analysis of refactoring in software reposi- tories is either manual or only syntactic, which is time-consuming, error-prone, and non-scalable. Such analysis is useful to understand the dynamics of refactoring throughout development, especially in multi-developer environments, such as open source projects. In this work, we propose a fully automatic technique to analyze refactoring frequency, granularity and scope in software repositories. It is based on SAFEREFACTOR, a tool that analyzes transformations by generating tests to detect behavioral changes--it has found a number of bugs in refactoring implementations within some IDEs, such as Eclipse and Netbeans. We use our technique to analyze five open source Java projects (JHotDraw, ArgoUML, SweetHome 3D, HSQLDB and jEdit). From more than 40,723 software versions, 39 years of software development, 80 developers and 1.5 TLOC, we have found that: 27% of changes are refactorings. Regarding the refactorings, 63,83% are Low level, and 71% have local scope. Our results indicate that refactorings are frequently applied before likely functionality changes, in order to better prepare design for accommodating additions. |
Year | DOI | Venue |
---|---|---|
2011 | 10.1109/SBES.2011.21 | Software Engineering |
Keywords | Field | DocType |
software repository,open source project,software reposi,software repositories,automatic technique,software development,refactoring frequency,software version,open source java project,local scope,analyzing refactorings,refactoring implementation,java,programming,history,software maintenance | Programming language,Software analytics,Software engineering,Computer science,Backporting,Software maintenance,Software verification and validation,Software construction,Code refactoring,Software framework,Software development | Conference |
ISBN | Citations | PageRank |
978-1-4577-2187-8 | 11 | 0.48 |
References | Authors | |
12 | 6 |
Name | Order | Citations | PageRank |
---|---|---|---|
Gustavo L. Soares | 1 | 203 | 9.02 |
Bruno Catao | 2 | 11 | 0.48 |
Catuxe Varjao | 3 | 11 | 0.48 |
Solon Aguiar | 4 | 11 | 0.48 |
Rohit Gheyi | 5 | 618 | 40.66 |
Tiago Massoni | 6 | 245 | 17.18 |