Resumen
Com a evolução de uma linguagem, surge a possibilidade de atualizar construções antigas
e se beneficiar de novas funcionalidades. Porém, à medida que os sistemas são modificados,
adaptados e atualizados, seu código e outros artefatos envolvidos podem se tornar mais
complexos, propensos a erros e se afastarem de sua concepção original, podendo diminuir sua
qualidade. Então, de forma a guiar desenvolvedores para evolução de programas, este trabalho
propõe um catálogo com trinta refatorações para a evolução de programas em Java e a definição
de quinze funções de detecção para a busca de oportunidades para aplicar as refatorações propostas.
Após isso, com o objetivo de avaliar e validar as refatorações e funções apresentadas,
foi desenvolvida uma API para a realização de um estudo de caso utilizando cinco projetos de
código aberto.