4.4 Article

Characterizing refactoring graphs in Java and JavaScript projects

Journal

EMPIRICAL SOFTWARE ENGINEERING
Volume 26, Issue 6, Pages -

Publisher

SPRINGER
DOI: 10.1007/s10664-021-10023-3

Keywords

Refactoring; Refactoring graphs; Mining software repositories; Software evolution

Funding

  1. FAPEMIG
  2. CNPq
  3. CAPES

Ask authors/readers for more resources

Refactoring is an essential activity in software evolution to improve source code maintainability and quality. The study of refactoring graphs provides quantitative and qualitative investigation into the size, commits, age, composition, ownership, operations, and patterns of refactorings. It can be used to improve code comprehension, detect refactoring patterns, and support software evolution studies.
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, we rely on refactoring graphs. Using this abstraction, we provide quantitative and qualitative investigation on 20 popular open-source Java and JavaScript-based projects. After eliminating trivial graphs, we characterize a large sample of 1,525 refactoring graphs, providing quantitative data on their size, commits, age, refactoring composition, ownership, operations over time, and refactoring graph patterns. Besides, we contact the authors of subgraphs describing large refactoring operations to understand the reasons behind their operations. We conclude by discussing applications and implications of refactoring graphs, for example, to improve code comprehension, detect refactoring patterns, and support software evolution studies.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.4
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available