Machine learning-based approach for code smell detection in software JavaScrip
| Ano de defesa: | 2024 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Biblioteca Digitais de Teses e Dissertações da USP
|
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://www.teses.usp.br/teses/disponiveis/100/100131/tde-13122024-002027/ |
Resumo: | JavaScript has become one of the world\'s most widely used programming languages. It is characterized by being a dynamic, interpreted, and weakly typed scripting language, which is especially suitable for the development of web applications. While these features allow the language to offer high levels of flexibility, they can also make JavaScript code more challenging to write, maintain, and evolve. One of the risks that JavaScript and other programming languages are prone to is the presence of code smells. Code smells result from poor programming choices during source code development, which negatively influence the source code comprehension and maintainability in the long term. %Research on the topics related to code smells has helped elevate our comprehension of the factors that lead to code smell incidence and has led us to a better understanding of their nature and their risks. Part of the research on code smells was focused on exploring different techniques to detect them. The detection techniques explored over the years range from using manually designed heuristics to employing machine learning algorithms. Although presenting promising results, most of the studies that utilized machine learning techniques to detect code smells focused on Java programming language. Since different programming languages can have different syntax, purposes, and structures and can support different programming paradigms, they may pose varying challenges for smell detection and can even be prone to unique code smells. JavaScript is such a programming language that differs from Java in a few fundamental ways, among these differences, the syntax, the support for different programming paradigms and the vulnerability to unique types of code smells stand out. Encouraged by an apparent lack of studies exploring the employment of machine learning techniques to detect code smells in JavaScript, we conducted this work for which the main contributions are the construction of the first datasets for code smell detection on JavaScript and the application of machine learning techniques for the detection of code smells in JavaScript. |
| id |
USP_cbaf2914c248fa62fd347acd46a13207 |
|---|---|
| oai_identifier_str |
oai:teses.usp.br:tde-13122024-002027 |
| network_acronym_str |
USP |
| network_name_str |
Biblioteca Digital de Teses e Dissertações da USP |
| repository_id_str |
|
| spelling |
Machine learning-based approach for code smell detection in software JavaScripAbordagem baseada em aprendizado de máquina para detecção de code smells em JavaScriptAprendizado de MáquinaClassificaçãoClassificationCode smellsCode SmellsConjunto de DadosDatasetJavaScriptJavaScriptMachine learningJavaScript has become one of the world\'s most widely used programming languages. It is characterized by being a dynamic, interpreted, and weakly typed scripting language, which is especially suitable for the development of web applications. While these features allow the language to offer high levels of flexibility, they can also make JavaScript code more challenging to write, maintain, and evolve. One of the risks that JavaScript and other programming languages are prone to is the presence of code smells. Code smells result from poor programming choices during source code development, which negatively influence the source code comprehension and maintainability in the long term. %Research on the topics related to code smells has helped elevate our comprehension of the factors that lead to code smell incidence and has led us to a better understanding of their nature and their risks. Part of the research on code smells was focused on exploring different techniques to detect them. The detection techniques explored over the years range from using manually designed heuristics to employing machine learning algorithms. Although presenting promising results, most of the studies that utilized machine learning techniques to detect code smells focused on Java programming language. Since different programming languages can have different syntax, purposes, and structures and can support different programming paradigms, they may pose varying challenges for smell detection and can even be prone to unique code smells. JavaScript is such a programming language that differs from Java in a few fundamental ways, among these differences, the syntax, the support for different programming paradigms and the vulnerability to unique types of code smells stand out. Encouraged by an apparent lack of studies exploring the employment of machine learning techniques to detect code smells in JavaScript, we conducted this work for which the main contributions are the construction of the first datasets for code smell detection on JavaScript and the application of machine learning techniques for the detection of code smells in JavaScript.JavaScript se tornou uma das linguagens de programação mais utilizadas no mundo. Caracteriza-se por ser uma linguagem de script dinâmica, interpretada e fracamente tipada, que é especialmente adequada para o desenvolvimento de aplicações web. Embora esses recursos permitam que a linguagem ofereça altos níveis de flexibilidade, eles também podem tornar o código JavaScript mais desafiador para escrever, manter e evoluir. Um dos riscos a que o JavaScript e outras linguagens de programação estão sujeitos é a presença de code smells. Code smells resultam de más escolhas tomadas durante o desenvolvimento do código-fonte que influenciam negativamente a compreensão e a capacidade de manutenção do código-fonte no longo prazo. Parte dos esforços em pesquisas relacionadas a code smells se concentrou na exploração de diferentes técnicas para detectá-los. As técnicas e estratégias de detecção exploradas ao longo dos anos vão desde o uso de heurísticas manualmente definidas até o emprego de algoritmos de aprendizado de máquina. Embora apresentem resultados promissores, a grande maioria dos estudos que empregaram técnicas de aprendizado de máquina para detectar code smells focaram na linguagem de programação Java. Como diferentes linguagens de programação podem ter diferentes sintaxes, propósitos e estruturas e podem suportar diferentes paradigmas de programação, elas podem representar desafios variados para a detecção e podem até mesmo ser propensas a tipos únicos de code smells. JavaScript é uma linguagem de programação que difere de Java em alguns aspectos fundamentais, dentre estas diferenças destactam-se a sintaxe, o suporte a diferentes paradigmas de programação e a vulnerabilidade a tipos únicos de code smells. Encorajados por uma aparente falta de estudos explorando o emprego de técnicas de aprendizado de máquina para detecção de code smells em JavaScript, foi conduzido este trabalho para o qual as principais contribuições são a construção do primeiro conjunto de dados para detecção de code smells em JavaScript e a aplicação de técnicas de aprendizado de máquina para a detecção de code smells em JavaScript.Biblioteca Digitais de Teses e Dissertações da USPDelgado, Karina ValdiviaSarafim, Diego Santana2024-11-06info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/100/100131/tde-13122024-002027/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesseng2025-08-25T14:24:02Zoai:teses.usp.br:tde-13122024-002027Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212025-08-25T14:24:02Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false |
| dc.title.none.fl_str_mv |
Machine learning-based approach for code smell detection in software JavaScrip Abordagem baseada em aprendizado de máquina para detecção de code smells em JavaScript |
| title |
Machine learning-based approach for code smell detection in software JavaScrip |
| spellingShingle |
Machine learning-based approach for code smell detection in software JavaScrip Sarafim, Diego Santana Aprendizado de Máquina Classificação Classification Code smells Code Smells Conjunto de Dados Dataset JavaScript JavaScript Machine learning |
| title_short |
Machine learning-based approach for code smell detection in software JavaScrip |
| title_full |
Machine learning-based approach for code smell detection in software JavaScrip |
| title_fullStr |
Machine learning-based approach for code smell detection in software JavaScrip |
| title_full_unstemmed |
Machine learning-based approach for code smell detection in software JavaScrip |
| title_sort |
Machine learning-based approach for code smell detection in software JavaScrip |
| author |
Sarafim, Diego Santana |
| author_facet |
Sarafim, Diego Santana |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Delgado, Karina Valdivia |
| dc.contributor.author.fl_str_mv |
Sarafim, Diego Santana |
| dc.subject.por.fl_str_mv |
Aprendizado de Máquina Classificação Classification Code smells Code Smells Conjunto de Dados Dataset JavaScript JavaScript Machine learning |
| topic |
Aprendizado de Máquina Classificação Classification Code smells Code Smells Conjunto de Dados Dataset JavaScript JavaScript Machine learning |
| description |
JavaScript has become one of the world\'s most widely used programming languages. It is characterized by being a dynamic, interpreted, and weakly typed scripting language, which is especially suitable for the development of web applications. While these features allow the language to offer high levels of flexibility, they can also make JavaScript code more challenging to write, maintain, and evolve. One of the risks that JavaScript and other programming languages are prone to is the presence of code smells. Code smells result from poor programming choices during source code development, which negatively influence the source code comprehension and maintainability in the long term. %Research on the topics related to code smells has helped elevate our comprehension of the factors that lead to code smell incidence and has led us to a better understanding of their nature and their risks. Part of the research on code smells was focused on exploring different techniques to detect them. The detection techniques explored over the years range from using manually designed heuristics to employing machine learning algorithms. Although presenting promising results, most of the studies that utilized machine learning techniques to detect code smells focused on Java programming language. Since different programming languages can have different syntax, purposes, and structures and can support different programming paradigms, they may pose varying challenges for smell detection and can even be prone to unique code smells. JavaScript is such a programming language that differs from Java in a few fundamental ways, among these differences, the syntax, the support for different programming paradigms and the vulnerability to unique types of code smells stand out. Encouraged by an apparent lack of studies exploring the employment of machine learning techniques to detect code smells in JavaScript, we conducted this work for which the main contributions are the construction of the first datasets for code smell detection on JavaScript and the application of machine learning techniques for the detection of code smells in JavaScript. |
| publishDate |
2024 |
| dc.date.none.fl_str_mv |
2024-11-06 |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://www.teses.usp.br/teses/disponiveis/100/100131/tde-13122024-002027/ |
| url |
https://www.teses.usp.br/teses/disponiveis/100/100131/tde-13122024-002027/ |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.relation.none.fl_str_mv |
|
| dc.rights.driver.fl_str_mv |
Liberar o conteúdo para acesso público. info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
Liberar o conteúdo para acesso público. |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.coverage.none.fl_str_mv |
|
| dc.publisher.none.fl_str_mv |
Biblioteca Digitais de Teses e Dissertações da USP |
| publisher.none.fl_str_mv |
Biblioteca Digitais de Teses e Dissertações da USP |
| dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da USP instname:Universidade de São Paulo (USP) instacron:USP |
| instname_str |
Universidade de São Paulo (USP) |
| instacron_str |
USP |
| institution |
USP |
| reponame_str |
Biblioteca Digital de Teses e Dissertações da USP |
| collection |
Biblioteca Digital de Teses e Dissertações da USP |
| repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP) |
| repository.mail.fl_str_mv |
virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br |
| _version_ |
1848370484190642176 |