Correlation between the Frequent Use of Gang-of-Four Design Patterns and Structural Complexity.
Abstract
The structural complexity of design components (e.g. Classes) is proportional to design quality at the system level and is quantified via the object-oriented metrics. The frequent use of design patterns causes of too much abstraction and can increase the structural complexity of design components. Though, in our previous work, we have empirically investigated the impact of use intensity of design pattern on the system level quality attributes. However, the empirical investigation of the effect of usage of design patterns on the design properties is still required. In this regard, we conduct an empirical study and perform a case study which includes the analysis 1) the existence of a correlation between design pattern usage and design metrics, 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 structural complexity in the subsequent releases of a system. The result of this study suggests that structural complexity associated with aggregation, coupling, functional abstraction design properties has a significant relationship with the employed instances of Template, AdapterCommand, Singleton, and Factory Method design patterns. CCS Concepts • General and Reference→ Cross-computing tools and techniques→Empirical studies; Design; Metrics; Keywords Design Patterns; Complexity; Metrics; Object Oriented; Class; Coupling. 1. INTRODUCTION The structure of an object-oriented application includes a set of design components named classes and packages, besides their design properties such as inheritance, abstraction, aggregation, and composition. 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 domain of objectoriented software development, Gamma, Helm, Johnson, SAMPLE: Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for pr