Modeling: EMF
Increase productivity by generating high-quality code from models.
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.