Previous | Table of Contents | Next |
The architecture that is centered around the Core package is a complementary view of the four-layer metamodel hierarchy on
which the UML metamodel has traditionally been based. When dealing with meta-layers to define languages there are generally
three layers that always have to be taken into account:
1. the language specification, or the metamodel,
2. the user specification, or the model, and
3. objects of the model.
This structure can be applied recursively many times so that we get a possibly infinite number of meta-layers; what is a metamodel
in one case can be a model in another case, and this is what happens with UML and MOF. UML is a language specification (metamodel)
from which users can define their own models. Similarly, MOF is also a language specification (metamodel) from which users
can define their own models. From the perspective of MOF, however, UML is viewed as a user (i.e., the members of the OMG that
have developed the language) specification that is based on MOF as a language specification. In the four-layer metamodel hierarchy,
MOF is commonly referred to as a meta-metamodel, even though strictly speaking it is a metamodel.