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

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Ferramentas de detecção de padrões de projeto: estudos comparativo baseado em revisão e enquete

Membros da banca

Marco Túlio de Oliveira Valente
Simone Diniz Junqueira Barbosa

Resumo

Context: Design patterns are solutions for recurring problems of software design. Existing Design Pattern Detection (DPD) tools target specific design patterns and programming languages. Several tools have been proposed for automating the DPD process. However, choosing the most suited tool may be troublesome. Objective: We conducted a systematic study to find out which are the existing tools and their respective features, how they perform when detecting design patterns, why these tools were developed to address their specific contexts, and how potential users perceive them. Method: We first conducted a systematic literature review about DPD tools developed in the last 20 years and their main features. We then compared the performance of four tools in detecting six design patterns based on precision, recall, F-measure, and agreement. Lastly, we carried out two survey studies: the first aimed at capturing reasons why DPD tool designers target specific contexts, and the second survey for capturing the usefulness of DPD tools from the perspective of potential users. Results: We found 42 DPD tools and listed their features, such as availability, detectable design patterns, and supported programming languages. The comparison results suggest that some tools are more suitable for detecting specific design patterns with satisfactory precision and recall. We also observed a low agreement among the detection results obtained by different tools. Regarding the surveys, we perceived that tool designers often support the detection of specific design patterns due to their internal structure, while programming languages are often chosen by their popularity in the software industry. Expected benefits of using DPD tools include program comprehension and support to the conduction of quality improvement tasks, such as source code cleaning. However, tools that are difficult to use tend to be discarded by potential users.

Abstract

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.

Assunto

Computação – Teses, Software - Desenvolvimento – Teses, Software – Ferramentas de manutenção - Teses, Administração de projetos - Revisão de literatura – Teses

Palavras-chave

Design patterns, Automated development tool, Systematic literature review, Quantitative comparative study, Survey study, Qualitative analysis

Citação

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por