Some reflections on B.C. Smith’s “Limits of Correctness” 1985
Part III (III)
The world is infinitely rich. Smith addresses various issues on the mapping of the inherently complex reality to (finite) formal models. I’d like to share some thoughts on two of them.
Modeling the context. This can be done well by things like Actors or Terminators – to capture the neighborhood – and by modeling processes or platforms at the business or system level. Unfortunately, modeling the context doesn’t pay off immediately. So, often people see no reason to do so in the first place. However, later on they usually complain about constantly changing requirements. One of the favorite excuses is that requirements can never be captured beforehand to a 100%. But that’s not an excuse, it’s just a fact.
Finding the appropriate level and view of abstraction. This is about keeping cool as well as about staying focused. Firstly, not everything needs to be specified immediately. Once it is captured it won’t run away, i.e. it can be detailed later on as well. Secondly, it is easy to make a model of any system: just draw a box and name it ‘System’ – and there you have your model. In order to build reasonable models one has to go down to the level at which the music plays, i.e. where the relevant issues can be addressed. Modeling languages should be flexible enough to support this. Of course, where these issues are found, varies widely for every project, and believe me, if I had a neat trick as to how to spot them easily, I would tell you.
So far, just a few thoughts.
Main messages of Smith’s article summarized:
- Always be aware of the difference in consistency between formal models – and the ‘relative’ consistency of a formal model and the world.
- Only humans can deal with the latter concept, while computers are just very, very good on the former.