Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.

dc.contributor.advisorMascarenhas, Ana Patrícia Fontes Magalhães
dc.contributor.authorGomes, Ludmila Brito
dc.contributor.refereeLenz, Alexandre Rafael
dc.contributor.refereeRestrovic, Maria Inés Valderrama
dc.date.accessioned2025-02-13T11:22:09Z
dc.date.available2025-02-13T11:22:09Z
dc.date.issued2024-12-19
dc.description.abstractNos ú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.abstract2In 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.mimetypeapplication/pdf
dc.identifier.citationGOMES,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.urihttps://saberaberto.uneb.br/handle/20.500.11896/7558
dc.identifier2.Latteshttp://lattes.cnpq.br/9420400276266897
dc.language.isopor
dc.publisherUniversidade do Estado da Bahia
dc.publisher.programColegiado de Ssitemas de Informação
dc.rightsinfo:eu-repo/semantics/openAccess
dc.rights.urihttp://creativecommons.org/licenses/by/3.0/br/
dc.rights2Attribution 3.0 Brazilen
dc.subject.keywordsCode Smells
dc.subject.keywordsRNRSmell-JS
dc.subject.keywordsSonarQube
dc.subject.keywordsInteligência Artificial
dc.subject.keywordsJavaScript
dc.subject.keywordsRede Neural Recorrente
dc.titleDetecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
dc.title.alternativeDetection of Code Smells: a comparative study between modeling with artificial intelligence and conventional tools.
dc.typeinfo:eu-repo/semantics/bachelorThesis
Arquivos
Pacote Original
Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
Detecção de Code Smells_ Ludmila Gomes .pdf
Tamanho:
801.17 KB
Formato:
Adobe Portable Document Format
Descrição:
Licença do Pacote
Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
462 B
Formato:
Item-specific license agreed upon to submission
Descrição: