TY - JOUR
T1 - Quantitative analysis of fault density in design patterns
T2 - An empirical study
AU - Elish, Mahmoud O.
AU - Mohammed, Mawal A.
N1 - Publisher Copyright:
© 2015 Elsevier B.V.
PY - 2015/10/1
Y1 - 2015/10/1
N2 - Abstract Context There are many claimed advantages for the use of design patterns and their impact on software quality. However, there is no enough empirical evidence that supports these claimed benefits and some studies have found contrary results. Objective This empirical study aims to quantitatively measure and compare the fault density of motifs of design patterns in object-oriented systems at different levels: design level, category level, motif level, and role level. Method An empirical study was conducted that involved five open-source software systems. Data were analyzed using appropriate statistical test of significance differences. Results There is no consistent difference in fault density between classes that participate in design motifs and non-participant classes. However, classes that participate in structural design motifs tend to be less fault-dense. For creational design motifs, it was found that there is no clear tendency for the difference in fault density. For behavioral design motifs, it was found that there is no significant difference between participant classes and non-participant classes. We observed associations between five design motifs (Builder, Factory Method, Adapter, Composite and Decorator) and fault density. At the role level, we found that only one pair of roles (Adapter vs. Client) shows a significant difference in fault density. Conclusion There is no clear tendency for the difference in fault density between participant and non-participant classes in design motifs. However, structural design motifs have a negative association with fault density. The Builder design motif has a positive association with fault density whilst the Factory Method, Adapter, Composite, and Decorator design motifs have negative associations with fault density. Classes that participate in the Adapter role are less dense in faults than classes that participate in the Client role.
AB - Abstract Context There are many claimed advantages for the use of design patterns and their impact on software quality. However, there is no enough empirical evidence that supports these claimed benefits and some studies have found contrary results. Objective This empirical study aims to quantitatively measure and compare the fault density of motifs of design patterns in object-oriented systems at different levels: design level, category level, motif level, and role level. Method An empirical study was conducted that involved five open-source software systems. Data were analyzed using appropriate statistical test of significance differences. Results There is no consistent difference in fault density between classes that participate in design motifs and non-participant classes. However, classes that participate in structural design motifs tend to be less fault-dense. For creational design motifs, it was found that there is no clear tendency for the difference in fault density. For behavioral design motifs, it was found that there is no significant difference between participant classes and non-participant classes. We observed associations between five design motifs (Builder, Factory Method, Adapter, Composite and Decorator) and fault density. At the role level, we found that only one pair of roles (Adapter vs. Client) shows a significant difference in fault density. Conclusion There is no clear tendency for the difference in fault density between participant and non-participant classes in design motifs. However, structural design motifs have a negative association with fault density. The Builder design motif has a positive association with fault density whilst the Factory Method, Adapter, Composite, and Decorator design motifs have negative associations with fault density. Classes that participate in the Adapter role are less dense in faults than classes that participate in the Client role.
KW - Design patterns
KW - Fault density
KW - Quantitative analysis
KW - Software quality
UR - http://www.scopus.com/inward/record.url?scp=84937540170&partnerID=8YFLogxK
U2 - 10.1016/j.infsof.2015.05.006
DO - 10.1016/j.infsof.2015.05.006
M3 - Article
AN - SCOPUS:84937540170
SN - 0950-5849
VL - 66
SP - 58
EP - 72
JO - Information and Software Technology
JF - Information and Software Technology
M1 - 5603
ER -