Empirically supported similarity coefficients for the identification of refactoring opportunities

Detalhes bibliográficos
Ano de defesa: 2018
Autor(a) principal: Pinto, Arthur Ferreira lattes
Orientador(a): Villela, Ricardo Terra Nunes Bueno
Banca de defesa: Valente, Marco Túlio de Oliveira, Resende, Antônio Maria Pereira de
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: eng
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/29596
Resumo: Refatoração de código é definido como o processo de alteração de um sistema de software, preservando seu comportamento externo, mas melhorando sua estrutura interna. Por meio da refatoração, torna-se possível tratar os sintomas da arquitetura de código, conhecidos como Code Smells, que podem afetar características como portabilidade, reusabilidade, manutenibilidade e escalabilidade. Várias técnicas para identificar oportunidades de refatoração usam coeficientes de similaridade para encontrar entidades mal posicionadas na arquitetura do sistema, assim como determinar onde deveria estar localizada. Como exemplo, espera-se que um método esteja localizado em uma classe cujos outros métodos sejam estruturalmente semelhantes a ele. No entanto, os coeficientes existentes na literatura não foram projetados para a análise estrutural de sistemas de software, o que pode não garantir uma precisão satisfatória. Portanto, esta dissertação de mestrado propõe três novos coeficientes – PT MC, PT MM e PT EM – para melhorar a precisão da identificação de oportunidades de refatoração para as operações de Move Class, Move Method e Extract Method, respectivamente. Os principais objetivos são: (i) propor coeficientes de similaridade mais efetivos para sistemas orientados a objetos, para localizar com mais precisão entidades mal posicionadas em uma arquitetura de sistema e (ii) alavancar a precisão de ferramentas para identificação de oportunidades de refatoração baseadas na similaridade estrutural por meio da aplicação dos coeficientes propostos. Primeiramente, foi investigada a precisão de 18 coeficientes de similaridade em 10 sistemas da base Qualitas.class Corpus (training set) e, com base nos resultados, foi selecionado o coeficiente mais adequado para ser adaptado. Em seguida, foi adaptado o coeficiente selecionado por meio de um experimento empírico composto de uma combinação de tratamentos com replicação sobre algoritmos genéticos para gerar os coeficientes propostos. Por fim, foi implementada AIRP, uma ferramenta que implementa os coeficientes propostos para identificar oportunidades de refatoração. Para avaliar os coeficientes propostos, foram comparados tais coeficientes com outros 18 coeficientes em outros 101 sistemas da base Qualitas.class Corpus (test set). Os resultados indicam, em relação ao melhor coeficiente analisado, uma melhora estatística de 5,23% a 6,81% para a identificação de oportunidades de refatoração Move Class, 12,33% a 14,79% para Move Method e 0,25 % a 0,40% para Extract Method.
id UFLA_8ebecacf5267937bb7b0c62ce43c3ef1
oai_identifier_str oai:repositorio.ufla.br:1/29596
network_acronym_str UFLA
network_name_str Repositório Institucional da UFLA
repository_id_str
spelling 2018-07-11T11:53:02Z2018-07-11T11:53:02Z2018-07-102018-05-07PINTO, A. F. Empirically supported similarity coefficients for the identification of refactoring opportunities. 2018. 75 p. Dissertação (Mestrado em Ciência da Computação)-Universidade Federal de Lavras, Lavras, 2018.https://repositorio.ufla.br/handle/1/29596Refatoração de código é definido como o processo de alteração de um sistema de software, preservando seu comportamento externo, mas melhorando sua estrutura interna. Por meio da refatoração, torna-se possível tratar os sintomas da arquitetura de código, conhecidos como Code Smells, que podem afetar características como portabilidade, reusabilidade, manutenibilidade e escalabilidade. Várias técnicas para identificar oportunidades de refatoração usam coeficientes de similaridade para encontrar entidades mal posicionadas na arquitetura do sistema, assim como determinar onde deveria estar localizada. Como exemplo, espera-se que um método esteja localizado em uma classe cujos outros métodos sejam estruturalmente semelhantes a ele. No entanto, os coeficientes existentes na literatura não foram projetados para a análise estrutural de sistemas de software, o que pode não garantir uma precisão satisfatória. Portanto, esta dissertação de mestrado propõe três novos coeficientes – PT MC, PT MM e PT EM – para melhorar a precisão da identificação de oportunidades de refatoração para as operações de Move Class, Move Method e Extract Method, respectivamente. Os principais objetivos são: (i) propor coeficientes de similaridade mais efetivos para sistemas orientados a objetos, para localizar com mais precisão entidades mal posicionadas em uma arquitetura de sistema e (ii) alavancar a precisão de ferramentas para identificação de oportunidades de refatoração baseadas na similaridade estrutural por meio da aplicação dos coeficientes propostos. Primeiramente, foi investigada a precisão de 18 coeficientes de similaridade em 10 sistemas da base Qualitas.class Corpus (training set) e, com base nos resultados, foi selecionado o coeficiente mais adequado para ser adaptado. Em seguida, foi adaptado o coeficiente selecionado por meio de um experimento empírico composto de uma combinação de tratamentos com replicação sobre algoritmos genéticos para gerar os coeficientes propostos. Por fim, foi implementada AIRP, uma ferramenta que implementa os coeficientes propostos para identificar oportunidades de refatoração. Para avaliar os coeficientes propostos, foram comparados tais coeficientes com outros 18 coeficientes em outros 101 sistemas da base Qualitas.class Corpus (test set). Os resultados indicam, em relação ao melhor coeficiente analisado, uma melhora estatística de 5,23% a 6,81% para a identificação de oportunidades de refatoração Move Class, 12,33% a 14,79% para Move Method e 0,25 % a 0,40% para Extract Method.Code refactoring is defined as the process of changing a software system preserving the external behavior of the code, but improving its internal structure. Through refactoring, it becomes possible to treat code architecture symptoms, known as Code Smells, which can affect features such as portability, reusability, maintainability, and scalability. Several techniques to identify refactoring opportunities rely on similarity coefficients to find misplaced entities on the system architecture, as well as to determine where it should be located. As an example, we expect that a method is located in a class whose other methods are structurally similar to it. However, the existing coefficients in literature have not been designed for the structural analysis of software systems, which may not guarantee satisfactory precision. This master dissertation, therefore, proposes three new coefficients—PT MC, PT MM, and PT EM—to improve the precision of the identification of Move Class, Move Method, and Extract Method refactoring opportunities, respectively. Our main objectives are: (i) to propose more effective similarity coefficients for object-oriented systems, in order to locate more accurately entities improperly positioned on a system architecture and (ii) to leverage the precision of tools for identification of refactoring opportunities based on structural similarity through the application of the proposed coefficients. Firstly, we investigated the precision of 18 similarity coefficients in 10 systems of Qualitas.class Corpus (training set) to select the most appropriate coefficient to be adapted. Then, we adapted the selected coefficient through an empirical experiment based on a treatment combination with replication over genetic algorithms in order to generate the proposed coefficients. Finally, we implemented AIRP, a tool that relies on the proposed coefficients to identify refactoring opportunities. In order to evaluate the proposed coefficients, we compared them with other 18 coefficients in other 101 systems of Qualitas.class Corpus (test set). The results indicate, in relation to the best analyzed coefficient, a statistical improvement from 5.23% to 6.81% for the identification of Move Class refactoring opportunities, 12.33% to 14.79% for Move Method, and 0.25% to 0.40% for Extract Method.Universidade Federal de LavrasPrograma de Pós-Graduação em Ciência da ComputaçãoUFLAbrasilDepartamento de Ciência da ComputaçãoCiência da ComputaçãoArquitetura de softwareSimilaridade estruturalRefatoração de códigoMove classMove methodExtract methodSoftware architectureStructural similarityCode refactoringEmpirically supported similarity coefficients for the identification of refactoring opportunitiesCoeficientes de similaridade para a identificação de oportunidades de refatoração empiricamente com base empíricainfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisVillela, Ricardo Terra Nunes BuenoValente, Marco Túlio de OliveiraResende, Antônio Maria Pereira dehttp://lattes.cnpq.br/7485642558511803259Pinto, Arthur Ferreirainfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFLAinstname:Universidade Federal de Lavras (UFLA)instacron:UFLAORIGINALDISSERTAÇÃO_Empirically supported similarity coefficients for the identification of refactoring opportunities.pdfDISSERTAÇÃO_Empirically supported similarity coefficients for the identification of refactoring opportunities.pdfapplication/pdf1916958https://repositorio.ufla.br/bitstreams/40fe767b-fb7c-4a91-a814-1909a577a11f/downloadda958c237af46fdba65113473bfaef9cMD51trueAnonymousREADLICENSElicense.txtlicense.txttext/plain; charset=utf-8953https://repositorio.ufla.br/bitstreams/1db43892-f616-45da-b8ee-2a38a103b846/download760884c1e72224de569e74f79eb87ce3MD52falseAnonymousREADTEXTDISSERTAÇÃO_Empirically supported similarity coefficients for the identification of refactoring opportunities.pdf.txtDISSERTAÇÃO_Empirically supported similarity coefficients for the identification of refactoring opportunities.pdf.txtExtracted texttext/plain100624https://repositorio.ufla.br/bitstreams/e2fa6d67-7244-49ae-a89f-9b31849cc25a/download30342c18a269d4d591b5c731980625a0MD53falseAnonymousREADTHUMBNAILDISSERTAÇÃO_Empirically supported similarity coefficients for the identification of refactoring opportunities.pdf.jpgDISSERTAÇÃO_Empirically supported similarity coefficients for the identification of refactoring opportunities.pdf.jpgGenerated Thumbnailimage/jpeg3237https://repositorio.ufla.br/bitstreams/95e60497-918c-4453-be15-d72498494708/download3ae3d2f7bbc37d81961bf2291ad0cf35MD54falseAnonymousREAD1/295962025-08-13 17:05:52.484open.accessoai:repositorio.ufla.br:1/29596https://repositorio.ufla.brRepositório InstitucionalPUBhttps://repositorio.ufla.br/server/oai/requestnivaldo@ufla.br || repositorio.biblioteca@ufla.bropendoar:2025-08-13T20:05:52Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)falseREVDTEFSQcOHw4NPIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCk8gcmVmZXJpZG8gYXV0b3I6CmEpIERlY2xhcmEgcXVlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIMOpIHNldSB0cmFiYWxobyBvcmlnaW5hbCwgZSBxdWUKZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4KRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2UsIHRhbnRvIHF1YW50bwpsaGUgw6kgcG9zc8OtdmVsIHNhYmVyLCBvcyBkaXJlaXRvcyBkZSBxdWFscXVlciBvdXRyYSBwZXNzb2Egb3UKZW50aWRhZGUuCmIpIFNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCBuw6NvIGRldMOpbSBvcwpkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGF1dG9yaXphw6fDo28gZG8gZGV0ZW50b3IgZG9zCmRpcmVpdG9zIGRlIGF1dG9yIHBhcmEgY29uY2VkZXIgw6AgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgTGF2cmFzIG9zCmRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MKZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbwpubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLiBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqQpiYXNlYWRvIGVtIHRyYWJhbGhvIGZpbmFuY2lhZG8gb3UgYXBvaWFkbyBwb3Igb3V0cmEgaW5zdGl0dWnDp8OjbyBxdWUKbsOjbyBhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIExhdnJhcywgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIKb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgo=
dc.title.pt_BR.fl_str_mv Empirically supported similarity coefficients for the identification of refactoring opportunities
dc.title.alternative.pt_BR.fl_str_mv Coeficientes de similaridade para a identificação de oportunidades de refatoração empiricamente com base empírica
title Empirically supported similarity coefficients for the identification of refactoring opportunities
spellingShingle Empirically supported similarity coefficients for the identification of refactoring opportunities
Pinto, Arthur Ferreira
Ciência da Computação
Arquitetura de software
Similaridade estrutural
Refatoração de código
Move class
Move method
Extract method
Software architecture
Structural similarity
Code refactoring
title_short Empirically supported similarity coefficients for the identification of refactoring opportunities
title_full Empirically supported similarity coefficients for the identification of refactoring opportunities
title_fullStr Empirically supported similarity coefficients for the identification of refactoring opportunities
title_full_unstemmed Empirically supported similarity coefficients for the identification of refactoring opportunities
title_sort Empirically supported similarity coefficients for the identification of refactoring opportunities
author Pinto, Arthur Ferreira
author_facet Pinto, Arthur Ferreira
author_role author
dc.contributor.advisor1.fl_str_mv Villela, Ricardo Terra Nunes Bueno
dc.contributor.referee1.fl_str_mv Valente, Marco Túlio de Oliveira
dc.contributor.referee2.fl_str_mv Resende, Antônio Maria Pereira de
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/7485642558511803259
dc.contributor.author.fl_str_mv Pinto, Arthur Ferreira
contributor_str_mv Villela, Ricardo Terra Nunes Bueno
Valente, Marco Túlio de Oliveira
Resende, Antônio Maria Pereira de
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
Arquitetura de software
Similaridade estrutural
Refatoração de código
Move class
Move method
Extract method
Software architecture
Structural similarity
Code refactoring
dc.subject.por.fl_str_mv Arquitetura de software
Similaridade estrutural
Refatoração de código
Move class
Move method
Extract method
Software architecture
Structural similarity
Code refactoring
description Refatoração de código é definido como o processo de alteração de um sistema de software, preservando seu comportamento externo, mas melhorando sua estrutura interna. Por meio da refatoração, torna-se possível tratar os sintomas da arquitetura de código, conhecidos como Code Smells, que podem afetar características como portabilidade, reusabilidade, manutenibilidade e escalabilidade. Várias técnicas para identificar oportunidades de refatoração usam coeficientes de similaridade para encontrar entidades mal posicionadas na arquitetura do sistema, assim como determinar onde deveria estar localizada. Como exemplo, espera-se que um método esteja localizado em uma classe cujos outros métodos sejam estruturalmente semelhantes a ele. No entanto, os coeficientes existentes na literatura não foram projetados para a análise estrutural de sistemas de software, o que pode não garantir uma precisão satisfatória. Portanto, esta dissertação de mestrado propõe três novos coeficientes – PT MC, PT MM e PT EM – para melhorar a precisão da identificação de oportunidades de refatoração para as operações de Move Class, Move Method e Extract Method, respectivamente. Os principais objetivos são: (i) propor coeficientes de similaridade mais efetivos para sistemas orientados a objetos, para localizar com mais precisão entidades mal posicionadas em uma arquitetura de sistema e (ii) alavancar a precisão de ferramentas para identificação de oportunidades de refatoração baseadas na similaridade estrutural por meio da aplicação dos coeficientes propostos. Primeiramente, foi investigada a precisão de 18 coeficientes de similaridade em 10 sistemas da base Qualitas.class Corpus (training set) e, com base nos resultados, foi selecionado o coeficiente mais adequado para ser adaptado. Em seguida, foi adaptado o coeficiente selecionado por meio de um experimento empírico composto de uma combinação de tratamentos com replicação sobre algoritmos genéticos para gerar os coeficientes propostos. Por fim, foi implementada AIRP, uma ferramenta que implementa os coeficientes propostos para identificar oportunidades de refatoração. Para avaliar os coeficientes propostos, foram comparados tais coeficientes com outros 18 coeficientes em outros 101 sistemas da base Qualitas.class Corpus (test set). Os resultados indicam, em relação ao melhor coeficiente analisado, uma melhora estatística de 5,23% a 6,81% para a identificação de oportunidades de refatoração Move Class, 12,33% a 14,79% para Move Method e 0,25 % a 0,40% para Extract Method.
publishDate 2018
dc.date.submitted.none.fl_str_mv 2018-05-07
dc.date.accessioned.fl_str_mv 2018-07-11T11:53:02Z
dc.date.available.fl_str_mv 2018-07-11T11:53:02Z
dc.date.issued.fl_str_mv 2018-07-10
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 PINTO, A. F. Empirically supported similarity coefficients for the identification of refactoring opportunities. 2018. 75 p. Dissertação (Mestrado em Ciência da Computação)-Universidade Federal de Lavras, Lavras, 2018.
dc.identifier.uri.fl_str_mv https://repositorio.ufla.br/handle/1/29596
identifier_str_mv PINTO, A. F. Empirically supported similarity coefficients for the identification of refactoring opportunities. 2018. 75 p. Dissertação (Mestrado em Ciência da Computação)-Universidade Federal de Lavras, Lavras, 2018.
url https://repositorio.ufla.br/handle/1/29596
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
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/40fe767b-fb7c-4a91-a814-1909a577a11f/download
https://repositorio.ufla.br/bitstreams/1db43892-f616-45da-b8ee-2a38a103b846/download
https://repositorio.ufla.br/bitstreams/e2fa6d67-7244-49ae-a89f-9b31849cc25a/download
https://repositorio.ufla.br/bitstreams/95e60497-918c-4453-be15-d72498494708/download
bitstream.checksum.fl_str_mv da958c237af46fdba65113473bfaef9c
760884c1e72224de569e74f79eb87ce3
30342c18a269d4d591b5c731980625a0
3ae3d2f7bbc37d81961bf2291ad0cf35
bitstream.checksumAlgorithm.fl_str_mv 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_ 1854947828616396800