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

Detalhes bibliográficos
Autor(a) principal: Gomes, Ludmila Brito
Data de Publicação: 2024
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Saber Aberto – Repositório Institucional da UNEB
dARK ID: ark:/31471/0013000001qqz
Texto Completo: https://saberaberto.uneb.br/handle/20.500.11896/7558
Resumo: 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.
id UNEB-8_b4582a4ac82bb2c3d1b46ce987ef46ef
oai_identifier_str oai:saberaberto.uneb.br:20.500.11896/7558
network_acronym_str UNEB-8
network_name_str Saber Aberto – Repositório Institucional da UNEB
repository_id_str
spelling Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.Detection of Code Smells: a comparative study between modeling with artificial intelligence and conventional tools.Code SmellsRNRSmell-JSSonarQubeInteligência ArtificialJavaScriptRede Neural RecorrenteNos ú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.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.Universidade do Estado da BahiaColegiado de Ssitemas de InformaçãoMascarenhas, Ana Patrícia Fontes MagalhãesLenz, Alexandre RafaelRestrovic, Maria Inés ValderramaGomes, Ludmila Brito2025-02-13T11:22:09Z2025-02-13T11:22:09Z2024-12-19info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionapplication/pdfapplication/pdfGOMES,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.https://saberaberto.uneb.br/handle/20.500.11896/7558ark:/31471/0013000001qqzporinfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by/3.0/br/reponame:Saber Aberto – Repositório Institucional da UNEBinstname:Universidade do Estado da Bahia (UNEB)instacron:UNEB2025-02-14T03:00:17Zoai:saberaberto.uneb.br:20.500.11896/7558Repositório InstitucionalPUBhttps://saberaberto.uneb.br/server/oai/requestrepositorio@uneb.br || sisb@uneb.bropendoar:2025-02-14T03:00:17Saber Aberto – Repositório Institucional da UNEB - Universidade do Estado da Bahia (UNEB)false
dc.title.none.fl_str_mv Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
Detection of Code Smells: a comparative study between modeling with artificial intelligence and conventional tools.
title Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
spellingShingle Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
Gomes, Ludmila Brito
Code Smells
RNRSmell-JS
SonarQube
Inteligência Artificial
JavaScript
Rede Neural Recorrente
title_short Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
title_full Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
title_fullStr Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
title_full_unstemmed Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
title_sort Detecção de Code Smells: um estudo comparativo entre modelagem com inteligência artificial e ferramenta convencional.
author Gomes, Ludmila Brito
author_facet Gomes, Ludmila Brito
author_role author
dc.contributor.none.fl_str_mv Mascarenhas, Ana Patrícia Fontes Magalhães
Lenz, Alexandre Rafael
Restrovic, Maria Inés Valderrama
dc.contributor.author.fl_str_mv Gomes, Ludmila Brito
dc.subject.por.fl_str_mv Code Smells
RNRSmell-JS
SonarQube
Inteligência Artificial
JavaScript
Rede Neural Recorrente
topic Code Smells
RNRSmell-JS
SonarQube
Inteligência Artificial
JavaScript
Rede Neural Recorrente
description 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.
publishDate 2024
dc.date.none.fl_str_mv 2024-12-19
2025-02-13T11:22:09Z
2025-02-13T11:22:09Z
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv 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.
https://saberaberto.uneb.br/handle/20.500.11896/7558
dc.identifier.dark.fl_str_mv ark:/31471/0013000001qqz
identifier_str_mv 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.
ark:/31471/0013000001qqz
url https://saberaberto.uneb.br/handle/20.500.11896/7558
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by/3.0/br/
eu_rights_str_mv openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by/3.0/br/
dc.format.none.fl_str_mv application/pdf
application/pdf
dc.publisher.none.fl_str_mv Universidade do Estado da Bahia
Colegiado de Ssitemas de Informação
publisher.none.fl_str_mv Universidade do Estado da Bahia
Colegiado de Ssitemas de Informação
dc.source.none.fl_str_mv reponame:Saber Aberto – Repositório Institucional da UNEB
instname:Universidade do Estado da Bahia (UNEB)
instacron:UNEB
instname_str Universidade do Estado da Bahia (UNEB)
instacron_str UNEB
institution UNEB
reponame_str Saber Aberto – Repositório Institucional da UNEB
collection Saber Aberto – Repositório Institucional da UNEB
repository.name.fl_str_mv Saber Aberto – Repositório Institucional da UNEB - Universidade do Estado da Bahia (UNEB)
repository.mail.fl_str_mv repositorio@uneb.br || sisb@uneb.br
_version_ 1848166783564906496