Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/58280
Type: Dissertação
Title: Design pattern detection tools: review-based comparison and survey studies
Other Titles: Ferramentas de detecção de padrões de projeto: estudos comparativo baseado em revisão e enquete
Authors: Rodrigo André Ferreira Moreira
First Advisor: Eduardo Magno Lages Figueiredo
First Co-advisor: Eduardo Moreira Fernandes
First Referee: Marco Túlio de Oliveira Valente
Second Referee: Simone Diniz Junqueira Barbosa
Abstract: 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.
Subject: Computação – Teses
Software - Desenvolvimento – Teses
Software – Ferramentas de manutenção - Teses
Administração de projetos - Revisão de literatura – Teses
language: eng
metadata.dc.publisher.country: Brasil
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
metadata.dc.publisher.department: ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
metadata.dc.publisher.program: Programa de Pós-Graduação em Ciência da Computação
Rights: Acesso Aberto
URI: http://hdl.handle.net/1843/58280
Issue Date: 24-Mar-2023
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
Rodrigo Moreira - Dissertação Mestrado Final.pdf1.73 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.