Uma abordagem de deep-learning para realizar a predição de refatorações

Detalhes bibliográficos
Ano de defesa: 2024
Autor(a) principal: Pereira, Lucas Rafael Rodrigues lattes
Orientador(a): Durelli, Rafael Serapilha
Banca de defesa: Dias, Diego Roberto Colombo, Parreira Junior, Paulo Afonso, Oliveira, Johnatan Alves de
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Lavras
Programa de Pós-Graduação: Programa de Pós Graduação em Ciência da Computação
Departamento: Departamento de Ciência da Computação
País: brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://repositorio.ufla.br/handle/1/59329
Resumo: A pesquisa mostrou que a refatoração geralmente leva a uma maior capacidade de manutenção, resultando em um código mais legível e compreensível para os desenvolvedores. No entanto, ao aplicar métodos de refatoração para aumentar a qualidade do software, os desenvolvedores enfrentam desafios na identificação de métodos de refatoração eficazes. Acontece que encontrar oportunidades de refatoração é uma tarefa desafiadora. Um problema notável é a ausência de diretrizes específicas e práticas para determinar o método de refatoração apropriado para um determinado trecho de código. Consequentemente, já que as decisões sobre quando refatorar geralmente são baseadas em conceitos subjetivos, como codesmells, desenvolvedores menos experientes frequentemente contam com a orientação de desenvolvedores seniores para determinar quando o software precisa passar por refatoração. Pesquisas anteriores mostraram que algoritmos de aprendizado de máquina podem ser usados para ajudar os desenvolvedores a identificar oportunidades de refatoração. Com os recentes avanços em hardware, algoritmos de aprendizado profundo têm atraído cada vez mais atenção. Nessa pesquisa, pretendemos avaliar a eficácia de alguns modelos de Deep Learning (CNN, RNN, LSTM e DenseLayer) na previsão de oportunidades de refatoração, em comparação com modelos tradicionais de aprendizado de máquina. Especificamente, avaliamos esses modelos usando métricas padrão, como precisão, recall e exatidão. Nossas descobertas parecem sugerir que, embora os modelos de aprendizado de máquina geralmente superem os modelos de aprendizado profundo, os últimos apresentam desempenho superior aos primeiros quando treinados em conjuntos de dados não balanceados.
id UFLA_326b0bc4b128cc5a071beb19f6a01d57
oai_identifier_str oai:repositorio.ufla.br:1/59329
network_acronym_str UFLA
network_name_str Repositório Institucional da UFLA
repository_id_str
spelling 2024-09-04T18:47:12Z2024-09-042024-09-04T18:47:12Z2024-09-042024-04-17PEREIRA, Lucas Rafael Rodrigues. Uma abordagem de deep-learning para realizar a predição de refatorações. 2024. 42p. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Lavras, 2024.https://repositorio.ufla.br/handle/1/59329A pesquisa mostrou que a refatoração geralmente leva a uma maior capacidade de manutenção, resultando em um código mais legível e compreensível para os desenvolvedores. No entanto, ao aplicar métodos de refatoração para aumentar a qualidade do software, os desenvolvedores enfrentam desafios na identificação de métodos de refatoração eficazes. Acontece que encontrar oportunidades de refatoração é uma tarefa desafiadora. Um problema notável é a ausência de diretrizes específicas e práticas para determinar o método de refatoração apropriado para um determinado trecho de código. Consequentemente, já que as decisões sobre quando refatorar geralmente são baseadas em conceitos subjetivos, como codesmells, desenvolvedores menos experientes frequentemente contam com a orientação de desenvolvedores seniores para determinar quando o software precisa passar por refatoração. Pesquisas anteriores mostraram que algoritmos de aprendizado de máquina podem ser usados para ajudar os desenvolvedores a identificar oportunidades de refatoração. Com os recentes avanços em hardware, algoritmos de aprendizado profundo têm atraído cada vez mais atenção. Nessa pesquisa, pretendemos avaliar a eficácia de alguns modelos de Deep Learning (CNN, RNN, LSTM e DenseLayer) na previsão de oportunidades de refatoração, em comparação com modelos tradicionais de aprendizado de máquina. Especificamente, avaliamos esses modelos usando métricas padrão, como precisão, recall e exatidão. Nossas descobertas parecem sugerir que, embora os modelos de aprendizado de máquina geralmente superem os modelos de aprendizado profundo, os últimos apresentam desempenho superior aos primeiros quando treinados em conjuntos de dados não balanceados.Research has shown that refactoring often leads to greater maintainability, resulting in more readable and understandable code for developers. However, when applying refactoring methods to increase software quality, Developers face challenges in identifying effective refactoring methods. It turns out that finding refactoring opportunities is a challenging task. One notable problem is the absence of specific, practical guidelines for determining the appropriate refactoring method for a given piece of code. Consequently, since decisions about when to refactor are often based on subjective concepts such as codesmells, Less experienced developers often rely on guidance from senior developers to determine when software needs to undergo refactoring. Previous research has shown that machine learning algorithms can be used to help developers identify refactoring opportunities. With recent advances in hardware, Deep learning algorithms have attracted more and more attention. In this research, we intend to evaluate the effectiveness of some Deep Learning models (CNN, RNN, LSTM and DenseLayer) in predicting refactoring opportunities, compared to traditional machine learning models. Specifically, We evaluate these models using standard metrics such as precision, recall, and accuracy. Our findings seem to suggest that although machine learning models generally outperform deep learning models, the latter perform better than the former when trained on unbalanced datasets.TecnológicoTecnologia e produçãoODS 8: Trabalho decente e crescimento econômicoODS 9: Indústria, inovação e infraestruturaODS 12: Consumo e produção responsáveisUniversidade Federal de LavrasPrograma de Pós Graduação em Ciência da ComputaçãoUFLAbrasilDepartamento de Ciência da ComputaçãoAttribution 4.0 Internationalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccessCiência da ComputaçãoDeep LearningRefatoração de códigoMachine LearningQualidade de softwarePredição de refatoraçãoMineração de dadosCode RefactoringMachine LearningSoftware QualityRefactoring PredictionData MiningUma abordagem de deep-learning para realizar a predição de refatoraçõesRealizing refactoring prediction through deep-learninginfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisDurelli, Rafael SerapilhaPereira, DilsonDias, Diego Roberto ColomboParreira Junior, Paulo AfonsoOliveira, Johnatan Alves dehttp://lattes.cnpq.br/6502664083187109Pereira, Lucas Rafael Rodriguesporreponame:Repositório Institucional da UFLAinstname:Universidade Federal de Lavras (UFLA)instacron:UFLAORIGINALTESE_Uma abordagem de deep-learning para realizar a predição de refatorações.pdfTESE_Uma abordagem de deep-learning para realizar a predição de refatorações.pdfapplication/pdf1103911https://repositorio.ufla.br/bitstreams/afa59f31-32cb-49cf-b767-e58aab2ca033/downloadf30c4a6078f7d460ccfaeeeb957ae0f9MD51trueAnonymousREADIMPACTOS DA PESQUISA_Uma abordagem de deep-learning para realizar a predição de refatorações.pdfIMPACTOS DA PESQUISA_Uma abordagem de deep-learning para realizar a predição de refatorações.pdfapplication/pdf120970https://repositorio.ufla.br/bitstreams/afb8adea-5d37-4a1e-b820-21e135c51262/download30987b0077f801d930e76378699ed838MD52falseAnonymousREADCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8907https://repositorio.ufla.br/bitstreams/c59052f2-79ff-4d2a-99b0-135a02a141d2/downloadc07b6daef3dbee864bf87e6aa836cde2MD53falseAnonymousREADLICENSElicense.txtlicense.txttext/plain; charset=utf-8956https://repositorio.ufla.br/bitstreams/81d98555-9fb8-4c5a-a062-5ac5c8bc7f31/download5ea4a165b7202cbf475be400d2e16893MD54falseAnonymousREADTEXTTESE_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.txtTESE_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.txtExtracted texttext/plain76546https://repositorio.ufla.br/bitstreams/34c88a86-ba5d-4277-8e40-381fbdacd96c/download5fed570e7e1df7ea046aa9a7991f345fMD55falseAnonymousREADIMPACTOS DA PESQUISA_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.txtIMPACTOS DA PESQUISA_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.txtExtracted texttext/plain3597https://repositorio.ufla.br/bitstreams/71377e19-c906-4d76-9339-9937bfcc2a21/download2176925589d050fc6ae7495ea9a7ff69MD57falseAnonymousREADTHUMBNAILTESE_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.jpgTESE_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.jpgGenerated Thumbnailimage/jpeg3062https://repositorio.ufla.br/bitstreams/cff65ff4-6d73-4a56-bede-8aa02935ea45/downloadbdf880048f818b70aacb11a265741d1aMD56falseAnonymousREADIMPACTOS DA PESQUISA_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.jpgIMPACTOS DA PESQUISA_Uma abordagem de deep-learning para realizar a predição de refatorações.pdf.jpgGenerated Thumbnailimage/jpeg5015https://repositorio.ufla.br/bitstreams/cdfeb285-db15-42a0-8d0f-5bbc30144093/download6449a191ae4298991d50dc6bc6e902e7MD58falseAnonymousREAD1/593292025-10-16 13:03:14.836http://creativecommons.org/licenses/by/4.0/Attribution 4.0 Internationalopen.accessoai:repositorio.ufla.br:1/59329https://repositorio.ufla.brRepositório InstitucionalPUBhttps://repositorio.ufla.br/server/oai/requestnivaldo@ufla.br || repositorio.biblioteca@ufla.bropendoar:2025-10-16T16:03:14Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)falseREVDTEFSQcOHw4NPIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCk8gcmVmZXJpZG8gYXV0b3I6CgphKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBzZXUgdHJhYmFsaG8gb3JpZ2luYWwsIGUgcXVlIGRldMOpbSBvIGRpcmVpdG8gZGUgY29uY2VkZXIgb3MgZGlyZWl0b3MgY29udGlkb3MgbmVzdGEgbGljZW7Dp2EuIERlY2xhcmEgdGFtYsOpbSBxdWUgYSBlbnRyZWdhIGRvIGRvY3VtZW50byBuw6NvIGluZnJpbmdlLCB0YW50byBxdWFudG8gbGhlIMOpIHBvc3PDrXZlbCBzYWJlciwgb3MgZGlyZWl0b3MgZGUgcXVhbHF1ZXIgb3V0cmEgcGVzc29hIG91ICBlbnRpZGFkZS4KCmIpIFNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCBuw6NvIGRldMOpbSBvcyBkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGF1dG9yaXphw6fDo28gZG8gZGV0ZW50b3IgZG9zIGRpcmVpdG9zIGRlIGF1dG9yIHBhcmEgY29uY2VkZXIgw6AgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgTGF2cmFzIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MgZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbwpubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLiBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBiYXNlYWRvIGVtIHRyYWJhbGhvIGZpbmFuY2lhZG8gb3UgYXBvaWFkbyBwb3Igb3V0cmEgaW5zdGl0dWnDp8OjbyBxdWUgbsOjbyBhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIExhdnJhcywgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIgb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgo=
dc.title.pt_BR.fl_str_mv Uma abordagem de deep-learning para realizar a predição de refatorações
dc.title.alternative.pt_BR.fl_str_mv Realizing refactoring prediction through deep-learning
title Uma abordagem de deep-learning para realizar a predição de refatorações
spellingShingle Uma abordagem de deep-learning para realizar a predição de refatorações
Pereira, Lucas Rafael Rodrigues
Ciência da Computação
Deep Learning
Refatoração de código
Machine Learning
Qualidade de software
Predição de refatoração
Mineração de dados
Code Refactoring
Machine Learning
Software Quality
Refactoring Prediction
Data Mining
title_short Uma abordagem de deep-learning para realizar a predição de refatorações
title_full Uma abordagem de deep-learning para realizar a predição de refatorações
title_fullStr Uma abordagem de deep-learning para realizar a predição de refatorações
title_full_unstemmed Uma abordagem de deep-learning para realizar a predição de refatorações
title_sort Uma abordagem de deep-learning para realizar a predição de refatorações
author Pereira, Lucas Rafael Rodrigues
author_facet Pereira, Lucas Rafael Rodrigues
author_role author
dc.contributor.advisor1.fl_str_mv Durelli, Rafael Serapilha
dc.contributor.advisor-co1.fl_str_mv Pereira, Dilson
dc.contributor.referee1.fl_str_mv Dias, Diego Roberto Colombo
dc.contributor.referee2.fl_str_mv Parreira Junior, Paulo Afonso
dc.contributor.referee3.fl_str_mv Oliveira, Johnatan Alves de
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/6502664083187109
dc.contributor.author.fl_str_mv Pereira, Lucas Rafael Rodrigues
contributor_str_mv Durelli, Rafael Serapilha
Pereira, Dilson
Dias, Diego Roberto Colombo
Parreira Junior, Paulo Afonso
Oliveira, Johnatan Alves de
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
Deep Learning
Refatoração de código
Machine Learning
Qualidade de software
Predição de refatoração
Mineração de dados
Code Refactoring
Machine Learning
Software Quality
Refactoring Prediction
Data Mining
dc.subject.por.fl_str_mv Deep Learning
Refatoração de código
Machine Learning
Qualidade de software
Predição de refatoração
Mineração de dados
Code Refactoring
Machine Learning
Software Quality
Refactoring Prediction
Data Mining
description A pesquisa mostrou que a refatoração geralmente leva a uma maior capacidade de manutenção, resultando em um código mais legível e compreensível para os desenvolvedores. No entanto, ao aplicar métodos de refatoração para aumentar a qualidade do software, os desenvolvedores enfrentam desafios na identificação de métodos de refatoração eficazes. Acontece que encontrar oportunidades de refatoração é uma tarefa desafiadora. Um problema notável é a ausência de diretrizes específicas e práticas para determinar o método de refatoração apropriado para um determinado trecho de código. Consequentemente, já que as decisões sobre quando refatorar geralmente são baseadas em conceitos subjetivos, como codesmells, desenvolvedores menos experientes frequentemente contam com a orientação de desenvolvedores seniores para determinar quando o software precisa passar por refatoração. Pesquisas anteriores mostraram que algoritmos de aprendizado de máquina podem ser usados para ajudar os desenvolvedores a identificar oportunidades de refatoração. Com os recentes avanços em hardware, algoritmos de aprendizado profundo têm atraído cada vez mais atenção. Nessa pesquisa, pretendemos avaliar a eficácia de alguns modelos de Deep Learning (CNN, RNN, LSTM e DenseLayer) na previsão de oportunidades de refatoração, em comparação com modelos tradicionais de aprendizado de máquina. Especificamente, avaliamos esses modelos usando métricas padrão, como precisão, recall e exatidão. Nossas descobertas parecem sugerir que, embora os modelos de aprendizado de máquina geralmente superem os modelos de aprendizado profundo, os últimos apresentam desempenho superior aos primeiros quando treinados em conjuntos de dados não balanceados.
publishDate 2024
dc.date.submitted.none.fl_str_mv 2024-04-17
dc.date.accessioned.fl_str_mv 2024-09-04T18:47:12Z
dc.date.available.fl_str_mv 2024-09-04
2024-09-04T18:47:12Z
dc.date.issued.fl_str_mv 2024-09-04
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.citation.fl_str_mv PEREIRA, Lucas Rafael Rodrigues. Uma abordagem de deep-learning para realizar a predição de refatorações. 2024. 42p. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Lavras, 2024.
dc.identifier.uri.fl_str_mv https://repositorio.ufla.br/handle/1/59329
identifier_str_mv PEREIRA, Lucas Rafael Rodrigues. Uma abordagem de deep-learning para realizar a predição de refatorações. 2024. 42p. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Lavras, 2024.
url https://repositorio.ufla.br/handle/1/59329
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Attribution 4.0 International
http://creativecommons.org/licenses/by/4.0/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution 4.0 International
http://creativecommons.org/licenses/by/4.0/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Lavras
dc.publisher.program.fl_str_mv Programa de Pós Graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv UFLA
dc.publisher.country.fl_str_mv brasil
dc.publisher.department.fl_str_mv Departamento de Ciência da Computação
publisher.none.fl_str_mv Universidade Federal de Lavras
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFLA
instname:Universidade Federal de Lavras (UFLA)
instacron:UFLA
instname_str Universidade Federal de Lavras (UFLA)
instacron_str UFLA
institution UFLA
reponame_str Repositório Institucional da UFLA
collection Repositório Institucional da UFLA
bitstream.url.fl_str_mv https://repositorio.ufla.br/bitstreams/afa59f31-32cb-49cf-b767-e58aab2ca033/download
https://repositorio.ufla.br/bitstreams/afb8adea-5d37-4a1e-b820-21e135c51262/download
https://repositorio.ufla.br/bitstreams/c59052f2-79ff-4d2a-99b0-135a02a141d2/download
https://repositorio.ufla.br/bitstreams/81d98555-9fb8-4c5a-a062-5ac5c8bc7f31/download
https://repositorio.ufla.br/bitstreams/34c88a86-ba5d-4277-8e40-381fbdacd96c/download
https://repositorio.ufla.br/bitstreams/71377e19-c906-4d76-9339-9937bfcc2a21/download
https://repositorio.ufla.br/bitstreams/cff65ff4-6d73-4a56-bede-8aa02935ea45/download
https://repositorio.ufla.br/bitstreams/cdfeb285-db15-42a0-8d0f-5bbc30144093/download
bitstream.checksum.fl_str_mv f30c4a6078f7d460ccfaeeeb957ae0f9
30987b0077f801d930e76378699ed838
c07b6daef3dbee864bf87e6aa836cde2
5ea4a165b7202cbf475be400d2e16893
5fed570e7e1df7ea046aa9a7991f345f
2176925589d050fc6ae7495ea9a7ff69
bdf880048f818b70aacb11a265741d1a
6449a191ae4298991d50dc6bc6e902e7
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)
repository.mail.fl_str_mv nivaldo@ufla.br || repositorio.biblioteca@ufla.br
_version_ 1854947726997848064