Model Based Software Development

Domain-specific languages (like the Matlab/Simulink library or the Verilog hardware
description language) are used in many engineering fields to model systems in the
design phase. DSLs, which always use textual syntax, require professional tool and
editor support. Although such a support might already be achieved for different
languages as a result of a large and costly software development effort, the basic
ideas of model-driven system engineering, namely, to extensively use models
during the whole design process, to abstract away from technological choices and to
facilitate the port to the specific target mean a viable technological solution for
DSLs as well.

The main benefits of model-driven engineering include the ability

  • to reduce costs by revealing design errors in early phases by running simulation
    or verification techniques on models, and
  • to automatically generate code from model-based specifications for different
    execution platforms and for large parts of the system.

The lecture presents several aspects of model-driven software engineering
including approaches, best practices, methodologies, and techniques for

  • defining application domain concepts in a model-driven way,
  • describing systems by models,
  • transforming models to other models, and
  • transforming models to text or program code.

Content of lectures:

  • Introduction and motivation
  • Metamodeling, XML schemas
  • Eclipse Modeling Framework (EMF)
  • Graph transformation
  • Model transformation
  • Bidirectional transformation
  • Template-based code generation
  • Editors for Domain-Specific Languages

Content of laboratory exercises: 

  • Metamodeling, EMF, code generation
  • Graph transformation
  • Model transformation
  • Template-based code generation

For all further information please consult the corresponding forum: