Once you have an understanding of the key MDE concepts, you will want to learn about specific technologies that implement these concepts in different ways. We (aspire to, in due course!) offer a broad range of learning resources
covering many different technologies.
There are many different technologies available for you to use to build your MDE solutions. Fundamentally, these solutions fall into three categories:
- Foundational technologies for representing models
- Language workbenches — technologies for developing your own domain-specific modelling languages
- Model-management frameworks — technologies for doing more with models by transforming, analysing, updating, or improving them
Foundational technologies
We provide a learning resource covering the foundations of the Eclipse Modelling Framework (EMF), the MDE foundation technology provided by the Eclipse IDE. A lot of existing MDE technology (though not all of it) builds on EMF, so knowing about EMF will be useful foundation knowledge for making sense of these technologies.
Other foundational technologies exist (for example, for MDE in the context of Python or as embedded in different language workbenches like JetBrains MPS or MetaEdit+). Learning resources on these technologies will follow in due course. In fact, if you can provide a learning resource on these topics, do get in touch with us!
Language workbenches
A language workbench is software that allows the efficient construction of new domain-specific modelling languages and their supporting tool infrastructure. We currently have learning resources for two language workbenches:
- Xtext is an efficient language workbench for languages with a purely textual syntax. Xtext languages are great for users who already have some experience with programming-like uses of computers, but who would benefit from a bespoke language and tool infrastructure dedicated to their problem domain.
- JetBrains MPS is a language workbench for situations where it is useful to be able to mix different kinds of notations be they textual, mathematical, tabular, or graphical in one model. This can be particularly useful for users who do not have any prior computing experience, but need to be able to express their problems as naturally as possible.
Sébastien Mosser’s ArduinoML repository showcases several different language workbenches and other approaches for implementing the same domain-specific modelling language. Some of these are also described in this paper. This may be a useful starting point if you are trying to get a sense for the different technologies to make a decision about which one to use in your project.
More learning resources for other language workbenches will follow in due course. In fact, if you can provide a learning resource on these topics, do get in touch with us!
Model-management frameworks
A model-management framework offers a set of tools for working with models. Among others, these include tools and techniques for transforming models into other models (e.g., for use by an analysis tool), automated generation of program source code from models (so that the models become executable), model debugging, model evolution (to adapt the models to changes in the modelling language), and model optimisation (to find models that represent optimal solutions to a particular problem).
We currently provide a learning resource on the Epsilon toolkit.
More learning resources for other model-management tools and frameworks will follow in due course. In fact, if you can provide a learning resource on these topics, do get in touch with us!
Next: Making your models accessible