Home   :   Matrix Diagram   :   Metamodel Levels

The Metamodel Levels


The OMG promotes the Four Layer Architecture which defines (the first) four metamodel levels.  The levels have been designated M0, M1, M2 and M3 in order to standardise the terminology.


From an analyst's point of view, M0 (Instance Models) is an unstructured collection of things that correspond to entities in the Real or Imagined World.  The entities may physically exist (like Hot Water Tank E), be well known abstract concepts (like Allan's Bank Account) from the subject matter under investigation or they may be hypothetical (Pipe Path #7139), discovered or invented by the analyst during modeling to complete the operation of the model.


Under the prevailing rules, policies and requirements, the analyst uses a process of analysis based abstraction to identify groups of similar entities with similar characteristics and behaviour (such as the many Hot Water Tanks, Bank Accounts or Pipe Paths).  These become classes in the Class Diagram being built at M1 (Class Models) if using xUML.  In the same way, relationships are also classified and are documented as Associations of the Class Diagram.


The analyst concentrates solely on building Class Models at M1 and does not particularly seek to create anything at M0.  There is simply no need, unless enumerating the Real World instances helps in the analysis.  Later, when the system is built and working it will manipulate instances at M0 as part of its operation and impact in the Real World, though not necessary the same things that were originally analysed.


Metamodels at M2 are not usually of much concern to analysts.  Instead, Software Architects, Model Compiler Writers and Tool Developers create models at M2 to specify how code generation is to be performed.

Copyright 2017 Dark Matter Systems Ltd. All Rights Reserved.