Publicação: Uma abordagem iterativa baseada em LLMs para melhoria de código a partir de recomendações de análise estática
Carregando...
Tipo do documento
Data
Direito de acesso
Área do conhecimento
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE
Título da Revista
ISSN da Revista
Título de Volume
Autores
Orientador
Coorientador
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.
Abstract
Maintaining and evolving software systems often demands more effort than their initial
development. Improving source code quality through automated support can significantly reduce technical debt, increase maintainability, and enhance developer productivity.
This research presents an approach that integrates static analysis with Large Language
Models (LLMs) to automate source code improvement. The proposed pipeline iteratively
processes Java classes by extracting issues detected by SonarQube and transforming them
into prompts for LLMs, which generate improved code versions. Each version is reanalyzed, and the process repeats until convergence or a predefined iteration limit is reached.
The approach was empirically assessed and the experimental setup includes multiple configurations combining two LLMs (GPT-4-mini and Gemini), variation in temperature,
prompt style, and number of iterations. Evaluations were conducted using multiple Java
datasets, with three repeated runs for the Commons Lang repository to identify behavioral patterns. The analysis focuses on the number of issues reduction, decrease in technical
debt (measured in a SonarQube metric), and the evolution of issue severity. Functional
correctness was assessed manually by inspecting the improved code to ensure behavior
preservation. The results demonstrate that combining SonarQube with LLMs is effective
in reducing code issues—achieving over 58% average reduction in key scenarios—while
preserving functionality. The iterative process proved successful in guiding the models
to incrementally improve code quality based on real static analysis feedback. This work
contributes a reproducible and extensible pipeline, offering insights into the impact of
LLM configurations and supporting further research in the integration of AI and software
quality engineering.
Palavras-chave
Melhoria Automática de Código-Fonte, Automatic source code improvement, LLM, Análise Estática, Static Analysis
Citação
GONÇALVES, João Carlos. Uma abordagem iterativa baseada em LLMs para melhoria de código a partir de recomendações de análise estática. 2025. 69 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2025. DOI http://doi.org/10.14393/ufu.di.2025.481