Towards a Catalog of Composite Refactorings

01/12/2022
by   Aline Brito, et al.
0

Catalogs of refactoring have key importance in software maintenance and evolution, since developers rely on such documents to understand and perform refactoring operations. Furthermore, these catalogs constitute a reference guide for communication between practitioners since they standardize a common refactoring vocabulary. Fowler's seminal book on refactoring describes the most popular catalog of refactorings, which documents single and well-known refactoring operations. However, sometimes refactorings are composite transformations, i.e., a sequence of refactorings performed over a given program element. For example, a sequence of Extract Method operations (a single refactoring) can be performed over the same method, in one or in multiple commits, to simplify its implementation, therefore, leading to a Method Decomposition operation (a composite refactoring). In this paper, we propose and document a catalog with six composite refactorings. We also extend a refactoring detection tool to identify such composite refactoring in commits histories. We rely on our tool extension to mine composite refactorings in ten well-known open source projects and characterize the detected composite refactorings, under dimensions such as size and location. Finally, we qualitatively study the descriptions of commits including composite refactorings to shed preliminary light on the motivations behind such operations. We conclude by addressing the applications and implications of the proposed catalog.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/10/2020

Refactoring Graphs: Assessing Refactoring over Time

Refactoring is an essential activity during software evolution. Frequent...
research
12/26/2022

Studying the Characteristics of AIOps Projects on GitHub

Artificial Intelligence for IT Operations (AIOps) leverages AI approache...
research
12/02/2021

On the Documentation of Refactoring Types

Commit messages are the atomic level of software documentation. They pro...
research
02/26/2020

Composite Matrices from Group Rings, Composite G-Codes and Constructions of Self-Dual Codes

In this work, we define composite matrices which are derived from group ...
research
03/19/2021

Relational Operations in FOLE

This paper discusses relational operations in the first-order logical en...
research
08/08/2022

Optimistic Optimisation of Composite Objective with Exponentiated Update

This paper proposes a new family of algorithms for the online optimisati...
research
05/23/2018

On the Formal Model for IEC 61499 Composite Function Blocks

The applications for IEC 61499 that is standard architecture for develop...

Please sign up or login with your details

Forgot password? Click here to reset