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.

Next: A glossary of model driven engineering