By: A. Hopley
Published in: PLoPD2
Category: System Modelling
Summary: Models for designing an object-oriented call processing system.
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.
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.
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.
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.
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.