Show simple item record

dc.contributor.advisorPimenta, Marcelo Soarespt_BR
dc.contributor.authorLacerda, Guilherme Silva dept_BR
dc.date.accessioned2024-11-01T06:47:37Zpt_BR
dc.date.issued2024pt_BR
dc.identifier.urihttp://hdl.handle.net/10183/280749pt_BR
dc.description.abstractDurante 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.pt_BR
dc.description.abstractDuring 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.en
dc.format.mimetypeapplication/pdfpt_BR
dc.language.isoengpt_BR
dc.rightsOpen Accessen
dc.subjectQualidade de softwarept_BR
dc.subjectCode smellsen
dc.subjectDesign smellsen
dc.subjectManutencao : Softwarept_BR
dc.subjectRefatoraçãopt_BR
dc.subjectPrioritization approachen
dc.subjectDívida técnicapt_BR
dc.subjectSoftware qualityen
dc.subjectSoft ware maintenance and evolutionen
dc.subjectDesign issuesen
dc.titleDR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de softwarept_BR
dc.title.alternativeDR-Tools Code Health: a smells prioritization approach to support software maintenance and evolutionpt
dc.typeTesept_BR
dc.identifier.nrb001214192pt_BR
dc.degree.grantorUniversidade Federal do Rio Grande do Sulpt_BR
dc.degree.departmentInstituto de Informáticapt_BR
dc.degree.programPrograma de Pós-Graduação em Computaçãopt_BR
dc.degree.localPorto Alegre, BR-RSpt_BR
dc.degree.date2024pt_BR
dc.degree.leveldoutoradopt_BR


Files in this item

Thumbnail
   

This item is licensed under a Creative Commons License

Show simple item record