On the evaluation of code smells and detection tools

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Thanis Fernandes Paiva
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Federal de Minas Gerais
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://hdl.handle.net/1843/JCES-AREGGR
id UFMG_0a92ec2c308ec50fbd89994f2aad20fc
oai_identifier_str oai:repositorio.ufmg.br:1843/JCES-AREGGR
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling 2019-08-10T04:18:45Z2025-09-08T23:57:38Z2019-08-10T04:18:45Z2017-08-11https://hdl.handle.net/1843/JCES-AREGGRUniversidade Federal de Minas GeraisMétricas de softwareAnomalias de códigoFerramentas de detecçãoCode smellsFerramentas ComputaçãoComputaçãoQualidade SoftwareOn the evaluation of code smells and detection toolsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisThanis Fernandes Paivainfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGEduardo Magno Lages FigueiredoHumberto Torres Marques NetoMarco Tulio de Oliveira ValenteCode smells are code fragments that can hinder the evolution and maintenance of software systems. Their detection is a challenge for developers and their informal definition leads to the implementation of multiple detection techniques and tools. This paper investigates the presence and evolution of code smells in two software systems, namely MobileMedia and Health Watcher. We also evaluated and compared four code smell detection tools, namely inFusion, JDeodorant, PMD, and JSpIRIT, using five open source projects, namely ANTLR, ArgoUML, JFreeChart, JSPWiki, and JUnit. The tools were applied to all seven open source projects to calculate agreement and accuracy of the tools. We calculated the recall and precision of each tool in the detection of three code smells: God Class, God Method, and Feature Envy. In order to calculate the recall and precision of the tools, we created code smell reference lists by manually analyzing the source code and also using an automatic approach. Agreement was calculated among tools and between pairs of tools, considering the percentage agreement, chance corrected agreement, non-occurrence, and occurrence agreement. The results were analyzed to answer research questions related to the evolution of code smells and comparison of detection tools in terms of recall, precision, and agreement. Our main findings include the fact that, in general, code smells are present from the moment of creation of a class or method in 74.4% of the cases of MobileMedia and 87.5% of Health Watcher. We also found that the evaluated tools present different recall and precision values. However, for God Class and Feature Envy, inFusion has the lowest recall and highest precision, while JDeodorant has the lowest precision for God Class and God Method in all target systems. Considering the agreement, we found high averages for percentage, chance corrected, and non-occurrence agreement of over 90%, confirming that there is high agreement on classes and methods without code smells, regardless of differences in the detection techniques. On the other hand, we found lower values for occurrence agreement between pairs of tools, ranging from 0.38% to 64.56%, confirming that regardless of similarities in the detection techniques, each tool reports very different sets of classes and methods as code smells.UFMGORIGINALthanis_paiva.pdfapplication/pdf1530712https://repositorio.ufmg.br//bitstreams/b98af905-8b67-4997-b893-985bdc59d847/download5303fd6a4b755d95934759c16ef27552MD51trueAnonymousREADTEXTthanis_paiva.pdf.txttext/plain217697https://repositorio.ufmg.br//bitstreams/5b331246-16c2-46ea-b496-7d674ddddd17/download09ec342ed07840203138d4f0c17bc19bMD52falseAnonymousREAD1843/JCES-AREGGR2025-09-08 20:57:38.561open.accessoai:repositorio.ufmg.br:1843/JCES-AREGGRhttps://repositorio.ufmg.br/Repositório InstitucionalPUBhttps://repositorio.ufmg.br/oairepositorio@ufmg.bropendoar:2025-09-08T23:57:38Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.none.fl_str_mv On the evaluation of code smells and detection tools
title On the evaluation of code smells and detection tools
spellingShingle On the evaluation of code smells and detection tools
Thanis Fernandes Paiva
Code smells
Ferramentas Computação
Computação
Qualidade Software
Métricas de software
Anomalias de código
Ferramentas de detecção
title_short On the evaluation of code smells and detection tools
title_full On the evaluation of code smells and detection tools
title_fullStr On the evaluation of code smells and detection tools
title_full_unstemmed On the evaluation of code smells and detection tools
title_sort On the evaluation of code smells and detection tools
author Thanis Fernandes Paiva
author_facet Thanis Fernandes Paiva
author_role author
dc.contributor.author.fl_str_mv Thanis Fernandes Paiva
dc.subject.por.fl_str_mv Code smells
Ferramentas Computação
Computação
Qualidade Software
topic Code smells
Ferramentas Computação
Computação
Qualidade Software
Métricas de software
Anomalias de código
Ferramentas de detecção
dc.subject.other.none.fl_str_mv Métricas de software
Anomalias de código
Ferramentas de detecção
publishDate 2017
dc.date.issued.fl_str_mv 2017-08-11
dc.date.accessioned.fl_str_mv 2019-08-10T04:18:45Z
2025-09-08T23:57:38Z
dc.date.available.fl_str_mv 2019-08-10T04:18:45Z
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://hdl.handle.net/1843/JCES-AREGGR
url https://hdl.handle.net/1843/JCES-AREGGR
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 Minas Gerais
publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFMG
instname:Universidade Federal de Minas Gerais (UFMG)
instacron:UFMG
instname_str Universidade Federal de Minas Gerais (UFMG)
instacron_str UFMG
institution UFMG
reponame_str Repositório Institucional da UFMG
collection Repositório Institucional da UFMG
bitstream.url.fl_str_mv https://repositorio.ufmg.br//bitstreams/b98af905-8b67-4997-b893-985bdc59d847/download
https://repositorio.ufmg.br//bitstreams/5b331246-16c2-46ea-b496-7d674ddddd17/download
bitstream.checksum.fl_str_mv 5303fd6a4b755d95934759c16ef27552
09ec342ed07840203138d4f0c17bc19b
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)
repository.mail.fl_str_mv repositorio@ufmg.br
_version_ 1862105745465540608