Exportar este item: EndNote BibTex

Use este identificador para citar ou linkar para este item: http://tede2.uefs.br:8080/handle/tede/1969
Tipo do documento: Dissertação
Título: Avaliação empírica da eficácia de Modelos de Linguagem Grande (LLMs) na refatoração de Projetos Python
Autor: Souza, Pedro Carneiro de 
Primeiro orientador: Bastos, Larissa Rocha Soares
Primeiro coorientador: Figueiredo, Eduardo
Primeiro membro da banca: Bastos, Larissa Rocha
Segundo membro da banca: Machado, Ivan do Carmo
Terceiro membro da banca: Uchôa, Anderson Gonçalves
Resumo: A refatoração de código é uma prática essencial para garantir a qualidade e a evolução contínua dos sistemas de software, especialmente em linguagens como Python, que exigem alta manutenibilidade. Embora ferramentas de análise estática, como o SonarQube, ofereçam suporte na identificação de problemas, o processo de refatoração ainda apresenta desafios, como a preservação da funcionalidade e a melhoria da legibilidade do código. Nesse cenário, os Modelos de Linguagem de Grande Escala (LLMs), como o GPT-4, DeepSeek e Claude AI, surgem como ferramentas promissoras por combinarem análise contextual avançada com geração automatizada de código. Este estudo tem como objetivo avaliar a eficácia de LLMs na refatoração de código Python, com foco na correção de problemas de manutenibilidade, identificação de limitações e proposição de melhorias. Para isso, conduzimos um estudo empírico com quatro modelos amplamente utilizados: Copilot Chat 4o, LLaMA 3.3 70B Instruct, DeepSeek V3 e Gemine 2.5 Pro. Além disso, este estudo também investiga se esses modelos apresentam melhor desempenho quando utilizados com técnicas de prompting mais refinadas, como o few-shot por exemplo. Para isso, cada LLM foi submetido a dois estilos distintos de prompting: zero-shot e few-shot, permitindo uma análise comparativa do impacto dessas abordagens na qualidade das refatorações geradas. Avaliamos 150 métodos com problemas de manutenibilidade por LLM e por técnica de prompt, e os resultados indicam que, embora os modelos tenham alcançado taxas consideráveis de eficácia no cenário few-shot, Gemini (64,67%), DeepSeek (64,00%), Copilot (63,33%) e LLaMA 3.3 70B (55,33%), todos enfrentaram limitações importantes. Entre os principais desafios observados estão: a introdução de novos problemas de manutenibilidade, erros de execução, falhas em testes automatizados e, em alguns casos, a não correção do problema original identificado. Além disso, conduzimos uma avaliação com participantes humanos para analisar a legibilidade do código refatorado pelos modelos. Os resultados indicam que 81,25% das soluções foram percebidas como melhorias, especialmente em aspectos estruturais. No entanto, também foram observados casos em que a legibilidade foi prejudicada, seja pela introdução de complexidade desnecessária ou pela falta de padronização no estilo do código. Esses achados reforçam a necessidade de cautela ao adotar automaticamente as sugestões geradas por LLMs, além de destacar a importância da validação por desenvolvedores na revisão final do código. Este trabalho contribui com uma análise comparativa das capacidades dos LLMs, apontando suas limitações e propondo metodologias práticas para a integração de IA no processo de refatoração de código. Os resultados deste estudo buscam contribuir para abrir caminho para novas pesquisas, principalmente no desenvolvimento de técnicas de prompting mais eficientes e na avaliação de modelos que ainda estão por vir. Esperamos que essas contribuições ajudem desenvolvedores e pesquisadores a encontrar soluções mais práticas, confiáveis e duradouras para melhorar a manutenibilidade do software no dia a dia.
Abstract: Code refactoring is an essential practice to ensure the quality and continuous evolution of software systems, especially in languages like Python, which demand high maintainability. Although static analysis tools such as SonarQube provide support in identifying issues, the refactoring process still presents challenges, such as preserving functionality and improving code readability. In this context, Large Language Models (LLMs), such as GPT-4, DeepSeek, and Claude AI, emerge as promising tools by combining advanced contextual analysis with automated code generation. This study aims to evaluate the effectiveness of LLMs in refactoring Python code, focusing on correcting maintainability issues, identifying limitations, and proposing improvements. To this end, we conducted an empirical study with four widely used models: Copilot Chat 4o, LLaMA 3.3 70B Instruct, DeepSeek V3, and Gemini 2.5 Pro. Furthermore, this study also investigates whether these models perform better when used with more refined prompting techniques, such as few-shot learning. For this purpose, each LLM was submitted to two distinct prompting styles: zero-shot and few-shot, allowing a comparative analysis of the impact of these approaches on the quality of the generated refactorings. We evaluated 150 methods with maintainability problems by LLM and by prompt technique, and the results indicate that, although the models achieved considerable effectiveness rates in the few-shot scenario—Gemini (64.67%), DeepSeek (64.00%), Copilot (63.33%), and LLaMA 3.3 70B (55.33%), all faced significant limitations. Among the main challenges observed were the introduction of new maintainability problems, runtime errors, failures in automated tests, and, in some cases, the failure to correct the originally identified issue. Additionally, we conducted a human participant evaluation to analyze the readability of the code refactored by the models. The results indicate that 81.25% of the solutions were perceived as improvements, especially in structural aspects. However, there were also cases where readability was impaired, either due to the introduction of unnecessary complexity or lack of standardization in code style. These findings reinforce the need for caution when automatically adopting suggestions generated by LLMs, and highlight the importance of validation by developers in the final code review. This work contributes a comparative analysis of the capabilities of LLMs, pointing out their limitations and proposing practical methodologies for integrating AI into the code refactoring process. The results of this study aim to pave the way for new research, especially in the development of more efficient prompting techniques and in the evaluation of models yet to come. We hope these contributions help developers and researchers find more practical, reliable, and long-lasting solutions to improve software maintainability in everyday practice.
Palavras-chave: Refatoração de código
Manutenibilidade
Modelos de Linguagem de Larga Escala (LLMs)
Python
Code Refactoring
Maintainability
Large-Scale Language Models (LLMs)
Python
Área(s) do CNPq: CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Idioma: por
País: Brasil
Instituição: Universidade Estadual de Feira de Santana
Sigla da instituição: UEFS
Departamento: DEPARTAMENTO DE CIÊNCIAS EXATAS
Programa: Programa de Pós-Graduação em Ciência da Computação
Citação: SOUZA, Pedro Carneiro de. Avaliação empírica da eficácia de Modelos de Linguagem Grande (LLMs) na refatoração de Projetos Python, 2025, 129f., Dissertação (mestrado) - Programa de Pós-Graduação em Ciência da Computação, Universidade Estadual de Feira de Santana, Feira de Santana.
Tipo de acesso: Acesso Aberto
URI: http://tede2.uefs.br:8080/handle/tede/1969
Data de defesa: 19-Ago-2025
Aparece nas coleções:Coleção UEFS

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Pedro_Carneiro_de_Souza - Dissertação.pdfSouza, Pedro Carneiro de - Dissertação2,1 MBAdobe PDFThumbnail

Baixar/Abrir Pré-Visualizar


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.