Datasheet
20
Part I ✦ An Introduction to UML
called M2), a model defining the concepts required to build a model and to store
the model in a repository. The model is stored by representing the metadata as
CORBA objects.
Models, metamodels, and meta-metamodels are more fully explained in Chapter 2.
Currently the MOF defines all the foundation concepts needed to build the two
modeling languages UML and CWM. Now just to make this a little more confusing,
both UML and CWM are themselves metamodels. They are models that define mod-
eling languages. When a metamodel like MOF is used to define another metamodel,
it becomes a meta-metamodel, or M3 for short. Since all elements defined by UML or
CWM conform to the MOF standard, it is possible to define a standardized reposi-
tory for all data generated in UML or CWM or, in the future, any other languages
derived from MOF.
The model elements in the UML are created, or instantiated, from model elements
defined in the MOF. For example, the MOF defines the concept “Classifier.” UML
defines a concept called “Classifier” that inherits the description in the MOF and
then adds to it for the purpose of modeling objects. CWM also inherits “Classifier”
but for a different reason: CWM adds to the “Classifier” definition to support model-
ing data. Figure 1-2 illustrates this relationship between the three models.
Figure 1-2: The relationship between the MOF and the UML
and CWM languages.
©OMG 2.0
MOF is also part of the long-term OMG strategy to support the creation and
exchange of a variety of metamodels across diverse repositories. For example,
using the MOF, a UML model might be transmitted between tools by different ven-
dors. Likewise, a UML object model might be ported to a data-modeling tool in
order to derive a logical data model from the object model.
<<instanceOf>> <<instanceOf>>
M3
M2
<<metamodel>>
MOF
<<metamodel>>
UML
<<metamodel>>
CWM
Cross-
Reference
03 526049 Ch01.qxd 8/20/03 11:47 PM Page 20