Model-Driven Engineering focusses on the use of models, i.e., suitable abstractions, as primary artefacts in (software) engineering processes. Important tasks include specifying these models (metamodelling), deriving new models from other models (model transformation), and keeping different but related models consistent (model synchronisation).
While it is important to develop an intuitive understanding for central concepts such as models, metamodels, and model transformations, it is equally important to establish solid formal foundations for at least the basic concepts. This is especially the case when providing reliable tool support (e.g., static analyses) for MDE activities.
This lecture, therefore, introduces basic MDE concepts including models, metamodels, and model transformations, providing a precise and detailed formalisation using very basic category theory.
The lecture is designed to be especially accessible to computer scientists, by providing a hands-on constructive mapping of all definitions and results to programs in a main stream OO language (Java).
The new FMDE lecture is designed to complement the existing MDSD lecture, so students can attend both, in any order.
If you have to choose between them, this is some advice:
- MDSD has a much broader scope, and aims to cover various MDE related topics. This means, however, that things can't all be handled in so much detail, but you do get a nice, general overview.
- In contrast, FMDE will focus on a few basic concepts, but do this in depth, providing a detailed formalisation and in-depth handling in the exercises. So you get a deep understanding of the most important core concepts.
- MDSD is especially useful for end-users of MDE technology, while FMDE tries to target potential developers of MDE technology.
- To enjoy FMDE you should probably not hate mathematics, and you must love programming (Java).