Meta-Object Facility - Metamodeling Architecture

Metamodeling Architecture

MOF is a closed metamodeling architecture; it defines an M3-model, which conforms to itself. MOF allows a strict meta-modeling 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. For defining metamodels, MOF plays exactly the role that EBNF plays for defining programming language grammars. MOF is a Domain Specific Language (DSL) used to define metamodels, just as EBNF is a DSL for defining grammars. Similarly to EBNF, MOF could be defined in MOF.

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).

As of May 2006, the OMG has defined two variants of MOF:

  • EMOF for Essential MOF
  • CMOF for Complete MOF

In June 2006, a request for proposal was issued by OMG for a third variant, SMOF (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 in terms of predicate logic.

A very important new standard is QVT which introduces means to query, view and transform MOF-based models (cf. the sections on Model Transformation Languages for further information).

Read more about this topic:  Meta-Object Facility

Famous quotes containing the word architecture:

    Poetry is not only dream and vision; it is the skeleton architecture of our lives. It lays the foundations for a future of change, a bridge across our fears of what has never been before.
    Audre Lorde (1934–1992)