Model-Driven Engineering with Eclipse Epsilon

Learn model-driven engineering by doing it: describe systems as models, define the languages they are written in, and let tools query, check, transform and generate from them. You can run every example from your browser in the Eclipse Epsilon Playground.

10 modules36 hoursEN / 中文

How to study

Each module takes three to four hours. Read a section, then press Open in Playground on its examples. The Epsilon Playground opens with the example loaded, so you can run it, change it and run it again. Nothing needs installing until Module 9.

The output under each example was produced by Eclipse Epsilon 2.8.0 when the page was built. The Playground may run a newer Epsilon, word some messages differently and leave out warnings about the model. Changes you make in the Playground are not saved; use its Download button to keep your work.

Every module ends with exercises with worked solutions and a short self-check quiz. Your progress is saved in this browser and shared by the English and Chinese editions.

The modules

Module 01
What is model-driven engineering?
Models, metamodels and conformance; why automate with models; the four model-management tasks; a first tour of the Epsilon Playground.
Available · 3 hours
Module 02
Metamodelling
Design a metamodel in Emfatic: classes, attributes, references, containment, opposites, inheritance and enumerations.
Available · 4 hours
Module 03
Building and viewing models
Write models in Flexmi's XML and YAML flavours, resolve references by name, read conformance warnings and draw model diagrams.
Available · 3 hours
Module 04
Querying models
Navigate and query models with EOL: collections, first-order operations, operations on types and model changes.
Available · 4 hours
Module 05
Validating models
Express well-formedness rules in EVL with constraints, critiques, guards and fixes.
Available · 3 hours
Module 06
Generating code and text
Generate Java, HTML and diagrams from models with EGL templates and EGX rules.
Available · 4 hours
Module 07
Model-to-model transformation
Map one metamodel onto another with ETL rules, guards, equivalents and lazy rules.
Available · 4 hours
Module 08
MDE meets LLMs
Let a language model draft metamodels and programs, check the drafts with Epsilon, and generate prompts from models.
Available · 3 hours
Module 09
From Playground to real projects
Install Eclipse Epsilon, run programs from Ant, Maven and Java, and work with models that are not EMF models.
Available · 4 hours
Module 10
Capstone: MiniJDL
Build a JHipster-style entity language end to end: metamodel, models, validation, generation and transformation.
Available · 4 hours

Acknowledgements

This series draws on Dimitris Kolovos's writing on model-driven engineering, adapted and credited where it is used: Model-Driven Engineering Terminology, Metamodelling with ChatGPT and Minimal JHipster JDL Monolith Example. The examples were written for this series. The running component-and-connector example was inspired by his metamodelling post and by the component example in the Epsilon Playground.

Eclipse Epsilon is an open-source Eclipse Foundation project led from the University of York. Its Playground, hosted at the University of York, makes every example in this series runnable from a browser.