Responsibilities and Rewards: Specifying Design Patterns

  • Authors:
  • Neelam Soundarajan;Jason O. Hallstrom

  • Affiliations:
  • Ohio State University;Ohio State University

  • Venue:
  • Proceedings of the 26th International Conference on Software Engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Design patterns provide guidance to system designers onhow to structure individual classes or groups of classes, aswell as constraints on the interactions among these classes,to enable them to implement flexible and reliable systems.Patterns are usually described informally. While such informaldescriptions are useful and even essential, if we wantto be sure that designers precisely and unambiguously understandthe requirements that must be met when applyinga given pattern, and be able to reliably predict the behaviorsthe resulting system will exhibit, we also need formalcharacterizations of the patterns.In this paper, we develop an approach to formalizing designpatterns. The requirements that a designer must meetwith respect to the structures of the classes, as well as withrespect to the behaviors exhibited by the relevant methods,are captured in the responsibilities component of the patternýsspecification; the benefits that will result by applyingthe pattern, in terms of specific behaviors that the resultingsystem will be guaranteed to exhibit, are captured in therewards component. One important aspect of many designpatterns is their flexibility; our approach is designed to ensurethat this flexibility is retained in the formalization ofthe pattern. We illustrate the approach by applying it to astandard design pattern.