Model-driven software development aims to improve software developmentby employing high-level, domain-specific models in the implementation,integration, maintenance, and testing of software systems. Modelscapture designs at a higher-level of abstraction. Unlike technicaldocumentation which has a fragile connection to the implementation ofa software system, models are an integral part of the software lifecycle. Developers translate designs into models for an appropriatemeta-model, which are then automatically transformed toimplementations. Thus, with an appropriate modelling language, theeffort of producing a new software system decreases and maintenance isreduced to model maintenance.

This course studies the paradigm of model-driven software developmentand the methods and techniques available for its realization. Topicsinclude modeling, meta-modeling, technical spaces, domain analysis,domain-specific languages, code generation, and modeltransformation. The course will consist of lectures and a series ofpractical assignments in which all aspects of MDSD, from modeling, tolanguage design and code generation will be exercised.

Study Goals

The goal of this course is to achieve a thorough understanding of thecore concepts of model-driven software development: