Rejuvenescimento de Código em Projetos Python: Um Estudo Empírico sobre Structural Pattern Matching
Rejuvenescimento de código, Python, Structural Pattern Matching, Manutenibilidade, Mineração de Repositórios de Software
O rejuvenescimento de código consiste na modernização de sistemas de software pela substituição de construções legadas por recursos contemporâneos da linguagem, com o objetivo de melhorar atributos como legibilidade e manutenibilidade. Em Python, a introdução do Structural Pattern Matching representa uma mudança significativa no estilo de escrita ao oferecer uma alternativa mais expressiva às cadeias condicionais tradicionais. Apesar de sua relevância conceitual, ainda são escassas as evidências empíricas sobre como esse recurso vem sendo adotado em projetos reais e em que medida sua utilização pode ser caracterizada como rejuvenescimento de código. Esta pesquisa investiga empiricamente a adoção do structural pattern matching no ecossistema Python, analisando os contextos de sua introdução e avaliando quando essas transformações podem ser interpretadas como práticas de rejuvenescimento. Para isso, conduziu-se um estudo exploratório para identificar projetos que utilizam match/case, seguido de análises quantitativas e qualitativas do histórico de commits. O estudo foi viabilizado pela ferramenta PyMiner, que minerou automaticamente 289 repositórios públicos do GitHub por meio de técnicas de Mining Software Repositories (MSR) e análise estrutural baseada em Abstract Syntax Tree (AST), integrando ainda um componente de classificação automatizada para apoiar a anotação e confirmação de casos. Os resultados indicam que a adoção do pattern matching ainda ocorre de forma limitada e concentrada em cenários específicos, frequentemente como substituição direta de cadeias condicionais, sem exploração sistemática de seu potencial expressivo. Este trabalho contribui com evidências empíricas úteis para a comunidade Python ao elucidar o papel do SPM no processo de modernização e rejuvenescimento de código.