The Effect of GoF Design Patterns on Stability: A Case Study

Stability refers to a software system's resistance to the "ripple effect", i.e., propagation of changes. In this paper, we investigate the stability of classes that participate in instances/occurrences of GoF design patterns. We examine whether the stability of such classes is affecte...

Full description

Saved in:
Bibliographic Details
Published in:IEEE transactions on software engineering Vol. 41; no. 8; pp. 781 - 802
Main Authors: Ampatzoglou, Apostolos, Chatzigeorgiou, Alexander, Charalampidou, Sofia, Avgeriou, Paris
Format: Journal Article
Language:English
Published: New York IEEE 01.08.2015
IEEE Computer Society
Subjects:
ISSN:0098-5589, 1939-3520
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Stability refers to a software system's resistance to the "ripple effect", i.e., propagation of changes. In this paper, we investigate the stability of classes that participate in instances/occurrences of GoF design patterns. We examine whether the stability of such classes is affected by (a) the pattern type, (b) the role that the class plays in the pattern, (c) the number of pattern occurrences in which the class participates, and (d) the application domain. To this end, we conducted a case study on about 65.000 Java open-source classes, where we performed change impact analysis on classes that participate in zero, one (single pattern), or more than one (coupled) pattern occurrences. The results suggest that, the application of design patterns can provide the expected "shielding" of certain pattern-participating classes against changes, depending on their role in the pattern. Moreover, classes that participate in coupled pattern occurrences appear to be the least stable. The results can be used for assessing the benefits and liabilities of the use of patterns and for testing and refactoring prioritization, because less stable classes are expected to require more effort while testing, and urge for refactoring activities that would make them more resistant to change propagation.
Bibliography:ObjectType-Case Study-2
SourceType-Scholarly Journals-1
content type line 14
ObjectType-Feature-3
ObjectType-Report-1
ObjectType-Article-1
ObjectType-Feature-2
content type line 23
ISSN:0098-5589
1939-3520
DOI:10.1109/TSE.2015.2414917