Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFU |
Texto Completo: | https://repositorio.ufu.br/handle/123456789/24948 http://dx.doi.org/10.14393/ufu.te.2019.1231 |
Resumo: | Bad smells descrevem possíveis problemas no código, apontando potenciais oportunidades de refatoração. Diversos estudos empíricos evidenciaram que os bad smells têm um negativo impacto na compreensão e manutenção dos projetos de software. Consequentemente, a identificação de bad smells recebeu atenção de pesquisadores que propuseram várias abordagens de detecção e reestruturação. Contudo, a inter-relação da ocorrência no código dos diferentes tipos de bad smells ainda é carente de estudos, especialmente, aqueles focados na quantificação desta inter-relação. Assim, este trabalho descreve e apresenta um estudo empírico sobre a inter-relação dos bad smells: Large Class, Complex Class e Duplicate Code. Como um dos principais resultados da inter-relação, destacamos que existem "padrões de ocorrência" entre estes smells, por exemplo: na co-ocorrência dos smells Large Class e Complex Class, os clones são predominantemente intra-classe. Também apresentamos um estudo da cronologia de smells, que é caracterizada pelo rastreamento da ancestralidade de uma dada entidade que apresenta algum smell. Os resultados indicam que, após um certo período inicial de amadurecimento dos sistemas, a proporção de classes sem smell é maior do que a quantidade com algum smell. Além disso, ao longo do ciclo de vida dos sistemas, diversas classes são excluídas e/ou migram de repositórios. Isso tem impacto nas ferramentas que auxiliam os desenvolvedores, pois elas não consideram esse fenômeno. Além disso, também demonstramos uma métrica capaz de separar as classes em grupos ("Serão Removidas" e "Não serão removidas"). Por fim, apresentamos algumas situações de smells com comportamento cíclico e que, raramente, a simples ocorrência de um dado smell se torna uma co-ocorrência. Os resultados apresentados revelaram achados que complementam o estado da arte da literatura. Portanto, destacamos que os achados têm impacto na área de bad smells, em particular no desenvolvimento de uma nova geração de ferramentas verificadoras da qualidade do código fonte. |
id |
UFU_c096c4430a4745b25c4fb110fe2b3050 |
---|---|
oai_identifier_str |
oai:repositorio.ufu.br:123456789/24948 |
network_acronym_str |
UFU |
network_name_str |
Repositório Institucional da UFU |
repository_id_str |
|
spelling |
2019-04-25T13:55:07Z2019-04-25T13:55:07Z2019-03-25PAULO SOBRINHO, Elder Vicente de. Inter-relação entre smells - uma análise de large class, complex class e clone. 2019. 193 f. Tese (Doutorado em Ciência da Computação) – Universidade Federal de Uberlândia, Uberlândia, 2019. Disponível em: http://dx.doi.org/10.14393/ufu.te.2019.1231.https://repositorio.ufu.br/handle/123456789/24948http://dx.doi.org/10.14393/ufu.te.2019.1231Bad smells descrevem possíveis problemas no código, apontando potenciais oportunidades de refatoração. Diversos estudos empíricos evidenciaram que os bad smells têm um negativo impacto na compreensão e manutenção dos projetos de software. Consequentemente, a identificação de bad smells recebeu atenção de pesquisadores que propuseram várias abordagens de detecção e reestruturação. Contudo, a inter-relação da ocorrência no código dos diferentes tipos de bad smells ainda é carente de estudos, especialmente, aqueles focados na quantificação desta inter-relação. Assim, este trabalho descreve e apresenta um estudo empírico sobre a inter-relação dos bad smells: Large Class, Complex Class e Duplicate Code. Como um dos principais resultados da inter-relação, destacamos que existem "padrões de ocorrência" entre estes smells, por exemplo: na co-ocorrência dos smells Large Class e Complex Class, os clones são predominantemente intra-classe. Também apresentamos um estudo da cronologia de smells, que é caracterizada pelo rastreamento da ancestralidade de uma dada entidade que apresenta algum smell. Os resultados indicam que, após um certo período inicial de amadurecimento dos sistemas, a proporção de classes sem smell é maior do que a quantidade com algum smell. Além disso, ao longo do ciclo de vida dos sistemas, diversas classes são excluídas e/ou migram de repositórios. Isso tem impacto nas ferramentas que auxiliam os desenvolvedores, pois elas não consideram esse fenômeno. Além disso, também demonstramos uma métrica capaz de separar as classes em grupos ("Serão Removidas" e "Não serão removidas"). Por fim, apresentamos algumas situações de smells com comportamento cíclico e que, raramente, a simples ocorrência de um dado smell se torna uma co-ocorrência. Os resultados apresentados revelaram achados que complementam o estado da arte da literatura. Portanto, destacamos que os achados têm impacto na área de bad smells, em particular no desenvolvimento de uma nova geração de ferramentas verificadoras da qualidade do código fonte.Bad smells have been defined to describe potential problems in code, possibly pointing out refactoring opportunities. Several empirical studies have highlighted that bad smells have a negative impact on the comprehension and maintainability of a software systems. Consequently, their identification has received recently attention from researchers who have proposed various approaches to detect and restructure them. However, studies on the inter-relationship of occurrences in source code of different types of bad smells are still lacking, especially those focused on the quantification of this inter-relationship. Thus, in this work, we describe and present an empirical study on the inter-relation of smells Large Class, Complex Class and Duplicate Code. As one of the main results of the inter-relation, we highlight that there are "occurrence patterns" among these smells, for example: in the co-occurrence of Large Class and Complex Class, the clones are predominantly intra-class. Possibly, these patterns can be used to improve the performance of detection tools or even help in refactoring tasks. We also present a study of the chronology of smells, it is characterized by tracing the ancestry of a given entity that exhibits some smell. The results indicate that, after a certain initial period of the systems, the proportion of classes without smell is greater than the quantity with some smell. Furthermore, throughout the systems life cycle, several classes are deleted and/or they migrate from the repositories. This has an impact on the tools that help developers, because they do not consider this phenomenon. In addition, we also demonstrate a metric able to separating classes into groups ("Removed" and "Not Removed"). Finally, we present some situations that the smells have a cyclic behavior and rarely, the simple occurrence of smell becomes a co-occurrence. The results presented revealed findings that complement the state of the art in the literature. Therefore, the findings have an impact on the area of smells, in particular to the development of a new generation of tools.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível SuperiorTese (Doutorado)porUniversidade Federal de UberlândiaPrograma de Pós-graduação em Ciência da ComputaçãoBrasilCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWAREManutenção de SoftwareSoftware MaintenanceRe-engenharia de SoftwareSoftware ReengineeringBad SmellsComputaçãoEngenharia de softwareRefatoração de softwareSoftware - ManutençãoInter-relação entre smells - uma análise de Large Class, Complex Class e CloneInter-relationship between smells - an analysis of Large Class, Complex Class, and Cloneinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisMaia, Marcelo de Almeidahttp://lattes.cnpq.br/4915659948263445Sant'anna, Cláudio NogueiraJúnior, Edgard Afonso LamounierFigueiredo, Eduardo Magno LagesDorça, Fabiano Azevedohttp://lattes.cnpq.br/7328837329337522Paulo Sobrinho, Elder Vicente de195info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFUinstname:Universidade Federal de Uberlândia (UFU)instacron:UFUORIGINALInter-RelaçãoEntreSmells.pdfInter-RelaçãoEntreSmells.pdfTeseapplication/pdf11256145https://repositorio.ufu.br/bitstream/123456789/24948/1/Inter-Rela%c3%a7%c3%a3oEntreSmells.pdf73a3ac45c125d1f6a5acd0c5a726b604MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81792https://repositorio.ufu.br/bitstream/123456789/24948/2/license.txt48ded82ce41b8d2426af12aed6b3cbf3MD52TEXTInter-RelaçãoEntreSmells.pdf.txtInter-RelaçãoEntreSmells.pdf.txtExtracted texttext/plain504760https://repositorio.ufu.br/bitstream/123456789/24948/3/Inter-Rela%c3%a7%c3%a3oEntreSmells.pdf.txtce80dbe42d40a58fe8bfbb80542e5505MD53THUMBNAILInter-RelaçãoEntreSmells.pdf.jpgInter-RelaçãoEntreSmells.pdf.jpgGenerated Thumbnailimage/jpeg1345https://repositorio.ufu.br/bitstream/123456789/24948/4/Inter-Rela%c3%a7%c3%a3oEntreSmells.pdf.jpg637a9f86c92b71d82537512a1e30faabMD54123456789/249482019-04-26 03:05:48.781oai:repositorio.ufu.br:123456789/24948w4kgbmVjZXNzw6FyaW8gY29uY29yZGFyIGNvbSBhIGxpY2Vuw6dhIGRlIGRpc3RyaWJ1acOnw6NvIG7Do28tZXhjbHVzaXZhLCBhbnRlcyBxdWUgbyBkb2N1bWVudG8gcG9zc2EgYXBhcmVjZXIgbm8gUmVwb3NpdMOzcmlvLiBQb3IgZmF2b3IsIGxlaWEgYSBsaWNlbsOnYSBhdGVudGFtZW50ZS4gQ2FzbyBuZWNlc3NpdGUgZGUgYWxndW0gZXNjbGFyZWNpbWVudG8gZW50cmUgZW0gY29udGF0byBhdHJhdsOpcyBkbyBlLW1haWwgIHJlcG9zaXRvcmlvQHVmdS5ici4KCkxJQ0VOw4dBIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCgpBbyBhc3NpbmFyIGUgZW50cmVnYXIgZXN0YSBsaWNlbsOnYSwgby9hIFNyLi9TcmEuIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpOgoKYSkgQ29uY2VkZSDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBVYmVybMOibmRpYSBvIGRpcmVpdG8gbsOjby1leGNsdXNpdm8gZGUgcmVwcm9kdXppciwgY29udmVydGVyIChjb21vIGRlZmluaWRvIGFiYWl4byksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIgbyBkb2N1bWVudG8gZW50cmVndWUgKGluY2x1aW5kbyBvIHJlc3Vtby9hYnN0cmFjdCkgZW0gZm9ybWF0byBkaWdpdGFsIG91IGltcHJlc3NvIGUgZW0gcXVhbHF1ZXIgbWVpby4KCmIpIERlY2xhcmEgcXVlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIMOpIHNldSB0cmFiYWxobyBvcmlnaW5hbCwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2UsIHRhbnRvIHF1YW50byBsaGUgw6kgcG9zc8OtdmVsIHNhYmVyLCBvcyBkaXJlaXRvcyBkZSBxdWFscXVlciBvdXRyYSBwZXNzb2Egb3UgZW50aWRhZGUuCgpjKSBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSBjb250w6ltIG1hdGVyaWFsIGRvIHF1YWwgbsOjbyBkZXTDqW0gb3MgZGlyZWl0b3MgZGUgYXV0b3IsIGRlY2xhcmEgcXVlIG9idGV2ZSBhdXRvcml6YcOnw6NvIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBkZSBhdXRvciBwYXJhIGNvbmNlZGVyIMOgIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFViZXJsw6JuZGlhIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MgZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbyBubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLgoKU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBVYmVybMOibmRpYSwgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIgb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgpBIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFViZXJsw6JuZGlhIGlkZW50aWZpY2Fyw6EgY2xhcmFtZW50ZSBvKHMpIHNldShzKSBub21lKHMpIGNvbW8gbyhzKSBhdXRvcihlcykgb3UgZGV0ZW50b3IgKGVzKSBkb3MgZGlyZWl0b3MgZG8gZG9jdW1lbnRvIGVudHJlZ3VlLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZGFzIHBlcm1pdGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg==Repositório InstitucionalONGhttp://repositorio.ufu.br/oai/requestdiinf@dirbi.ufu.bropendoar:2019-04-26T06:05:48Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)false |
dc.title.pt_BR.fl_str_mv |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone |
dc.title.alternative.pt_BR.fl_str_mv |
Inter-relationship between smells - an analysis of Large Class, Complex Class, and Clone |
title |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone |
spellingShingle |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone Paulo Sobrinho, Elder Vicente de CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE Manutenção de Software Software Maintenance Re-engenharia de Software Software Reengineering Bad Smells Computação Engenharia de software Refatoração de software Software - Manutenção |
title_short |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone |
title_full |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone |
title_fullStr |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone |
title_full_unstemmed |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone |
title_sort |
Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone |
author |
Paulo Sobrinho, Elder Vicente de |
author_facet |
Paulo Sobrinho, Elder Vicente de |
author_role |
author |
dc.contributor.advisor1.fl_str_mv |
Maia, Marcelo de Almeida |
dc.contributor.advisor1Lattes.fl_str_mv |
http://lattes.cnpq.br/4915659948263445 |
dc.contributor.referee1.fl_str_mv |
Sant'anna, Cláudio Nogueira |
dc.contributor.referee2.fl_str_mv |
Júnior, Edgard Afonso Lamounier |
dc.contributor.referee3.fl_str_mv |
Figueiredo, Eduardo Magno Lages |
dc.contributor.referee4.fl_str_mv |
Dorça, Fabiano Azevedo |
dc.contributor.authorLattes.fl_str_mv |
http://lattes.cnpq.br/7328837329337522 |
dc.contributor.author.fl_str_mv |
Paulo Sobrinho, Elder Vicente de |
contributor_str_mv |
Maia, Marcelo de Almeida Sant'anna, Cláudio Nogueira Júnior, Edgard Afonso Lamounier Figueiredo, Eduardo Magno Lages Dorça, Fabiano Azevedo |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE Manutenção de Software Software Maintenance Re-engenharia de Software Software Reengineering Bad Smells Computação Engenharia de software Refatoração de software Software - Manutenção |
dc.subject.por.fl_str_mv |
Manutenção de Software Software Maintenance Re-engenharia de Software Software Reengineering Bad Smells Computação Engenharia de software Refatoração de software Software - Manutenção |
description |
Bad smells descrevem possíveis problemas no código, apontando potenciais oportunidades de refatoração. Diversos estudos empíricos evidenciaram que os bad smells têm um negativo impacto na compreensão e manutenção dos projetos de software. Consequentemente, a identificação de bad smells recebeu atenção de pesquisadores que propuseram várias abordagens de detecção e reestruturação. Contudo, a inter-relação da ocorrência no código dos diferentes tipos de bad smells ainda é carente de estudos, especialmente, aqueles focados na quantificação desta inter-relação. Assim, este trabalho descreve e apresenta um estudo empírico sobre a inter-relação dos bad smells: Large Class, Complex Class e Duplicate Code. Como um dos principais resultados da inter-relação, destacamos que existem "padrões de ocorrência" entre estes smells, por exemplo: na co-ocorrência dos smells Large Class e Complex Class, os clones são predominantemente intra-classe. Também apresentamos um estudo da cronologia de smells, que é caracterizada pelo rastreamento da ancestralidade de uma dada entidade que apresenta algum smell. Os resultados indicam que, após um certo período inicial de amadurecimento dos sistemas, a proporção de classes sem smell é maior do que a quantidade com algum smell. Além disso, ao longo do ciclo de vida dos sistemas, diversas classes são excluídas e/ou migram de repositórios. Isso tem impacto nas ferramentas que auxiliam os desenvolvedores, pois elas não consideram esse fenômeno. Além disso, também demonstramos uma métrica capaz de separar as classes em grupos ("Serão Removidas" e "Não serão removidas"). Por fim, apresentamos algumas situações de smells com comportamento cíclico e que, raramente, a simples ocorrência de um dado smell se torna uma co-ocorrência. Os resultados apresentados revelaram achados que complementam o estado da arte da literatura. Portanto, destacamos que os achados têm impacto na área de bad smells, em particular no desenvolvimento de uma nova geração de ferramentas verificadoras da qualidade do código fonte. |
publishDate |
2019 |
dc.date.accessioned.fl_str_mv |
2019-04-25T13:55:07Z |
dc.date.available.fl_str_mv |
2019-04-25T13:55:07Z |
dc.date.issued.fl_str_mv |
2019-03-25 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
PAULO SOBRINHO, Elder Vicente de. Inter-relação entre smells - uma análise de large class, complex class e clone. 2019. 193 f. Tese (Doutorado em Ciência da Computação) – Universidade Federal de Uberlândia, Uberlândia, 2019. Disponível em: http://dx.doi.org/10.14393/ufu.te.2019.1231. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufu.br/handle/123456789/24948 |
dc.identifier.doi.pt_BR.fl_str_mv |
http://dx.doi.org/10.14393/ufu.te.2019.1231 |
identifier_str_mv |
PAULO SOBRINHO, Elder Vicente de. Inter-relação entre smells - uma análise de large class, complex class e clone. 2019. 193 f. Tese (Doutorado em Ciência da Computação) – Universidade Federal de Uberlândia, Uberlândia, 2019. Disponível em: http://dx.doi.org/10.14393/ufu.te.2019.1231. |
url |
https://repositorio.ufu.br/handle/123456789/24948 http://dx.doi.org/10.14393/ufu.te.2019.1231 |
dc.language.iso.fl_str_mv |
por |
language |
por |
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 Uberlândia |
dc.publisher.program.fl_str_mv |
Programa de Pós-graduação em Ciência da Computação |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Uberlândia |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFU instname:Universidade Federal de Uberlândia (UFU) instacron:UFU |
instname_str |
Universidade Federal de Uberlândia (UFU) |
instacron_str |
UFU |
institution |
UFU |
reponame_str |
Repositório Institucional da UFU |
collection |
Repositório Institucional da UFU |
bitstream.url.fl_str_mv |
https://repositorio.ufu.br/bitstream/123456789/24948/1/Inter-Rela%c3%a7%c3%a3oEntreSmells.pdf https://repositorio.ufu.br/bitstream/123456789/24948/2/license.txt https://repositorio.ufu.br/bitstream/123456789/24948/3/Inter-Rela%c3%a7%c3%a3oEntreSmells.pdf.txt https://repositorio.ufu.br/bitstream/123456789/24948/4/Inter-Rela%c3%a7%c3%a3oEntreSmells.pdf.jpg |
bitstream.checksum.fl_str_mv |
73a3ac45c125d1f6a5acd0c5a726b604 48ded82ce41b8d2426af12aed6b3cbf3 ce80dbe42d40a58fe8bfbb80542e5505 637a9f86c92b71d82537512a1e30faab |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU) |
repository.mail.fl_str_mv |
diinf@dirbi.ufu.br |
_version_ |
1802110561392001024 |