Techno Press
You logged in as Techno Press


  Volume 2, Number 4, October 2017, pages 293-311
DOI: http://dx.doi.org/10.12989/acd.2017.2.4.293
 


Empirical assessment of design patterns\' fault-proneness at different granularity levels
Mawal A. Mohammed and 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
Mawal A. Mohammed: Information and Computer Science Department, King Fahd University of Petroleum and Minerals, Dhahran 31261, Saudi Arabia
Mahmoud O. Elish: Computer Science Department, Gulf University for Science and Technology, Mishref, Kuwait
 

Techno-Press: Publishers of international journals and conference proceedings.       Copyright © 2021 Techno Press
P.O. Box 33, Yuseong, Daejeon 305-600 Korea, Tel: +82-42-828-7996, Fax : +82-42-828-7997, Email: info@techno-press.com