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
A data model is an abstract model that organizes elements of data and Standardization, standardizes how they relate to one another and to the properties of real-world Entity, entities. For instance, a data model may specify that the data element ...
.
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
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
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.
Ecore
Ecore is the core (meta-)model at the heart of EMF. It allows expressing other models by leveraging its constructs. Ecore is also its own metamodel (i.e.: Ecore is defined in terms of itself).
According to
Ed Merks
Ed, ed or ED may refer to:
Arts and entertainment
* ''Ed'' (film), a 1996 film starring Matt LeBlanc
* Ed (''Fullmetal Alchemist'') or Edward Elric, a character in ''Fullmetal Alchemist'' media
* ''Ed'' (TV series), a TV series that ran fro ...
, EMF project lead, "Ecore is the defacto reference implementation of
OMG's
EMOF" (Essential Meta-Object Facility). Still according to Merks, EMOF was actually defined by OMG as a simplified version of the more comprehensive 'C'MOF by drawing on the experience of the successful simplification of Ecore's original implementation.
Using Ecore as a foundational meta-model allows a modeler to take advantage of the entire EMF ecosystem and tooling - in as much as it's then reasonably easy to map application-level models back to Ecore. This isn't to say that it's best practice for applications to directly leverage Ecore as their metamodel; rather they might consider defining their own metamodels based on Ecore.
See also
*
Acceleo
Acceleo is an open-source code generator from the Eclipse Foundation that allows people to use a model-driven approach to building applications. It is an implementation of the " MOFM2T" standard, from the Object Management Group (OMG), for perfo ...
, a code generator using EMF models in input
*
ATL, a model transformation language
*
Connected Data Objects Connected Data Objects (CDO) is a free implementation of a Distributed Shared Model on top of the Eclipse Modeling Framework (EMF).
With CDO, programmers can easily enhance existing EMF models in such a way that they can be stored and subsequently ...
(CDO), a free implementation of a
Distributed Shared Model Distribution may refer to:
Mathematics
*Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations
*Probability distribution, the probability of a particular value or value range of a varia ...
on top of EMF
*
Generic Eclipse Modeling System
Generic Eclipse Modeling System (GEMS) is a configurable toolkit for creating domain-specific modeling and program synthesis environments for Eclipse. The project aims to bridge the gap between the communities experienced with visual metamodelin ...
(GEMS)
*
Graphical Modeling Framework (GMF)
*
List of EMF based software
*
Model-driven architecture
*
Xtext
References
External links
EMF project page
Eclipse (software)
{{soft-eng-stub