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

Mawal A. Mohammed, Mahmoud O. Elish

Research output: Contribution to journalArticlepeer-review

1 Scopus citations

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.

Original languageEnglish
Pages (from-to)293-311
Number of pages19
JournalAdvances in Computational Design
Volume2
Issue number4
DOIs
StatePublished - Oct 2017
Externally publishedYes

Keywords

  • Design patterns
  • Fault-proneness
  • Software quality

Fingerprint

Dive into the research topics of 'Empirical assessment of design patterns’ fault-proneness at different granularity levels'. Together they form a unique fingerprint.

Cite this