DR-tools code health : uma abordagem para priorização de smells para apoiar a manutenção e evolução de software
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, engloband...
| Autor: | |
|---|---|
| Tipo de recurso: | tesis doctoral |
| Estado: | Versión publicada |
| Fecha de publicación: | 2024 |
| País: | Brasil |
| Institución: | Universidade Federal do Rio Grande do Sul (UFRGS) |
| Repositorio: | Biblioteca Digital de Teses e Dissertações da UFRGS |
| Idioma: | inglés |
| OAI Identifier: | oai:www.lume.ufrgs.br:10183/280749 |
| Acceso en línea: | http://hdl.handle.net/10183/280749 |
| Access Level: | acceso abierto |
| Palabra clave: | 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 |
| Sumario: | 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. |
|---|