Investigando a Incidência de Code Smells em Métodos de Padrões de Projeto

Banca de DEFESA: EDERSON DOS SANTOS ASSUNCAO

Uma banca de DEFESA de MESTRADO foi cadastrada pelo programa.

DISCENTE : EDERSON DOS SANTOS ASSUNCAO

DATA : 01/09/2021

HORA: 14:00

LOCAL: Online

TÍTULO:

Investigando a incidência de code smells em métodos de padrões de projeto



PALAVRAS-CHAVES:

Padrões de projeto, Code Smells, Design de Software, Mineração de Repositórios de Software



PÁGINAS: 91

RESUMO:

Padrões de projeto são soluções reutilizáveis que podem ser aplicadas para resolver problemas específicos em projeto de software. No entanto, tais padrões podem ser mal aplicados e dar origem a code smells. Code smells ou smells são fragmentos no código-fonte que indicam possíveis falhas de design. Chamamos de coocorrência situações durante as quais padrões de projeto e code smells existem dentro dos mesmo módulos de código (e.g., arquivos .java de projetos Java). Este fenômeno, caso ocorra com frequência, pode resultar em uma oportunidade para avaliar se existe algum desvio ou má prática de aplicação dos padrões que possam ser evitados. Possivelmente, ao refinar a forma como os padrões são adicionados a projetos, o surgimento e existência de smells possam ser mitigados. Este trabalho apresenta dois estudos experimentais com o objetivo de investigar as relações de coocorrência entre padrões de projeto e smells. Ambos demandaram a aplicação de ferramentas de detecção automatizadas de padrões de projeto e smells em sistemas de código-fonte aberto desenvolvidos na linguagem Java. No primeiro estudo buscamos compreender com que frequência os code smells coocorrem com padrões de projeto, bem como determinar as coocorrências mais comuns. Para esse fim, identificamos instâncias de smells em métodos de padrões de projeto de 25 sistemas. Também inspecionamos manualmente fragmentos do código-fonte dos projetos para obter informações sobre a relação entre pares específicos padrão-smell. Entre outras descobertas, percebemos que os métodos que fazem parte do padrão Adapter são mais propensos a conter smells, especialmente o Feature Envy, embora possa ser argumentado que a detecção desse smell nesse contexto é um falso-positivo. O segundo estudo é aplicado sobre o histórico de versão proveniente de repositórios de software Open Source. Esta análise consiste em entender a relação entre as duas variáveis (padrões de projeto e code smells) ao longo da evolução do software. Os resultados encontrados sugerem que o padrão Template Method está mais propenso a ser introduzido simultaneamente com smells ao longo do tempo.



MEMBROS DA BANCA:

Interno - 1710389 - CLAUDIO NOGUEIRA SANT ANNA

Externo ao Programa - 2973264 - RODRIGO ROCHA GOMES E SOUZA

Externo à Instituição - RICARDO TERRA NUNES BUENO VILLELA

Data da Defesa: 
01/09/2021 - 14:00
Tipo de Defesa: 
Defesa de Mestrado