Design pattern detection tools: review-based comparison and survey studies

Detalhes bibliográficos
Ano de defesa: 2023
Autor(a) principal: Rodrigo André Ferreira Moreira
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
Brasil
ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Programa de Pós-Graduação em Ciência da Computação
UFMG
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: http://hdl.handle.net/1843/57578
https://orcid.org/0000-0002-6172-8893
Resumo: Contexto: Padrões de projeto são soluções para problemas recorrentes de design de software. Ferramentas de Detecção de Padrões de Projeto (DPP) existentes suportam padrões de projeto e linguagens de programação específicas. Diversas ferramentas foram propostas para automatizar o processo de DPP em sistemas. No entanto, escolher a ferramenta mais adequada pode ser difícil. Objetivo: Conduzimos um estudo sistemático para entender quais são as ferramentas existentes e suas características, como é o desempenho de DPP dessas ferramentas, por que as ferramentas foram propostas para contextos específicos e como potenciais usuários as percebem. Método: Conduzimos uma revisão sistemática da literatura sobre as ferramentas de DPP desenvolvidas nos últimos 20 anos e suas características. Em seguida, comparamos o desempenho de quatro ferramentas na detecção de seis padrões em relação a precisão, cobertura, F-measure e concordância. Por último, conduzimos duas enquetes: a primeira com objetivo de capturar os motivos para a escolha dos dos desenvolvedores por contextos específicos a serem atendidos pelas ferramentas; a segunda visando descrever o quão úteis são essas ferramentas na visão de potenciais usuários. Resultados: Identificamos 42 ferramentas de DPP e listamos suas características, tais como os padrões de projeto detectáveis e as linguagens de programação suportadas. Os resultados do estudo comparativo sugerem que algumas ferramentas são mais adequadas para detectar certos padrões com precisão e cobertura satisfatórios. Também observamos uma baixa concordância entre os resultados de detecção obtidos por ferramentas distintas. Em relação às enquetes, percebemos que os desenvolvedores de ferramentas geralmente escolhem apoiar a detecção de padrões específicos devido às estruturas internas, enquanto que linguagens de programação são geralmente escolhidas pela sua popularidade na indústria de software. Exemplos de benefícios esperados do uso de ferramentas de DPP incluem a compreensão de sistemas de software e o apoio à realização de tarefas como limpeza de código-fonte. No entanto, ferramentas que são difíceis de utilizar tendem a ser descartadas por potenciais usuários.