Use este identificador para citar ou linkar para este item: http://repositorio.ufc.br/handle/riufc/80670
Tipo: TCC
Título: Investigando a qualidade das refatorações de múltiplas LLMs em código Java
Autor(es): Freitas, Javel Queiroz
Orientador: Bezerra, Carla Ilane Moreira
Coorientador: Souza Filho, José Cezar Junior de
Palavras-chave em português: refatoração;code smells;large language models;qualidade de software
CNPq: CNPQ: CIÊNCIAS EXATAS E DA TERRA
Data do documento: 2025
Citação: FREITAS, Javel Queiroz. Investigando a qualidade das refatorações de múltiplas LLMs em código Java. 2025. 122 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) - Campus de Quixadá, Universidade Federal do Ceará, Quixadá, 2025.
Resumo: Code smells afetam negativamente a qualidade do código, possibilitando a degradação do código e geração de débito técnico. Dessa forma, quando identificados, os code smells devem ser removidos por meio de diversas técnicas de refatoração. Large Language Models (LLM) são grandes modelos de linguagem computacionais com capacidade de entender e gerar linguagem humana. Eles são treinados em vasta quantidade de dados para realizar uma série de tarefas posteriores. Estudos da literatura tem investigado as LLMs na geração de código e também na refatoração de code smells. O presente trabalho investiga empiricamente a qualidade das refatorações de code smells utilizando três LLMs (ChatGPT, Github Copilot, Google Gemini) e coletando a percepção de desenvolvedores. Para isso, desenvolvemos um projeto Java baseado na adaptação de code smells (Data Class (DC), Feature Envy (FE), Long Method (LM) e Long Parameter List (LPL)) de projetos open source e agrupamos 48 desenvolvedores em equipes, onde cada equipe refatorou o projeto com uma das LLMs investigadas pelo trabalho. Analisamos a qualidade das refatorações pelas médias das métricas dos atributos de qualidade (Coesão, Acoplamento, Complexidade e Herança) extraídas dos projetos refatorados e comparamos o desempenho entre as LLMs. Coletamos a percepção dos desenvolvedores a partir de questionários e analisamos qualitativamente utilizando Grounded Theory. Os resultados mostram que após as refatorações por LLMs houve melhora em todos os atributos no acoplamento, complexidade (Exceção: DC), e herança (Exceção: LM). No entanto, a coesão piorou em todos os code smells, exceto em FE. A refatoração do LPL teve maior melhora (Herança: 4,93%), mas também piora (Coesão: -6,07%). As refatorações do FE foram as únicas com melhora em todos os atributos. Em comparação com as outras LLMs o ChatGPT teve vantagem na melhora do acoplamento (para FE e LM), o Copilot para coesão (DC e FE) e herança (FE e LPL), e o Gemini para a complexidade (DC e FE). Os participantes relataram sobre refatorações paralelas e inserções de novas instâncias de code smells, com destaque para o LPL (8,13 inserção por remoção) e FE (0,69 inserção por remoção). Na percepção dos participantes os LLMs auxiliam: (i) na produtividade; (ii) refatoração de código; (iii) análise de código; e, (iv) como ferramenta de apoio. No entanto, ainda há deficiências no processo de refatoração com LLMs, como: (i) necessidade de direcionamento específico; (ii) entender e manter contexto do que foi pedido; (iii) evitar gerar código com pouca qualidade; e, (iv) evitar depender das LLMs.
Abstract: Code smells negatively affect code quality, facilitating code degradation and technical debt generation. Therefore, when identified, code smells should be removed through various refactoring techniques. Large Language Models (LLM) are large computational language models with the ability to understand and generate human language. They are trained on vast amounts of data to perform a series of downstream tasks. Studies in the literature have investigated LLMs in code generation and also in refactoring code smells. The present study empirically investigates the quality of code smells refactorings using three LLMs (ChatGPT, Github Copilot, Google Gemini) and collecting developers’ perceptions. Thus, we developed a Java project based on the adaptation of code smells (Data Class (DC), Feature Envy (FE), Long Method (LM) and LPL) from open-source projects and assigned 48 developers to teams, each of which refactored the project using one of the LLMs investigated in this study. We analyzed the quality of the refactorings based on the average values of the quality attributes metrics (Cohesion, Coupling, Complexity, and Inheritance) extracted from the refactored projects and compared the performance of the LLMs. We collected developers’ perceptions through questionnaires and conducted a qualitative analysis using Grounded Theory. The results indicate that, after refactorings by LLMs, all attributes improved in terms of coupling, complexity (Exception: DC), and inheritance (Exception: LM). However, cohesion worsened in all code smells except in FE. The refactoring of LPL showed the greatest improvement (Inheritance: 4.93%), but also the greatest decline (Cohesion: -6.07%). The refactorings of FE were the only ones that improved across all attributes. In comparison with the other LLMs, ChatGPT showed an advantage in improving coupling (for FE and LM), Copilot in cohesion (DC and FE) and inheritance (FE and LPL), and Gemini in complexity (DC and FE). The participants reported parallel refactorings and the insertion of new instances of code smells with emphasis on LPL (8.13 insertions per removal) and FE (0.69 insertions per removal). In the participants’ perception, the LLMs assist: (i) in productivity; (ii) code refactoring; (iii) code analysis; and, (iv) as a support tool. However, there are still deficiencies in the refactoring process with LLMs, such as: (i) the need for specific guidance; (ii) understanding and maintaining the context of what was requested; (iii) preventing the generating low-quality code; and, (iv) avoiding dependence on the LLMs.
URI: http://repositorio.ufc.br/handle/riufc/80670
Currículo Lattes do Orientador: http://lattes.cnpq.br/4277471687235814
ORCID do Coorientador: https://orcid.org/0000-0002-1084-478X
Currículo Lattes do Coorientador: http://lattes.cnpq.br/8371277471154278
Tipo de Acesso: Acesso Aberto
Aparece nas coleções:ENGENHARIA DE SOFTWARE - QUIXADÁ - TCC

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
2025_tcc_jqfreitas.pdf3,96 MBAdobe PDFVisualizar/Abrir


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