Use este identificador para citar ou linkar para este item:
http://repositorio.ufc.br/handle/riufc/85761| Tipo: | TCC |
| Título: | Uso de modelos de linguagem para identificação de code smells em typescript |
| Autor(es): | Nobre, José Vitor de Oliveira |
| Orientador: | Cruz, Lívia Almada |
| Palavras-chave em português: | code smells;análise estática;modelos de linguagem;typescript |
| CNPq: | CNPQ: CIÊNCIAS EXATAS E DA TERRA: ENGENHARIA DE SOFTWARE |
| Data do documento: | 2026 |
| Citação: | NOBRE, José Vitor de Oliveira. Uso de modelos de linguagem para identificação de code smells em typescript. 2026. 52 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) - Campus de Quixadá, Universidade Federal do Ceará, Quixadá, 2026. |
| Resumo: | Code smells representam indícios de problemas de qualidade no código-fonte que, embora não comprometam diretamente a corretude do software, dificultam sua manutenção, evolução e compreensão ao longo do tempo. Atualmente, a detecção desses problemas é majoritariamente realizada por meio de ferramentas de análise estática, que se baseiam em regras estruturais e métricas sintáticas. Apesar de amplamente utilizadas, essas abordagens apresentam limitações, especialmente em cenários nos quais a compreensão do código depende de aspectos semânticos e contextuais que não são plenamente capturados por análises puramente estáticas. Diante desse cenário, este trabalho investiga o uso de modelos de linguagem para a detecção automática de code smells em código-fonte escrito em TypeScript, comparando essa abordagem com ferramentas tradicionais de análise estática. Inicialmente, foi realizada a coleta e filtragem de repositórios públicos do GitHub com base em critérios de relevância e predominância da linguagem. Em seguida, o SonarQube foi utilizado para identificar ocorrências de code smells, com foco na regra Cognitive Complexity of functions should not be too high. As ocorrências identificadas passaram por uma análise manual, possibilitando a construção de um dataset rotulado de forma mais precisa. Com esse conjunto de dados, foram treinados dois modelos baseados no CodeBERT: um utilizando apenas fine-tuning supervisionado e outro combinando Masked Language Modeling com fine-tuning. Os modelos foram avaliados por meio de métricas clássicas de classificação e comparados diretamente com o desempenho do SonarQube. Os resultados indicam que o modelo de linguagem apresentou melhor capacidade de identificar code smells em cenários onde a análise puramente estática se mostra limitada, enquanto o SonarQube obteve maior precisão na identificação de código limpo, sugerindo que abordagens híbridas podem oferecer resultados mais robustos. |
| Abstract: | Code smells are indicators of potential quality issues in source code that, although not directly affecting software correctness, negatively impact maintainability, evolution, and readability. Currently, the detection of these issues is predominantly performed using static analysis tools, which rely on structural rules and syntactic metrics. While widely adopted, such approaches present limitations, particularly in cases where code understanding depends on semantic and contextual aspects that are not fully captured by purely static analyses. In this context, this work investigates the use of language models for the automatic detection of code smells in TypeScript source code, comparing this approach with traditional static analysis tools. Initially, public GitHub repositories were collected and filtered based on relevance and language predominance criteria. Subsequently, SonarQube was employed to identify code smells, focusing on the rule Cognitive Complexity of functions should not be too high. The detected instances were then subjected to manual analysis, enabling the construction of a more accurately labeled dataset. Using this dataset, two CodeBERT-based models were trained: one using supervised f ine-tuning only, and another combining Masked Language Modeling with fine-tuning. The trained models were evaluated using standard classification metrics and directly compared with SonarQube’s performance. The results show that the language model achieved better performance in identifying code smells in scenarios where purely static analysis is limited, while SonarQube demonstrated higher precision in identifying clean code. These findings indicate that hybrid approaches combining language models and static analysis tools represent a promising direction for more robust code smell detection. |
| URI: | http://repositorio.ufc.br/handle/riufc/85761 |
| Currículo Lattes do Orientador: | http://lattes.cnpq.br/8972397134674530 |
| Tipo de Acesso: | Acesso Aberto |
| Aparece nas coleções: | ENGENHARIA DE SOFTWARE - QUIXADÁ - TCC |
Arquivos associados a este item:
| Arquivo | Descrição | Tamanho | Formato | |
|---|---|---|---|---|
| 2026_tcc _jvonobre.pdf | 660,49 kB | Adobe PDF | Visualizar/Abrir |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.