Decision Deferral and Capture Pattern Language


By: A. Hopley
Published in: PLoPD2
Pages: 335-343
Category: System Modelling

Summary: Models for designing an object-oriented call processing system.

Pattern: Decision-Based Models

Pages: 336-337

You're defining a system by successive refinement of models. Define model content on the basis of decisions captured in that model or deferred to refining models. These decisions are often based on what is being done, who is doing it, and how it is being done.

Pattern: Appropriate Living Models

Pages: 337-338

You're using Decision-Based Models. Choose an appropriate number of models so you don't spend all your time developing the models instead of developing the system. Models should be independent of decisions likely to change. A model can capture or be independent of multiple decisions.

Pattern: Executable Models

Pages: 338-340

You're using Decision-Based Models. To ensure that a model is a correct or consistent representation of a solution to a problem, build an executable version of a model. This is a form of prototyping for model builders.

Pattern: Upward Traceability

Pages: 340-341

You're developing a system represented by two or more levels of models, with different groups maintaining the different models. To ensure that information is not lost in moving from one model to another, maintain upward traceability between models and downward approval of that traceability. Designers of the refining model own and maintain the traceability to the refined model. Designers of the refined model give approval of that traceability.

Pattern: Downward Changes

Pages: 341-342

You're designing a system where problems are often encountered at more detailed levels of abstraction. These problems require changes. For multiple models at various levels of abstraction, to develop and make changes to those models, make changes from the highest level of abstraction to the lowest level, maintaining traceability all the way.