Refactoring Graphs: Assessing Refactoring over Time

03/10/2020
by   Aline Brito, et al.
0

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.

READ FULL TEXT
research
01/05/2021

Why Developers Refactor Source Code: A Mining-based Study

Refactoring aims at improving code non-functional attributes without mod...
research
09/03/2019

The Dynamics of Software Composition Analysis

Developers today use significant amounts of open source code, surfacing ...
research
01/12/2022

Towards a Catalog of Composite Refactorings

Catalogs of refactoring have key importance in software maintenance and ...
research
04/24/2022

Impact of Change Granularity in Refactoring Detection

Detecting refactorings in commit history is essential to improve the com...
research
07/12/2019

Framework Code Samples: How Are They Maintained and Used by Developers?

Background: Modern software systems are commonly built on the top of fra...
research
12/04/2017

A Quantitative Study of Java Software Buildability

Researchers, students and practitioners often encounter a situation when...
research
05/28/2020

Using Source Code Density to Improve the Accuracy of Automatic Commit Classification into Maintenance Activities

Source code is changed for a reason, e.g., to adapt, correct, or adapt i...

Please sign up or login with your details

Forgot password? Click here to reset