Logo PUC-Rio Logo Maxwell
TRABALHOS DE FIM DE CURSO @PUC-Rio
Consulta aos Conteúdos
Título: DETECÇÃO DE CODE SMELLS EM SISTEMAS PYTHON COM APRENDIZADO DE MÁQUINA
Autor(es): ALEXANDRE CESAR BRANDAO DE ANDRADE
Colaborador(es): JULIANA ALVES PEREIRA - Orientador
Catalogação: 25/MAR/2026 Língua(s): PORTUGUÊS - BRASIL
Tipo: TEXTO Subtipo: TRABALHO DE FIM DE CURSO
Notas: [pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio.
[en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio.
Referência(s): [pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/TFCs/consultas/conteudo.php?strSecao=resultado&nrSeq=75818@1
[en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/TFCs/consultas/conteudo.php?strSecao=resultado&nrSeq=75818@2
DOI: https://doi.org/10.17771/PUCRio.acad.75818
Resumo:
A qualidade interna do código impacta diretamente a manutenção e evolução de sistemas de software. Code smells são um dos principais indícios de degradação dessa qualidade. Este trabalho investiga o uso de modelos de Aprendizado de Máquina para detecção de code smells realizada pelo PySmell em projetos Python, a partir de métricas estáticas de código. Foram considerados seis smells – Large Class, Long Method, Long Parameter List, Long Message Chain, Long Scope Chaining e Long Base Class List. A partir de um dataset rotulado por especialistas, foi construído um pipeline que integra extração automática de métricas e treinamento de diversos algoritmos supervisionados. Os resultados indicam que, modelos de Aprendizado de Máquina conseguem reproduzir com alta fidelidade os rótulos da maioria dos code smells avaliados. No entanto, code smell dependente da estrutura de chamadas permanece difícil de capturar apenas com o conjunto de métricas consideradas. Observa-se que métricas de complexidade e tamanho são, em geral, suficientes para smells baseados em tamanho e métodos, ao passo que métricas estruturais tornam-se determinantes para smells que dependem de herança e relações entre classes e chamadas. Por fim, o estudo mostra que o uso de ferramentas estáticas para rotulação de um emphdataset de referência leva a uma inflação artificial do desempenho dos modelos, caracterizando forte data leakage e comprometendo a validade das conclusões em cenários que não controlam esse efeito. O trabalho, portanto, oferece recomendações práticas e metodológicas para pesquisas futuras em detecção automatizada de code smells em Python.
Descrição: Arquivo:   
NA ÍNTEGRA PDF