Skip to content

Your MDE platform

Document Actions
OpenEmbeDD may become YOUR MDE platform, tuned to your Domain Specific Language(s).

As a simple and understandable example, this page is based upon a College metamodel you may not encounter in your daily activities but with enough logic and few elements to present concepts without headache.

Step 1: define your DSL metamodel with Ecore

You can graphically design your metamodel using the Topcased Ecore modeler.

CollegeMM01 thumb

You get a .ecore file you can use as the reference for model instance types in other OpenEmbeDD MDE tools.

Step 2: generate the DSL model editor with EMF

Once you get your Ecore metamodel, you may process it through EMF in order to generate the corresponding model editor.
Create an EMF model base upon your metamodel.

CollegeMM02 thumb

You just have to tune few parameters ...

CollegeMM03 thumb

... before you ask EMF to generate the reflexive editor.

CollegeMM04 thumb

The result is a deidcated Eclipse plug-in, with a New wizard for your models.

CollegeMM05 thumb

You now have a tool to create models corresponding to your metamodel.

CollegeMM06 thumb

Step 3: build modelers you need for DSL with Topcased

With the same principle, the Topcased modeler generator allows you to realize graphical editors for parts of your metamodel. This is done through configurators you create upon the ecore metamodel.

CollegeMM07 thumb

After some parameterizing work, you get a graphical tool users can modelize with.

CollegeMM08 thumb

Step 4: develop transformations & processes on the DSL

Once your metamodel is defined with graphical modeler, you can develop a large MDE processfor the corresponding models.

Write transformations with ATL

The ATL language offers a natural way to transform models from one kind to another form.

CollegeMM09 thumb

The next sample presents a switch of college student into university students.

CollegeMM10 thumb

Add behavior and concepts with Kermeta

You can use Kermeta aspects in order to improve and extend any given metamodel. Add new types, new operations; attach some code to existing elements.

As an example, you may add a Note element into the College metamodel in order to manage students marks.

CollegeMM11 thumb