Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/ESBF-A9CNEX
Type: Dissertação de Mestrado
Title: Co-occurrence analysis of design patterns and bad smells in software systems
Authors: Bruno dos Santos Azevedo Cardoso
First Advisor: Eduardo Magno Lages Figueiredo
First Referee: Kecia Aline Marques Ferreira
Second Referee: Marco Tulio de Oliveira Valente
Abstract: Sistemas de software são muitas vezes desenvolvidos de forma que as boas práticas do paradigma orientado a objetos não são satisfeitas, causando a ocorrência de anomalias. Anomalias são sintomas ou características estruturais de uma parte do código que podem sugerir a presença de um problema mais profundo no projeto do sistema ou no código. Por outro lado, padrões de projeto têm a intenção de catalogar as melhores práticas para o desenvolvimento de sistemas de software orientados a objetos. Embora aparentemente muito divergentes, pode haver uma coocorrência de padrões de projeto e anomalias, visto que este fenômeno algumas vezes é citado em estudos na área de engenharia de software, embora discretamente. Portanto, este trabalho realiza uma análise exploratória, a fim de identificar a coocorrência de padrões de projeto e anomalias em sistemas de software, que pode acontecer devido ao uso inadequado de padrões de projeto. Para atingir este objetivo, primeiro realizamos uma revisão da literatura a fim de compreender o estado atual da arte relativo a padrões de projeto e anomalias e, em seguida, foi realizado um estudo exploratório para identificar instâncias concretas de usos indequados de padrões de projeto que levam a ocorrência de anomalias. Neste estudo, ferramentas foram usadas para a detecção de padrões deprojeto e anomalias em cinco sistemas de médio a grande porte. Os resultados do estudo indicam coocorrências interessantes, como Command com God Class e Template Method com Duplicated Code. Nós analisamos porque esses padrões provocaram o surgimento das anomalias. Discutimos também a gravidade das anomalias e, quandoapropriado, propomos alterações ao código do sistema, visando solucionar as anomalias detectadas. Esses achados indicam que, apesar de padrões de projeto catalogarem as me lhores práticas para o desenvolvimento de sistemas de software, seu uso inadequadopode ter feitos indesejados.
Abstract: Software systems are often developed in a way that good practices of the object-oriented paradigm are not fulfilled, causing the occurrence of bad smells. Bad smells are symptoms or structural characteristics in a region of code that may suggest the presence of a deeper problem in the system design or code. On the other hand, design patterns are intended to catalog the best practices for developing object-oriented software systems. Although apparently widely divergent, there may be a co-occurrence of design patterns and bad smells, since this phenomenon is sometimes cited in studies in the software engineeringfield, albeit discreetly. Therefore, this dissertation performs an exploratoryanalysis in order to identify the co-occurrence of design patterns and bad smells in software systems, that may happen due to the inadequate use of design patterns. To achieve this goal, we first perform a literature review in order to understand the current state of art concerning design patterns and bad smells and, then, we accomplish an exploratory study to identify concrete instances of design patterns inadequate usagethat lead to bad smells occurrences. In this study, we use tools for detecting design patterns and bad smells in five medium to large size systems. The study results indicate interesting co-occurrences, as Command with God Class and Template Method with Duplicated Code. We analyse why these patterns provoked the bad smells arising. Wealso discuss the severity of bad smells and, when appropriate, propose changes to the system code in order to address the detected bad smells. These findings indicate that, although design patterns catalog the best practices for developing software systems, their inadequate use may have undesired effects.
Subject: Componente de software
Software Desenvolvimento
Computação
Software Produtividade
Software Validação
language: Inglês
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
Rights: Acesso Aberto
URI: http://hdl.handle.net/1843/ESBF-A9CNEX
Issue Date: 13-Nov-2015
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
brunodossantosazevedocardoso.pdf2.8 MBAdobe PDFView/Open


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