Tuesday, September 28, 2004

MOF metalevels numbered upside down

For anyone who's read anything about MOF or MDA, the terms meta-level M0 - M3 will mean something. However that something will depend on what scenario you're discussing, and in most cases it will get very confused once you try and relate whatever you're talking about to the MOF metamodel, which is nominally at meta-level M3.

The example that usually gets (ab)used to explain these things is that the MOF meta-model is at M3. then the UML metamodel, which uses MOF as it's meta-language, is at M2. Then software designs written in UML have Classes in them, which are at M1, and then there are Objects that instances of the UML Classes, and these are at M0.

Sounds simple right? Then let's think about the Instance Diagram (or Interaction Diagram) in UML which expresses the relationships between the Objects. Now the Objects in the Instance Diagram are at M0, and so the Instance Diagram metamodels should be at M1, and the MOF, which is the langauge in which this metamodel is expressed should be M2.... but we already established that the MOF metamodel is always M3.

Why the inconsistency? Well the stock answer is that "It's all relative"... so for each example you have to start at M3 (the MOF metamodel) and count down... This is all very confusing, especially since the M-levels have summary names attached: "M3 = metametamodel, M2 = metamodel, M1 = model, m0 = instances. This is the real problem with this numbering scheme.

Proposal

We take a new leter - K - and start numbering the other way up: K0 is the MOF metamodel, and then every other model or artifact that has an "instance of" relationship to the MOF metamodel gets another number. Then the K-number is always relative to the MOF metamodel, and not some attempt to make an absolute characterisation of "how meta is it?".

Disclaimer: this is not solely my idea: it has been kicked around by myself and many DSTC and OMG colleagues for several years now, and it would be a brave person who claims authorship

0 Comments:

Post a Comment

<< Home