Refactoring Graphs: Assessing Refactoring over Time

被引:0
作者
Brito, Aline [1 ]
Hora, Andre [1 ]
Valente, Marco Tulio [1 ]
机构
[1] Univ Fed Minas Gerais, Dept Comp Sci DCC, ASERG Grp, Belo Horizonte, MG, Brazil
来源
PROCEEDINGS OF THE 2020 IEEE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER '20) | 2020年
关键词
Refactoring; Refactoring graphs; Mining software repositories; Software evolution; REPOSITORY;
D O I
10.1109/saner48275.2020.9054864
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Refactoring is an essential activity during software evolution. Frequently, practitioners rely on such transformations to improve source code maintainability and quality. As a consequence, this process may produce new source code entities or change the structure of existing ones. Sometimes, the transformations are atomic, i.e., performed in a single commit. In other cases, they generate sequences of modifications performed over time. To study and reason about refactorings over time, in this paper, we propose a novel concept called refactoring graphs and provide an algorithm to build such graphs. Then, we investigate the history of 10 popular open-source Java-based projects. After eliminating trivial graphs, we characterize a large sample of 1,150 refactoring graphs, providing quantitative data on their size, commits, age, refactoring composition, and developers. We conclude by discussing applications and implications of refactoring graphs, for example, to improve code comprehension, detect refactoring patterns, and support software evolution studies.
引用
收藏
页码:367 / 377
页数:11
相关论文
共 54 条
[1]   RefDistiller: A Refactoring Aware Code Review Tool for Inspecting Manual Refactoring Edits [J].
Alves, Everton L. G. ;
Song, Myoungkyu ;
Kim, Miryung .
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, :751-754
[2]  
[Anonymous], 2014, P 7 INT WORKSH COOP
[3]  
Avelino G., 2016, Proceedings of IEEE 24th International Conference on Program Comprehension (ICPC), P1
[4]  
Bacchelli A, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P712, DOI 10.1109/ICSE.2013.6606617
[5]  
Bavota G., 2012, 2012 12th IEEE Working Conference on Source Code Analysis and Manipulation (SCAM 2012), P104, DOI 10.1109/SCAM.2012.20
[6]   An experimental investigation on the innate relationship between quality and refactoring [J].
Bavota, Gabriele ;
De Lucia, Andrea ;
Di Penta, Massimiliano ;
Oliveto, Rocco ;
Palomba, Fabio .
JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 107 :1-14
[7]  
Bibiano AC, 2019, INT SYMP EMP SOFTWAR, P31
[8]   What's in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform [J].
Borges, Hudson ;
Valente, Marco Tulio .
JOURNAL OF SYSTEMS AND SOFTWARE, 2018, 146 :112-129
[9]   Understanding the Factors that Impact the Popularity of GitHub Repositories [J].
Borges, Hudson ;
Hora, Andre ;
Valente, Marco Tulio .
32ND IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2016), 2016, :334-344
[10]  
Cedrim D., 2018, THESIS