Software design patterns are an idea that is intuitively appealing and has found many advocates. However, as scientists we must be concerned about gathering hard evidence for the claims of bene cial consequences of design patterns. This article describes the major claims and derives the corresponding research questions. It discusses the methodology of a research programme for investigating these questions and sketches the practical constraints that make this research di cult. It then shortly summarizes three controlled experiments that were successfully carried out within these constraints and lists the main results and their consequences, such as: One should document design patterns when they are used and one must not apply design patterns without judgement of alternatives. Finally, design considerations of a fourth experiment are discussed. The contribution of this paper is a description of important methodological aspects of practical experimental work and how these relate to the results obtained. Understanding these relations will be important in future empirical software engineering research. 1 The design pattern
[1]
Lutz Prechelt,et al.
Replication of the first controlled experiment on the usefulness of design patterns: Detailed description and evaluation
,
1997
.
[2]
Harvey P. Siy,et al.
An experiment to assess the cost-benefits of code inspections in large scale software development
,
1995,
SIGSOFT '95.
[3]
Mary Shaw,et al.
Software architecture - perspectives on an emerging discipline
,
1996
.
[4]
Ralph Johnson,et al.
Design patterns: elements of reuseable object-oriented software
,
1994
.
[5]
James Coplien,et al.
Industrial experience with design patterns
,
1996,
Proceedings of IEEE 18th International Conference on Software Engineering.
[6]
Lutz Prechelt.
An experiment on the usefulness of design patterns: Detailed description and evaluation
,
1997
.
[7]
Michael Philippsen,et al.
Two controlled experiments assessing the usefulness of design pattern information during program maintenance [online]
,
1998
.