Friday, April 08, 2005

Value of Models

In his weblog (The Value of Models, IBM DeveloperWorks, April 5, 2005) Simon Johnston posts some quality criteria for conceptual models, taken from Software Blueprints by David Robertson and Jaume Agusti. A model should be idealized, germane, precise, arguable, traceable, communicable and methodical.

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.)

more 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
It is the exception that "proves" the rule. This statement has several meanings – some absurd and some quite useful. Among other things, it means that a robust model is one that stands up to repeated attempts to disprove by exception.

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.)

more Models and Monsters

No comments: