Uma abordagem iterativa baseada em LLMs para melhoria de código a partir de recomendações de análise estática
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...