Understanding Refactoring Tasks over Time: A Study Using Refactoring Graphs - Brito, Aline; Hora, Andre; Valente, Marco Tulio (Anais do Congresso Ibero-Americano em Engenharia de Software (CIbSE), 2022)
Refactoring is a fundamental practice in modern software development. Therefore, it is essential that practitioners have a solid understanding of refactoring, both in theory and in practice. In this paper, we rely on a graph-based abstraction — called refactoring graphs — to visualize and analyze refactorings performed by students in a canonical refactoring application: the Video Store System, proposed by Fowler. We asked 46 students to perform the refactorings included in this example under two scenarios: according to a list of explicit guidelines, where most students performed the tasks successfully; and by using flexible ones, in which a part of the students faced problems identifying the appropriate operations. We conclude by presenting discussions and implications.