More Expressive Models

The current object-oriented paradigm has inherent limitations that prevent us from modeling certain domains in a way that corresponds to abstractions we are used to in natural language. This may produce serious problems, because we may be forced to overload existing classification levels, which compromises readability, integrity and maintainability of software. The following diagram represents a multi-level models with the FMMLx. It illustrates that multi-level model promote reuse by allowing to express knowledge about a domain on the highest possible level, which in turn also contributes to maintainability.

Multi-level modeling corresponds pretty well to the way we conceptualize complex domains. In particular, we sometimes do not make a clear distinction between instantiation or specialization – both may make sense. However, it is an iron law of the existing paradigm that there is a clear dichotomy between instantiation and specialization. Instantiation of attributes we know of already on a higher level may sometimes be deferred to lower levels – not possible in the traditional paradigm.  (Meta) classes may have relevant state – again not possible with main-stream object-oriented languages. (Meta) classes may have features that need to be derived or calculated. Classes cannot execute methods in the traditional paradigm.