Modelling is a very unique ability of humans. The concept of abstracting something, reusing it, and reapplying it to another instance. The ability to close our eyes and imagine watching ourselves from a different corner of the room. The ability to empathise with another human being. It has allowed us to develop language, advance technology and mature civilisation. So how can we continue to use modelling today, in technology, socialising and day to day business?
The Modelling Hierarchy
There are four layers in the modelling hieararchy formerly designated as M0, M1, M2 and M3. If we start from the M0 layer, this is what is real, the keyboard you are touching, the screen you are looking at and the chair you are sitting in.
The M1 layer is the first layer of abstraction. For example, the chair that you are sitting in probably has a design drawing created by the manufacturer and this drawing can be reused to mass produce that same chair, likewise with the keyboard and the computer screen.
The M2 layer is yet another abstraction of the M1 layer. In this case, the drawing may have been constructed with a software CAD tool, or hand drawn by a designer. In both instances, the software CAD tool would have been designed and developed for the use of creating designs for real life objects. For the hand drawn design, pencils, paper, rulers and other drawing tools would have needed to be developed to create the drawing. The tools used to create the design could also be used to create designs of other things like a rubbish bin or a car tyre.
The next layer, M3, is where things get a bit tricky, it is an abstraction of the M2 layer. The best way I can explain this, for the current example, is that it represents the concept of creating real-world objects with raw materials. Alternatively, the M0 layer could also be described as a model of a model of a model, or meta-meta-model.
To make things clearer, let’s apply the modelling hieararchy to another concept, language. Starting at the concept of language and communication, the M3 layer. We can instantiate this by creating rules for language. i.e. there should be nouns, verbs, pronouns etc. Essentially, we create a model for creating any language, the M2 layer.
We can then instantiate the M2 layer creating the M1 layer, we could instantiate both French and English as an example. A statement in french might be structured:
[subject pronoun] [conjugated verb] [preposition][definite article][noun][adjective]
However, a statement in English might be structured:
[subject pronoun] [conjugated verb][adjective][definite article][noun]
Finally, we can instantiate the M0 layer by constructing the sentences in both languages. “He ran to the green shop” or “il courut à la boutique verte”.
We can see from the example above that, even at the M2 layer, we could have defined a musical layer of communication, and then gone to define notes and chord structures and instantiated that by creating a song.
In the case of computing, the Meta Object Facility (MOF) is the M3 layer which describes the structure of the Unified Modelling Language (UML), M2. A class diagram, behavioural diagram and use case diagram would be examples of instances of the UML. The models can then be used to create the software code, M1. Note that UML is a modelling language, it is a syntax for modelling. While some people complain about its many shortfalls, its one advantage is that it is a well known standard and meta-model. A non-english speaking russian could essentially communicate an entire software design to a non-russian speaking Australian.