Simon justifies this list in terms of two questions: does it make me go faster? and does the model of this thing tell me something about the thing that I could not tell from staring at the thing itself?
This is a good list, but I want to add to it.
Focus attention, supports reasoning This is linked to what Simon calls germanity, but it goes further. A good model focuses attention on the things that matter, and helps people reason about them. For example, if we want models to support an architectural process, then the models must help to visualize the key architectural issues. And if we believe that architects should pay attention to cohesion and coupling, then we must have models that make cohesion and coupling visible. (I do not find that UML serves this purpose very well.)
|Architecture and Abstraction |
Robust yet open to change
It is a natural tendency for modellers to justify and preserve their models, even when confronted with apparent exceptions. Meanwhile, other people question and challenge the model, for three reasons.
- to better understand the model
- to increase confidence in the model
- to improve the model
But this is often achieved in a narrow and fixed way, which forecloses any possibility of refutation or change. A good model must be capable of accommodating new requirements, new insights. (In my extended modelling courses, I generally include exercises that involve modifying an existing model, not just building highly simplified models from scratch.)
|Models and Monsters|