Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
dc.contributor.advisor | Mascarenhas, Ana Patrícia Fontes Magalhães | |
dc.contributor.author | Gomes, Ludmila Brito | |
dc.contributor.referee | Lenz, Alexandre Rafael | |
dc.contributor.referee | Restrovic, Maria Inés Valderrama | |
dc.date.accessioned | 2025-02-13T11:22:09Z | |
dc.date.available | 2025-02-13T11:22:09Z | |
dc.date.issued | 2024-12-19 | |
dc.description.abstract | Nos últimos anos, o desenvolvimento de software tem enfrentado desafios significativos relacionados à manutenção e evolução de sistemas complexos, especialmente devido aos problemas estruturais no código-fonte, conhecidos como code smells. Este trabalho tem como objetivo principal desenvolver e treinar um modelo de rede neural recorrente (RNR) para a detecção de code smells, com a finalidade de comparar sua eficácia com a abordagem tradicional de detecção realizada pela ferramenta SonarQube em códigos JavaScript. Foram coletados 65 repositórios do GitHub, cada um com 100 estrelas ou mais, os quais foram submetidos à análise pelo SonarQube. No total, foram analisadas mais de 6 milhões de linhas de código, resultando em 91.572 ocorrências de code smells, das quais 24.180 foram utilizadas para o treinamento da RNR. A partir desses repositórios, foram selecionados 5 tipos de code smells comuns na linguagem JavaScript para compor o dataset utilizado no treinamento da RNR, que foi batizada de RNRSmell-JS, foram eles: função vazia, código comentado, operador ternário aninhado, inversão de lógica e uso indevido de var. A ferramenta desenvolvida foi comparada com o SonarQube em termos de taxa de detecção de code smells, com os cinco tipos específicos e um rótulo adicional "No code smell". O modelo de RNR apresentou uma taxa de detecção geral de 0,7, enquanto o SonarQube obteve 0,97. Apesar do desempenho competitivo para o "uso inadequado de var", a RNR mostrou necessidade de melhorias em casos mais complexos, porém, seu potencial para aprendizado automático e escalabilidade sugere que pode se tornar uma ferramenta capaz na detecção de code smells com alguns ajustes adicionais. | |
dc.description.abstract2 | In recent years, software development has faced major challenges in the maintenance and further development of complex systems, especially due to structural problems in the source code, known as code smells. The main objective of this thesis is to develop and train a recurrent neural network (RNN) for code smell detection in order to compare its effectiveness with the traditional detection approach performed by the SonarQube tool in JavaScript code. Sixty-five GitHub repositories, each with 100 or more stars, were collected and analyzed with SonarQube. In total, over 6 million lines of code were analyzed, resulting in 91,572 occurrences of code smells, of which 24,180 were used to train the RNN. From these repositories, five commonly occurring types of code smells in the JavaScript language were selected to create the dataset for training the RNN, which was named RNRSmell-JS. These code smells include: empty functions, commented code, nested ternary operators, logical inversions, and improper use of var. The developed tool was compared to SonarQube in terms of code smell detection rate, considering the five specific types and an additional label "no code smell" The RNN model showed an overall detection rate of 0.7, while SonarQube achieved 0.97. Despite the competitive performance on "improper use of var", the RNN model showed room for improvement in more complex cases. However, its potential for automatic learning and its scalability suggest that, with a few additional adjustments, it can become a capable tool for detecting code smells. Keywords: Code Smells; RNRSmell-JS; SonarQube; artificial intelligence; JavaScript; recurrent neural network. | |
dc.format.mimetype | application/pdf | |
dc.identifier.citation | GOMES,Ludmila Brito .Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.Orientadora: Ana Patrícia Fontes Magalhães Mascarenhas. 2024.46 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) -Departamento de Ciências Exatas e da Terra (DCET), Universidade do Estado da Bahia. Campus I, Salvador, 2024. | |
dc.identifier.uri | https://saberaberto.uneb.br/handle/20.500.11896/7558 | |
dc.identifier2.Lattes | http://lattes.cnpq.br/9420400276266897 | |
dc.language.iso | por | |
dc.publisher | Universidade do Estado da Bahia | |
dc.publisher.program | Colegiado de Ssitemas de Informação | |
dc.rights | info:eu-repo/semantics/openAccess | |
dc.rights.uri | http://creativecommons.org/licenses/by/3.0/br/ | |
dc.rights2 | Attribution 3.0 Brazil | en |
dc.subject.keywords | Code Smells | |
dc.subject.keywords | RNRSmell-JS | |
dc.subject.keywords | SonarQube | |
dc.subject.keywords | Inteligência Artificial | |
dc.subject.keywords | JavaScript | |
dc.subject.keywords | Rede Neural Recorrente | |
dc.title | Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional. | |
dc.title.alternative | Detection of Code Smells: a comparative study between modeling with artificial intelligence and conventional tools. | |
dc.type | info:eu-repo/semantics/bachelorThesis |
Arquivos
Pacote Original
1 - 1 de 1
Carregando...
- Nome:
- Detecção de Code Smells_ Ludmila Gomes .pdf
- Tamanho:
- 801.17 KB
- Formato:
- Adobe Portable Document Format
- Descrição:
Licença do Pacote
1 - 1 de 1
Carregando...
- Nome:
- license.txt
- Tamanho:
- 462 B
- Formato:
- Item-specific license agreed upon to submission
- Descrição: