Eclipse Modeling Framework (EMF) is an
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
-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
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
,
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, 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 perfor ...
, a code generator using EMF models in input
*
ATL
ATL may refer to:
Places
* Atlanta, a city in the U.S. state of Georgia
** Hartsfield–Jackson Atlanta International Airport (IATA airport code)
** Peachtree station (Amtrak station code)
* Attleborough railway station, located in Norfolk, Engl ...
, 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 metamodeling ...
(GEMS)
*
Graphical Modeling Framework (GMF)
*
List of EMF based software
*
Model-driven architecture
*
Xtext
Xtext is an open-source software framework for developing programming languages and domain-specific languages (DSLs). Unlike standard parser generators, Xtext generates not only a parser, but also a class model for the abstract syntax tree, as ...
References
External links
EMF project page
Eclipse (software)
{{soft-eng-stub