Modeling: EMF

Increase productivity by generating high-quality code from models.

EMF
In Model Driven Engineering (MDE) applications are defined by models, enabling code to be automatically generated through a higher level of abstraction than source code. As a developer, you can think about modeling as a way to increase your productivity by avoiding manually writing similar parts of an application in different places, over and over again.

Why EMF?

Reduce misunderstandings

By developing domain-specific languages (DSL) the specification of an application can even be performed by business departments, reducing organizational gaps and misunderstandings between the customer and the development team. As a business analyst, you can think about modeling as a way to directly create parts of the application in an understandable language instead of describing the requirements to a development team.

Decrease Complexity

Models provide a higher level of abstraction than source code. Developers can focus on key aspects of an application, instead of dealing with the complexities inherent in a programming language. The creation of custom models, so-called Domain-Specific Languages (DSL), can make the application understandable for business departments without a background in programming. The means that business experts can collaborate directly on the model with developers, rather than communicating through requirements documentation.

Improve Efficiency

Modeling allows the generation of parts of an application instead of implementing the source code manually. This increases the development speed and even more importantly, it increases the implementation quality. Models can be checked for consistency before source code is created from them. If an application evolves, changes only have to be applied in the model, while the source code can be re-generated automatically.

Benefit from the Eclipse community

The Eclipse Modeling project is one of the largest projects in the Eclipse ecosystem. A continuously increasing number of open-source frameworks provide a very rich feature set that can be used in your projects. In turn, the core frameworks, such as the Eclipse Modeling Framework (EMF) have been developed by a community of experts from different companies, over a period of more than 10 years. This technological stability is an important cornerstone of the project and has attracted many tools and frameworks developers to adopt the Eclipse Modeling Technology.

Getting started with EMF

What every Eclipse Developer should know about EMF

Jonas Helming and Maximilian Koegel, March 21st 2011, EclipseCon

This tutorial introduces how to use EMF and explains the basics. It shows how to build a simple data-centric application based on EMF including the UI, how to define a model in EMF and how to generate code from it. In the second part, there will be a brief overview of the most important additional technologies. The projects are EMF Compare, GMF, EEF, EMF Client Platform, Teneo, CDO, EMFStore, EMF Query 2 and EDAPT.

EMFStore: a model repository for Eclipse

Jonas Helming, July 2011, Eclipse Embedded Day

Models are widely used in software projects for communication, simulations and for code generation. In this context, the models are collaboratively developed and as such a version control system is required. However, existing versioning systems such as SVN or GIT are focused on textual artifacts and do not work well for models.

The EMFStore is a repository and version control system for the Eclipse Modeling Framework (EMF) designed especially for models. Instead of versioning the textual serialization of a model, it allows semantic versioning of the model and as a result, supports merging and conflict detection more effectively.