TU Delft
Education Type
Education print this page print this page     
2009/2010 Electrical Engineering, Mathematics and Computer Science Master Computer Science
Model-Driven Software Development
Responsible Instructor
Name E-mail
Prof.dr. E. Visser    E.Visser@tudelft.nl
Contact Hours / Week x/x/x/x
Education Period
Start Education
Exam Period
Course Language
Expected prior knowledge
- Language and Automata Theory
- Compiler Construction
Course Contents
Model-driven software development aims to improve software development
by employing high-level, domain-specific models in the implementation,
integration, maintenance, and testing of software systems. Models
capture designs at a higher-level of abstraction. Unlike technical
documentation which has a fragile connection to the implementation of
a software system, models are an integral part of the software life
cycle. Developers translate designs into models for an appropriate
meta-model, which are then automatically transformed to
implementations. Thus, with an appropriate modelling language, the
effort of producing a new software system decreases and maintenance is
reduced to model maintenance.

This course studies the paradigm of model-driven software development
and the methods and techniques available for its realization. Topics
include modeling, meta-modeling, technical spaces, domain analysis,
domain-specific languages, code generation, and model
transformation. The course will consist of lectures and a series of
practical assignments in which all aspects of MDSD, from modeling, to
language design and code generation will be exercised.
Study Goals
The goal of this course is to achieve a thorough understanding of the
core concepts of model-driven software development:

* Domain

- analysis and description of the domain of software systems
- technical domains vs business domains
- problem domain vs solution domain

* Model

- formal description of the results of domain analysis with models

* Modeling language

- meta modeling: formal description of the concrete and abstract
syntax of modeling languages
- meta meta modeling: description of the language of language

* Transformation

- definition of the semantics of models using transformations
- model-to-model transformation (desugaring)
- model-to-code transformation (code generation)
- static analysis of models
- local vs context-sensitive transformations
- template engines vs code generation by model transformation
- code quotation and quasi quotation

There are many ways in which these core concepts can be realized.

* Mechanims

- mechanisms for the realization of models, languages and transformations
- grammarware: contex-free grammars + rewriting and/or attribute grammars
- model ware: graph schemas + graph rewriting or object manipulation
- xml ware: XML schemas + XML transformation (XSLT)
- in this course the emphasis will be on the use of SDF for syntax
definition and Stratego for transformation; other approaches are

* Policies

- policies and trade-offs in the design of languages and transformations

* Methods

- methods for the systematic development of models, languages, transformations

* Economics

- when is it economically viable to apply model-driven software development
Education Method
Lectures and lab assignments.
Grades for lab assignments and written exam at the end of each quarter.