Meta-object Facility Website Links For
Facility
 

Information About

Meta-object Facility




The Meta-Object Facility ('''MOF'''), is an Object Management Group (OMG) standard for Model Driven Engineering . MOF originated in the Unified Modeling Language (UML); the OMG was in need of a Meta-Modeling architecture to define the UML. MOF is designed as a four-layered architecture. It provides a meta-meta model at the top layer, aka the M3 layer. This M3-model is the language used by MOF to build meta-models, called M2-models. The most prominent example of a Layer 2 MOF model is the UML meta-model, the model that describes the UML itself. These M2-models describe elements of the M1-layer, and thus M1-models. These would be, for example, models written in UML. The last layer is the M0-layer or data layer. It is used to describe application data, and are thus instances of M1-models.

Beyond the M3-model, MOF describes the means to create and manipulate (meta-)models by defining CORBA interfaces that describe those operations. Because of the similarities between the MOF M3-model and UML structure models, MOF meta-models are usually modeled as UML class diagrams. A supporting standard of MOF is XMI , which defines an XML-based exchange format for models on the M3-, M2-, or M1-Layer.

MOF is a ''closed'' metamodeling architecture; it defines an M3-model, which conforms to itself. MOF allows a ''strict'' meta-modelling architecture; every model element on every layer is strictly in correspondence with a model element of the layer above. MOF only provides a means to define the structure, or Abstract Syntax of a language or of data.

In short MOF uses the notion of MOF::Classes (not to be confused with '''UML::Classes'''), as known from Object Orientation , to define concepts (model elements) on a metalayer. MOF may be used to define object-oriented metamodels (as UML for example) as well as non object-oriented metamodels (as a Petri Net or a Web Service metamodel).

Due to the fact that an element on the M2 layer may be considered in some cases as as an "object" (some kind of "instance" of an M3 model element) as well as a "class" (it is an M2 layer concept) the notion of a ''clabject'' has been proposed by Colin Atkinson and Thomas Kuhne.

Presently (May 2006), the OMG has defined three variants of MOF:
  • EMOF for Essential MOF

  • CMOF for Complete MOF

  • SMOF for Semantic MOF


The variant ECore that has been defined in the '''Eclipse Modeling Framework''' is more or less aligned on OMG's EMOF.

Another related standard is OCL , which describes a formal language that can be used to define model constraints by means of Predicate Logic .

A very important new standard is QVT . This allows to transform any MOF-based model into another MOF-based model. Furthermore, the transformation program itself is considered as another MOF-based model. Current examples of Model Transformation Language s (MTLs) are VIATRA , GReAT , AndroMDA , or ATL .

MOF is now an international standard:
: ISO / IEC 19502:2005 Information technology -- Meta Object Facility (MOF)

MOF can be viewed as a standard to write Metamodels or Domain Specific Language s.


SEE ALSO




EXTERNAL LINKS