Previous | Table of Contents | Next |
This Clause describes the model that defines the MOF. The MOF provides a set of modeling elements, including the rules for
their use, with which to construct models. Specifically, the MOF modeling elements support development of metamodels. This
focus enables the MOF to provide a more domain-specific modeling environment for defining meta-models instead of a general-purpose
modeling environment.
A well-designed modeling tool or facility should be based on a meta-model that represents the modeling elements and the rules
provided by the tool or facility.
Every meta-model is also a model. If the MOF Model described in this sub clause is the meta-model for the MOF, where is the
model for this meta-model? Formally, the MOF is defined in itself; that is, the modeling elements defined in the MOF Model
and provided by the MOF are used to define the MOF Model itself. In essence, the MOF Model is its own meta-model. However,
this circular definition does not support presentation of the model. Therefore, this specification describes the MOF narratively
and through the use of UML notation, tables, and Object Constraint Language (OCL) expressions.
Note that the use of UML notation is a convenience to the designers of the MOF and to the readers of the MOF specification.
The semantics of the MOF Model are completely defined in the MOF specification and do not depend on the semantics of any other
model. The MOF interfaces used to manipulate meta-models are dependent on CORBA in that these interfaces are specified using
CORBA IDL.
A significant amount of the MOF Model syntax and semantics definition is constraint-based. This specification describes the
constraint expressions as clearly as possible. In addition, the specification provides a reference to the OCL expression that
defines each constraint.
The OCL, which is defined in the UML 1.4 specification (http://www.omg.org/technology/documents/formal/uml.htm), provides
a small set of language elements used to define expressions. As an expression language, OCL cannot change the state of objects;
however, it can express constraints (including invariants, preconditions, and post-conditions). OCL expressions use operations
defined in the MOF Model with the attribute isQuery set to TRUE. (Such operations do not change the state of the object.)
To ensure complete specification of constraints, this document provides OCL definitions for MOF-defined operations used in
OCL expressions. In addition, to avoid ambiguity or misinterpretation this specification uses OCL to define a few of the most
complex concepts of the MOF Model.
The interfaces through which the MOF is utilized are generated from the MOF Model. However, these interfaces do not provide
the semantic information necessary to determine the behavior of their operations. Therefore, it is essential to understand
the MOF in terms of its model and related semantics, not just its interfaces.