RefDiff4Go: Detecting Refactorings in Go

  • Rodrigo Brito UFMG
  • Marco Tulio Valente UFMG

Resumo


Refactoring is a key software development practice that seeks to improve the internal structure of the code without changing its external behavior. In this way, the identification of refactorings is a key source of information for researchers, practitioners, and tool builders. However, existing approaches and tools documented in the literature do not support emerging ecosystems, such as the one of the Go programming language, which is nowadays widely used to develop robust and popular projects. To address these challenges, we present in this paper RefDiff4Go, a Go extension for RefDiff, which is a multi-language refactoring detection tool. RefDiff4Go detects 13 refactoring types in Go projects. We also evaluated RefDiff4Go with six well-known Go open-source projects, achieving 92% of precision and 80% of recall. Finally, we show that RefDiff4Go runtime performance supports its adoption in professional software projects.
Palavras-chave: Refactoring, Software Evolution, Software Repositories
Publicado
19/10/2020
BRITO, Rodrigo; VALENTE, Marco Tulio. RefDiff4Go: Detecting Refactorings in Go. In: SIMPÓSIO BRASILEIRO DE COMPONENTES, ARQUITETURAS E REUTILIZAÇÃO DE SOFTWARE (SBCARS), 14. , 2020, Natal/RN. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 . p. 101–110.