Fundamental MDE concepts
There are a few concepts you should understand to use MDE effectively. Here is a list. Further down, there are some links to material providing some background on these concepts.
- As an MDE user you should know about:
- Models — what they are and why they are important.
- Modelling languages and, in particular, the difference between general-purpose modelling languages (like UML or SysML) and domain-specific modelling languages (DSMLs).
- The general idea of what model transformations and code generators are and how they can help you automate software development
- Some examples of existing modelling tools.
- As someone developing MDE support for a project, you should probably also know about:
- Meta-models and how they are used to define the abstract syntax of a modelling language.
- Technologies for defining the concrete syntax of a modelling language — be it visual or textual.
- Using model transformations and code generators to define the semantics of a modelling language by translating models into other forms (e.g., into executable source code in a “regular” programming language).
- As a manager exploring whether to use MDE for a new project, you may also wish to learn about the cost–benefit arguments for MDE.
These two episodes of the Software Engineering radio give a (fairly high-speed) introduction: Part 1 and Part 2.
Codebots have created a series of articles introducing MDE and its core technologies. This will give you an overview of core concepts such as meta-modelling, code generation and model-to-model transformation as well as discussing model-based testing and integration with DevOps.