Conference Paper

The Effect of Gang-of-Four Design Patterns Usage on Design Quality Attributes.

Shahid Hussain, Jacky W. Keung, Arif Ali Khan

Abstract

Context: In the plethora of studies, it has been empirically investigated that the incidence of design pattern instances can be considered as an indicator to elaborate the software design. The developers, who have more concern with design quality, are interested to know the effect of use intensity of design patterns on the system level design quality attributes. Goal: The objective of our study is to empirically investigate the effect of the frequent use of the Gang-of-Four (GoF) design patterns on the design quality attributes. Method: We perform a case study which includes three analyses in order to investigate, 1) the existence of a correlation between design pattern usage and design quality attributes, 2) the confounding effect of system size (number of classes) on the correlation, and 3) how the change in number of employed design pattern instances affects the design quality in the subsequent releases of a system. Results: The result of this study suggests that the reusability, flexibility and understandability have a significant relationship with the employed instances of Template, Adapter-Command, Singleton and State-Strategy design patterns, however, it is affected by the confounding effect of system size. Subsequently, in the subsequent releases of an open source project named velocity, we observed the use intensity of Singleton, Adapter-Command, and State-Strategy design patterns can improve the design quality in term of reusability and flexibility attributes. CCS Concepts • General and Referenceĺ Cross-computing tools and techniquesĺEmpirical studies; Design; Metrics; Keywords Design Patterns; Quality; Spearman Correlation; Reusability; Understandability; Flexibility; Extendibility; Effectiveness. 1. INTRODUCTION The structure of object-oriented software includes a set of design entities named classes, methods, and packages besides their inheritance and composition features. In software engineering, the term pattern is used in different software development phases (such as in requirement and design phase) and with different application domains (such as enterprise applications) in order to refer a solution of a commonly occurring problem. In the domai

Keywords