Uma abordagem iterativa baseada em LLMs para melhoria de código a partir de recomendações de análise estática

Dissertação de Mestrado
por Caroline Félix de Oliveira
Publicado: 10/07/2025 - 15:21
Última modificação: 10/07/2025 - 15:21

Linha de pesquisa: Engenharia de Software

Resumo: A manutenção e evolução de sistemas de software frequentemente demanda mais esforço do que seu desenvolvimento inicial. Melhorar a qualidade do código-fonte por meio de suporte automatizado pode reduzir significativamente a dívida técnica, aumentar a manutenibilidade e aprimorar a produtividade dos desenvolvedores. Esta pesquisa apresenta uma abordagem que integra análise estática com Modelos de Linguagem de Grande Escala (LLMs) para automatizar a melhoria de código-fonte. A abordagem proposta processa iterativamente classes Java, extraindo problemas detectados pelo SonarQube e transformando-os em prompts para os LLMs, que geram versões aprimoradas do código. Cada versão é reanalisada, e o processo se repete até a convergência ou até atingir um limite predefinido de iterações. A abordagem foi avaliada experimentalmente e a configuração experimental inclui múltiplas combinações, envolvendo dois LLMs (GPT-4-mini e Gemini), variações de temperatura, estilo de prompt e número de iterações. As avalia- ções foram conduzidas utilizando múltiplos conjuntos de dados Java, com três execuções repetidas sobre o repositório Commons Lang para identificar padrões de comportamento. A análise se concentra na redução do número de problemas, na diminuição da dívida técnica (medida por uma métrica do SonarQube) e na evolução da severidade das issues. A correção funcional foi verificada manualmente por meio da inspeção do código aprimorado, a fim de garantir a preservação do comportamento. Os resultados demonstram que a combinação de SonarQube com LLMs é eficaz na redução de problemas no código — alcançando mais de 58% de redução média em cenários-chave — ao mesmo tempo em que preserva a funcionalidade. O processo iterativo mostrou-se bem-sucedido em guiar os modelos para melhorar incrementalmente a qualidade do código com base em feedbacks reais da análise estática. Este trabalho contribui com uma pipeline reprodutível e extensível, demonstrando o impacto de diferentes configurações dos LLMs e apoiando futuras pesquisas na integração entre IA e engenharia de qualidade de software.

Link para a defesa: https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODg1NTI2OTYtYmQ2Z...

Banca Examinadora: 
Stéphane Julia - Universidade Federal de Uberlândia, Faculdade de Computação.
Eduardo Figueiredo - niversidade Federal de Minas Gerais, Instituto de Ciências Exatas, Departamento de Ciência da Computação.
Data e Horário: 
01/08/2025 - 14:00
Virtual, 2121 1B
Uberlândia, Minas Gerais, Brasil
38400-902
Campus Santa Mônica - Bloco 1B - Sala 230
Complemento: 
1B