Uma abordagem de deep-learning para realizar a predição de refatorações
| Ano de defesa: | 2024 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | , , |
| 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 |