The course Model-Driven Software-Engineering(RCSE) is offered by the Systems and Software Engineering group in winter semester.

We offer usually two lecture hours per week throughout the semester plus seminar (2+1 SWS).


The purpose of this course is to introduce students to model-driven software engineering practices where models (e.g., software components, activity diagrams, state- or flow charts, etc.) are not used as documentation and reasoning artifacts solely but are first-class products from which other modeling, simulation artifacts or executable source code can be produced.

Students will first learn about appropriate methodologies and suitable tooling support for model-driven software engineering. Then, they will develop their own domain-specific Language in small groups (up to 2 students) and implement a dedicated development environment. Finally, they create a model-to-text generator to generate executable source code from models of their own DSL.

Therefore, the course is a combination of lectures in which the fundamentals of model-driven software engineering are taught (e.g., the definition of the abstract syntax, model notations, and the semantics of DSLs) and practical exercises (e.g. using simple microcontrollers) in which the learned methods of model-driven software engineering are used in practical applications.

Further Information

  • Moodle page for the lecture (All information for participants of the lecture, organization, slides, ...)
  • Module description of the class

Table of Content

  • Introduction
  • Fundamentals
  • Meta-Metamodel (MOF/ ECore)
  • Metamodel ((UML-) Structural Modeling)
  • Model queries (OCL/AQL)
  • Behavioral Modeling (State-Chart, Activities)
  • Concrete Syntax
  • Model Transformation (M2Text/ QVT)
  • Model Persistence (XMI/ Xtext)
  • Fundamentals of Software Development for Embedded Systems (e.g. Arduino IDE)
  • Metamodel
  • Viewpoint Specification
  • Tools
  • Properties and Validation
  • Model to Text Generation

Master "Research in Computer & Systems Engineering": 5 LP (credit points)

Prior Knowledge

Bachelor in Computer Science, Computer Engineering or equivalent.

Fundamental knowleges in an objectoriented programming language. Fundamental Software-Engineering knowleges and knowledge of softwarte system modeling (UML).