Refatorações para a evolução de programas Java - Prates, Bernardo Petry (2018)
With the evolution of a language, the possibility of updating old constructions and benefiting from new features arises. However, as systems are modified, adapted and updated, their code and other artifacts may become more complex, prone to errors and departed from their original design, thus decreasing their quality. We present a catalog of thirty refactorings for the evolution of Java programs and the definition of detection functions for the search of opportunities to apply those refactorings in order to guide developers towards program evolution. Furthermore, we developed an API to perform a case study using five open source projects in order to evaluate and to validate the refactorings and functions presented.