DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software

Detalhes bibliográficos
Ano de defesa: 2024
Autor(a) principal: Lacerda, Guilherme Silva de
Orientador(a): Pimenta, Marcelo Soares
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Não Informado pela instituição
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:
Palavras-chave em Inglês:
Link de acesso: http://hdl.handle.net/10183/280749
Resumo: Durante a manutenção e evolução do software, a dívida técnica é uma questão recorrente, já que modificações no software tendem a adicionar problemas aparentes de design, como falta de testes, problemas arquiteturais e um grande número de code smells, levando à degradação do código. Smells, englobando problemas de software a nível de código e falhas de princípios de design, impactam negativamente a qualidade e manutenção do software. Para monitorar e acompanhar esses smells, a priorização é uma estratégia eficaz, permitindo que desenvolvedores identifiquem e mitiguem problemas críticos de forma tática. Apesar de ser essencial na gestão da dívida técnica, a priorização de smells ainda carece de um conjunto sólido, validado e amplamente usado de modelos e ferramentas, permanecendo um campo aberto e relevante de pesquisa. O objetivo desta tese é investigar a importância da priorização de smells para o desenvolvimento e manutenção de software e propor o DR-Tools Code Health, uma nova abordagem para priorização de smells. Esta abordagem engloba a definição e detecção de mais de smell em um mesmo elemento de código, além da classificação e filtragem destes smells, permitindo que os desenvolvedores identifiquem no código as partes mais problemáticas e que necessitam de atenção, e as tornem candidatas prioritárias para refatorações, ma nutenção e evolução de software. O método proposto é inspirado no Método de Hanlon, amplamente usado para priorização de problemas de saúde em países em desenvolvi mento. Dois experimentos foram realizados: o primeiro avalia a percepção dos profissionais da indústria, revelando eficácia na identificação de problemas de código com alta concordância nas análises de métodos e classes, embora muitos desenvolvedores não tenham percebido mudanças, sugerindo a necessidade de melhorias na comunicação dos resultados. No segundo experimento, foram investigados 5 projetos open-source quanto à priorização e impacto dos smells em atributos de qualidade. Observou-se um padrão de aumento gradual ou constante dos smells, alinhado a estudos anteriores. O conceito de smell churn rate foi destacado, com o projeto JetUML mostrando redução significativa de smells entre versões. A estratégia de priorização baseou-se em melhorias oportunis tas, com modularidade e manutenibilidade sendo os atributos de qualidade mais afetados pelos smells. As principais contribuições deste trabalho incluem a i) abordagem multicritério para pri orização de smells, ii) um método para contabilizar adições/remoções dos smells entre duas versões e iii) duas ferramentas open-source, uma que dá suporte ao uso do método proposto e outra que implementa o método de inserções/remoções dos smells.
id URGS_6545d1c2cecb71a996ede6d0d2fcfff3
oai_identifier_str oai:www.lume.ufrgs.br:10183/280749
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str
spelling Lacerda, Guilherme Silva dePimenta, Marcelo Soares2024-11-01T06:47:37Z2024http://hdl.handle.net/10183/280749001214192Durante a manutenção e evolução do software, a dívida técnica é uma questão recorrente, já que modificações no software tendem a adicionar problemas aparentes de design, como falta de testes, problemas arquiteturais e um grande número de code smells, levando à degradação do código. Smells, englobando problemas de software a nível de código e falhas de princípios de design, impactam negativamente a qualidade e manutenção do software. Para monitorar e acompanhar esses smells, a priorização é uma estratégia eficaz, permitindo que desenvolvedores identifiquem e mitiguem problemas críticos de forma tática. Apesar de ser essencial na gestão da dívida técnica, a priorização de smells ainda carece de um conjunto sólido, validado e amplamente usado de modelos e ferramentas, permanecendo um campo aberto e relevante de pesquisa. O objetivo desta tese é investigar a importância da priorização de smells para o desenvolvimento e manutenção de software e propor o DR-Tools Code Health, uma nova abordagem para priorização de smells. Esta abordagem engloba a definição e detecção de mais de smell em um mesmo elemento de código, além da classificação e filtragem destes smells, permitindo que os desenvolvedores identifiquem no código as partes mais problemáticas e que necessitam de atenção, e as tornem candidatas prioritárias para refatorações, ma nutenção e evolução de software. O método proposto é inspirado no Método de Hanlon, amplamente usado para priorização de problemas de saúde em países em desenvolvi mento. Dois experimentos foram realizados: o primeiro avalia a percepção dos profissionais da indústria, revelando eficácia na identificação de problemas de código com alta concordância nas análises de métodos e classes, embora muitos desenvolvedores não tenham percebido mudanças, sugerindo a necessidade de melhorias na comunicação dos resultados. No segundo experimento, foram investigados 5 projetos open-source quanto à priorização e impacto dos smells em atributos de qualidade. Observou-se um padrão de aumento gradual ou constante dos smells, alinhado a estudos anteriores. O conceito de smell churn rate foi destacado, com o projeto JetUML mostrando redução significativa de smells entre versões. A estratégia de priorização baseou-se em melhorias oportunis tas, com modularidade e manutenibilidade sendo os atributos de qualidade mais afetados pelos smells. As principais contribuições deste trabalho incluem a i) abordagem multicritério para pri orização de smells, ii) um método para contabilizar adições/remoções dos smells entre duas versões e iii) duas ferramentas open-source, uma que dá suporte ao uso do método proposto e outra que implementa o método de inserções/remoções dos smells.During software maintenance and evolution, technical debt is a recurring issue, as soft ware modifications tend to introduce apparent design problems, such as a lack of tests, architectural issues, and a large number of code smells, leading to code degradation. Smells, encompassing software problems at the code level and violations of design prin ciples, negatively impact the quality and maintainability of the software. To monitor and track these smells, prioritization is an effective strategy, allowing developers to tactically identify and mitigate critical issues. Despite being essential for managing technical debt, the prioritization of smells still lacks a solid, validated, and widely used set of models and tools, remaining an open and relevant field of research. The objective of this thesis is to investigate the importance of smell prioritization for software development and maintenance and to propose DR-Tools Code Health, a new approach for smell prioritization. This approach encompasses the definition and detection of multiple smells in the same code element, as well as the classification and filtering of these smells, enabling developers to identify the most problematic parts of the code that require attention, making them priority candidates for refactoring, maintenance, and software evolution. The proposed method is inspired by Hanlon’s Method, widely used for prioritizing health issues in developing countries. Two experiments were conducted: the first evaluates the perception of industry profes sionals, revealing effectiveness in identifying code problems with high agreement in the analysis of methods and classes, although many developers did not perceive changes, suggesting the need for improvements in communicating the results. In the second exper iment, 5 open-source projects were investigated regarding the prioritization and impact of smells on quality attributes. A pattern of gradual or consistent increase in smells was observed, aligned with previous studies. The concept of smell churn rate was highlighted, with the JetUML project showing a significant reduction in smells between versions. The prioritization strategy was based on opportunistic improvements, with modularity and maintainability being the quality attributes most affected by smells. The main contributions of this work include i) a multicriteria approach for smell prioriti zation, ii) a method for accounting for additions/removals of smells between two versions, and iii) two open-source tools, one that supports the proposed method and another that implements the method for tracking smell insertions/removals.application/pdfengQualidade de softwareManutencao : SoftwareRefatoraçãoDívida técnicaCode smellsDesign smellsPrioritization approachSoftware qualitySoft ware maintenance and evolutionDesign issuesDR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de softwareDR-Tools Code Health: a smells prioritization approach to support software maintenance and evolutioninfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2024doutoradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001214192.pdf.txt001214192.pdf.txtExtracted Texttext/plain544318http://www.lume.ufrgs.br/bitstream/10183/280749/2/001214192.pdf.txtd54916e6d2451e1fb185065ed621b496MD52ORIGINAL001214192.pdfTexto completoapplication/pdf8049071http://www.lume.ufrgs.br/bitstream/10183/280749/1/001214192.pdf64f371325f215930f0d7a140d4e899c4MD5110183/2807492024-11-02 06:49:06.418027oai:www.lume.ufrgs.br:10183/280749Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532024-11-02T09:49:06Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
dc.title.alternative.pt.fl_str_mv DR-Tools Code Health: a smells prioritization approach to support software maintenance and evolution
title DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
spellingShingle DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
Lacerda, Guilherme Silva de
Qualidade de software
Manutencao : Software
Refatoração
Dívida técnica
Code smells
Design smells
Prioritization approach
Software quality
Soft ware maintenance and evolution
Design issues
title_short DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
title_full DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
title_fullStr DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
title_full_unstemmed DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
title_sort DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
author Lacerda, Guilherme Silva de
author_facet Lacerda, Guilherme Silva de
author_role author
dc.contributor.author.fl_str_mv Lacerda, Guilherme Silva de
dc.contributor.advisor1.fl_str_mv Pimenta, Marcelo Soares
contributor_str_mv Pimenta, Marcelo Soares
dc.subject.por.fl_str_mv Qualidade de software
Manutencao : Software
Refatoração
Dívida técnica
topic Qualidade de software
Manutencao : Software
Refatoração
Dívida técnica
Code smells
Design smells
Prioritization approach
Software quality
Soft ware maintenance and evolution
Design issues
dc.subject.eng.fl_str_mv Code smells
Design smells
Prioritization approach
Software quality
Soft ware maintenance and evolution
Design issues
description Durante a manutenção e evolução do software, a dívida técnica é uma questão recorrente, já que modificações no software tendem a adicionar problemas aparentes de design, como falta de testes, problemas arquiteturais e um grande número de code smells, levando à degradação do código. Smells, englobando problemas de software a nível de código e falhas de princípios de design, impactam negativamente a qualidade e manutenção do software. Para monitorar e acompanhar esses smells, a priorização é uma estratégia eficaz, permitindo que desenvolvedores identifiquem e mitiguem problemas críticos de forma tática. Apesar de ser essencial na gestão da dívida técnica, a priorização de smells ainda carece de um conjunto sólido, validado e amplamente usado de modelos e ferramentas, permanecendo um campo aberto e relevante de pesquisa. O objetivo desta tese é investigar a importância da priorização de smells para o desenvolvimento e manutenção de software e propor o DR-Tools Code Health, uma nova abordagem para priorização de smells. Esta abordagem engloba a definição e detecção de mais de smell em um mesmo elemento de código, além da classificação e filtragem destes smells, permitindo que os desenvolvedores identifiquem no código as partes mais problemáticas e que necessitam de atenção, e as tornem candidatas prioritárias para refatorações, ma nutenção e evolução de software. O método proposto é inspirado no Método de Hanlon, amplamente usado para priorização de problemas de saúde em países em desenvolvi mento. Dois experimentos foram realizados: o primeiro avalia a percepção dos profissionais da indústria, revelando eficácia na identificação de problemas de código com alta concordância nas análises de métodos e classes, embora muitos desenvolvedores não tenham percebido mudanças, sugerindo a necessidade de melhorias na comunicação dos resultados. No segundo experimento, foram investigados 5 projetos open-source quanto à priorização e impacto dos smells em atributos de qualidade. Observou-se um padrão de aumento gradual ou constante dos smells, alinhado a estudos anteriores. O conceito de smell churn rate foi destacado, com o projeto JetUML mostrando redução significativa de smells entre versões. A estratégia de priorização baseou-se em melhorias oportunis tas, com modularidade e manutenibilidade sendo os atributos de qualidade mais afetados pelos smells. As principais contribuições deste trabalho incluem a i) abordagem multicritério para pri orização de smells, ii) um método para contabilizar adições/remoções dos smells entre duas versões e iii) duas ferramentas open-source, uma que dá suporte ao uso do método proposto e outra que implementa o método de inserções/remoções dos smells.
publishDate 2024
dc.date.accessioned.fl_str_mv 2024-11-01T06:47:37Z
dc.date.issued.fl_str_mv 2024
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.uri.fl_str_mv http://hdl.handle.net/10183/280749
dc.identifier.nrb.pt_BR.fl_str_mv 001214192
url http://hdl.handle.net/10183/280749
identifier_str_mv 001214192
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.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/280749/2/001214192.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/280749/1/001214192.pdf
bitstream.checksum.fl_str_mv d54916e6d2451e1fb185065ed621b496
64f371325f215930f0d7a140d4e899c4
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1831316188995518464