Advances in Computational Design

Volume 2, Number 4, 2017, pages 293-311

DOI: 10.12989/acd.2017.2.4.293

Empirical assessment of design patterns\' fault-proneness at different granularity levels

Mawal A. Mohammed , Mahmoud O. Elish

Abstract

There are several claimed benefits for the impact of design patterns (DPs) on software quality. However, the association between design patterns and fault-proneness has been a controversial issue. In this work, we evaluate the fault-proneness of design patterns at four levels: the design level, category level, pattern level, and role level. We used five subject systems in our empirical study. As a result, we found that, at the design level, the classes that participate in the design patterns are less fault-prone than the non-participant classes. At the category level, we found that the classes that participate in the behavioral and structural categories are less fault-prone than the non-participant classes. In addition, we found that the classes that participate in the structural design patterns are less fault-prone than the classes that participate in the other categories. At the pattern level, we found that only five patterns show significant associations with fault-proneness: builder, factory method, adapter, composite, and decorator. All of these patterns except for builder show that the classes that participate in each one of them are less fault-prone than the non-participant classes in that pattern. The classes that participate in the builder design pattern were more fault-prone than the non-participant classes and the classes that participate in several patterns: the adapter, the composite, and the decorator design patterns. At the role level, the most significant differences were between the classes that participate in some roles and the non-participant classes. Only three pairs of design pattern roles show significant differences. These roles are concrete-product vs. concrete-creator, adapter vs. adaptee, and adapter vs. client. The results recommend the use of design patterns because they are less fault-prone in general except for the builder design pattern, which should be applied with care and addressed with more test cases.

Key Words

design patterns; fault-proneness; software quality

Address

PDF Viewer

Preview uses the same access rules as Full Text PDF (subscription, purchase, or open access).

Loading… Download PDF