Co-occurrence analysis of design patterns and bad smells in software systems
Bruno dos Santos Azevedo Cardoso · Americanae (AECID Library) · 2015
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.