| 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.
|
|||||||||||||
|
|||||||||||||