Model semantics and abstraction level

The key success factor in modelling and model value is the chosen abstraction level.  The next diagram is one of my favourites and it indicates the relationship between the concepts and the model’s chosen level of abstraction.

This way of drawing the triangle shape gives actually somewhat wrong idea of change of semantics when moving up in the triangle. The right shape is step triangle :

This actually means that the very tip of the triangle is semantically empty. I come very often across model which level of abstraction is in that area an which thus are meaningless.

When we consider the theoretic OO approach, then we start be defining our presentation (see. Axiomatic  OO  ) The next class diagram describes this:

The domain of this model is an object class model. This gives the form that the model has to confirm. This doesn’t say anything about semantic – this is a possibility of semantics.

Then we have a semantic aspect to the model. Here we also have a form for that, but it is considerable looser construct that the previous is. I have created a diagram of this too, but it’s form is my creation and it is not UML :

Here the meaning of the used signs are following:  This rectangle with its background colour presents a class category – a set of similar type of classes. The meaning of the category is shown in its name (this is by the way Peter Coads class colour categorisation).

The other used sign is a dotted line and a text these describes a possible association type between two classes from same or different categories. This also gives the model high level possibility for semantics.

A real OO-class diagram is a utilisation of this two possibilities such as the following:

All the semantic – this is actually the real beef of the model – is expressed in natural language. This materialize in class names, method names , attribute names and association names.

The trouble often with novice modellers is that they somehow wrongly think that the higher the abstraction is the more effective (the horrible term is reuse ) the model is. The sad thing is that the truth is almost exact opposite!  In these models class names a very generic and sometimes cryptic. A good sanity check is to take the class names to a business professional, that has not been in any contact with this modelling and ask him or her to explain these concepts. If the person either says that she or he doesn’t know or fails otherwise in more than 20% of the name, then there is something terribly wrong with the only valuable thing in the model namely semantics!

So if you come across following “domain model” or similar:

you will now know that this is a sad misunderstanding, a bluff or a lie and you are not misled or confused any more.