Meta-Object Facility

The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be created and manipulated. The official reference page may be found at OMG's website.[1]

Illustration of the Meta-Object Facility.


MOF was developed to provide a type system for use in the CORBA architecture, a set of schemas by which the structure, meaning and behaviour of objects could be defined, and a set of CORBA interfaces through which these schemas could be created, stored and manipulated.[2]

MOF is designed as a four-layered architecture. It provides a meta-meta model at the top layer, called the M3 layer. This M3-model is the language used by MOF to build metamodels, called M2-models. The most prominent example of a Layer 2 MOF model is the UML metamodel, 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 real-world objects.

Beyond the M3-model, MOF describes the means to create and manipulate models and metamodels by defining CORBA interfaces that describe those operations. Because of the similarities between the MOF M3-model and UML structure models, MOF metamodels 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.

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 compliance points for MOF:

  • EMOF for Essential MOF[3]
  • CMOF for Complete MOF[3]

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.

QVT, which introduces means to query, view and transform MOF-based models, is a very important standard, approved in 2008. See Model Transformation Language for further information.

International standard

MOF is an international standard:

MOF 2.4.2
ISO/IEC 19508:2014 Information technology — Object Management Group Meta Object Facility (MOF) Core
MOF 1.4
ISO/IEC 19502:2005 Information technology — Meta Object Facility (MOF)

MOF can be viewed as a standard to write metamodels, for example in order to model the abstract syntax of Domain Specific Languages. Kermeta is an extension to MOF allowing executable actions to be attached to EMOF meta-models, hence making it possible to also model a DSL operational semantics and readily obtain an interpreter for it.

JMI defines a Java API for manipulating MOF models.

OMG's MOF is not to be confused with the Managed Object Format (MOF) defined by the Distributed Management Task Force (DMTF) in section 6 of the Common Information Model (CIM) Infrastructure Specification, version 2.5.0.[4]

See also


  1. ^ OMG's MetaObject Facility
  2. ^ "Common Facilities RFP-5: Meta-Object Facility" (PDF). Object Management Group. 2 May 1996. Retrieved 14 January 2014.
  3. ^ a b "OMG Meta-Object Facility (MOF) Core Specification, Version 2.4.1". Object Management Group. p. 1. Retrieved 17 February 2014.
  4. ^ Common Interface Model (CIM) Interface Structure, version 2.5.0

Further reading

External links

Common warehouse metamodel

The common warehouse metamodel (CWM) defines a specification for modeling metadata for relational, non-relational, multi-dimensional, and most other objects found in a data warehousing environment. The specification is released and owned by the Object Management Group, which also claims a trademark in the use of "CWM".

Eclipse Modeling Framework

Eclipse Modeling Framework (EMF) is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model.

From a model specification described in XML Metadata Interchange (XMI), EMF provides tools and runtime support to produce a set of Java classes for the model, a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. Models can be specified using annotated Java, UML, XML documents, or modeling tools, then imported into EMF. Most important of all, EMF provides the foundation for interoperability with other EMF-based tools and applications.

Enterprise Distributed Object Computing

The UML profile for Enterprise Distributed Object Computing (EDOC) is a standard of the Object Management Group in support of open distributed computing using model-driven architecture and service-oriented architecture. Its aim is to simplify the development of component based (EDOC) systems by providing a UML-based modeling framework conforming to the MDA of the OMG.

The basis of EDOC is the Enterprise Collaboration Architecture, ECA, meta model that defines how roles interact within communities in the performance of collaborative business processes.

Framework-specific modeling language

A framework-specific modeling language (FSML) is a kind of domain-specific modeling language which is designed for an object-oriented application framework.

FSMLs define framework-provided abstractions as FSML concepts and decompose the abstractions into features. The features represent implementation steps or choices.

A FSML concept can be configured by selecting features and providing values for features.

Such a concept configuration represents how the concept should be implemented in the code. In other words, concept configuration describes how the framework should be completed in order to create the implementation of the concept.


Graph Rewriting and Transformation (GReAT) is a Model Transformation Language (MTL) for Model Integrated Computing available in the GME environment. GReAT has a rich pattern specification sublanguage, a graph transformation sublanguage and a high level control-flow sublanguage. It has been designed to address the specific needs of the model transformation area. The GME environment is an example of a Model Driven Engineering (MDE) framework.

Java Metadata Interface

Given that metadata is a set of descriptive, structural and administrative data about a group of computer data (for example such as a database schema), Java Metadata Interface (or JMI) is a platform-neutral specification that defines the creation, storage, access, lookup and exchange of metadata in the Java programming language.


Kermeta is a modeling and programming language for metamodel engineering.

Knowledge Discovery Metamodel

Knowledge Discovery Metamodel (KDM) is a publicly available specification from the Object Management Group (OMG). KDM is a common intermediate representation for existing software systems and their operating environments, that defines common metadata required for deep semantic integration of Application Lifecycle Management tools. KDM was designed as the OMG's foundation for software modernization, IT portfolio management and software assurance. KDM uses OMG's Meta-Object Facility to define an XMI interchange format between tools that work with existing software as well as an abstract interface (API) for the next-generation assurance and modernization tools. KDM standardizes existing approaches to knowledge discovery in software engineering artifacts, also known as software mining.


MOF may refer to:

Managed Object Format, a textual representation of the Distributed Management Task Force (DMTF) Common Information Model (CIM)

Meta-Object Facility, a meta-model used to formally define Unified Modeling Language (UML)

Metal–organic framework, a chemical compound formed of metal ions and organic chemical components

Midlothian Oat Flour, a brand of gruel; see Scott's Porage Oats

Multiple organ failure, alternate term for Multiple organ dysfunction syndrome, a medical condition

Microsoft Operations Framework, a set of operational guidelines based on the Information Technology Infrastructure Library (ITIL)

Meilleur Ouvrier de France ("Best Worker of France"), a French competition for artisanal mastery

Ministry of finance, a government department headed by a Finance minister, responsible for tax collection and other money-related activities

Mountain of Faith, the tenth game in the Touhou series of shoot 'em up games

Monsters of Folk, an American folk group

Mof, a Dutch slur referring to Germans

MOF, IATA airport code for Frans Seda Airport, on the island of Flores in Indonesia

Museum of Flight, air and space museum in Seattle, United States of America


A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for modeling a predefined class of problems. As its name implies, this concept applies the notions of meta- and modeling in software engineering and systems engineering. Metamodels are of many types and have diverse applications.

Model-driven architecture

Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.

Model-driven engineering

Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the knowledge and activities that govern a particular application domain, rather than the computing (i.e. algorithmic) concepts.

Object Constraint Language

The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard. Initially, OCL was merely a formal specification language extension for UML. OCL may now be used with any Meta-Object Facility (MOF) Object Management Group (OMG) meta-model, including UML. The Object Constraint Language is a precise text language that provides constraint and object query expressions on any MOF model or meta-model that cannot otherwise be expressed by diagrammatic notation. OCL is a key component of the new OMG standard recommendation for transforming models, the Queries/Views/Transformations (QVT) specification.


QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group.


SmartQVT is a full Java open-source implementation of the QTV-Operational language which is dedicated to express model-to-model transformations. This tool compiles QVT transformations into Java programs to be able to run QVT transformations. The compiled Java programs are EMF-based applications. It is provided as Eclipse plug-ins running on top of the EMF metamodeling framework and is licensed under EPL.

Software Metrics Metamodel

The OMG Structured Metrics Metamodel (SMM) specification defines a standard Metrics Metamodel. It is a publicly available specification from the Object Management Group (OMG). SMM specifies a metamodel for defining, representing and exchanging both measures and measurement information related to any structured information model, such as the OMG Meta Object Facility (MOF™) standard, defining an XMI interchange format between metric extraction tools. It is used to maintain metrics by a number of other OMG specifications such as the Knowledge Discovery Metamodel and the Value Delivery Metamodel.

Unified Modeling Language

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.The creation of UML was originally motivated by the desire to standardize the disparate notational systems and approaches to software design. It was developed by Grady Booch, Ivar Jacobson and James Rumbaugh at Rational Software in 1994–1995, with further development led by them through 1996.In 1997 UML was adopted as a standard by the Object Management Group (OMG), and has been managed by this organization ever since. In 2005 UML was also published by the International Organization for Standardization (ISO) as an approved ISO standard. Since then the standard has been periodically revised to cover the latest revision of UML.

Value Delivery Modelling Language

Value Delivery Modeling Language (VDML) is a standard modeling language for analysis and design of the operation of an enterprise with particular focus on the creation and exchange of value.In 2009, the Object Management Group (OMG) launched a Request for Proposal (RfP) to develop a standard for value modeling. The goal of this RfP is to integrate the different existing value models and give a complete overview of the business logic of an organisation. To reach this goal, the standard has to satisfy nine requirements:

The metamodel must satisfy the characteristics of the Meta-Object Facility (MOF) metamodel. MOF is a standard developed for model-driven engineering and is structured in 4 layers. The top layer (M3 model) consists of a language that is used to construct metamodels. These metamodels are the second layer (M2 model) and they describe the third layer (M1 laer). The last layer, the data layer is used to describe real objects.

The metamodel must support the analysis of the activities of the value chain to support the identification of differentiators. The internal value chain should as such be part of the metamodel.

A capability analysis must be possible. This is closely linked to the second requirement. A capability is the possibility to execute some sort of activity. The quality of an activity is as such dependent on the capabilities of the organisation. As such the metamodel should include a way to analyse these capabilities.

The value model should have an adequate level of detail to include both activities and capabilities on the operational level. However a value model focuses on the inputs and outputs unlike a process model such as BPMN.

The value model should be able to aggregate activities at multiple levels to analyse them from different angles (e.g. strategic vs operational).

It should be possible to couple performance- and cost aspects to the activities

The relationships with other organisations such as competitors and strategic alliances should be included.

The events that trigger an activity should be included in the metamodel

The user should be able to include its own specifications.The VDML standard integrates 7 existing value models:

Porter's Value Chain

Business Model Ontology of Osterwalder

Verna Allee's Value Network Analysis

E3-Value analysis

Resources, Events, Agents (REA) analysis

Value Stream Mapping

Service-Oriented Business Architecture analysisThe use of VDML diagrams to support business model innovation is discussed inVDML has been applied to a use case in manufacturing. It demonstrates the use of VDML for modeling and analysis of a proposed change to an

as-is business system.

XML Metadata Interchange

The XML Metadata Interchange (XMI) is an Object Management Group (OMG) standard for exchanging metadata information via Extensible Markup Language (XML).

It can be used for any metadata whose metamodel can be expressed in Meta-Object Facility (MOF).

The most common use of XMI is as an interchange format for UML models, although it can also be used for serialization of models of other languages (metamodels).

ISO standards by standard number

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.