TU Delft
Education Type
Education print this page print this page     
2012/2013 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
0/0/2/2 lecture + 0/0/4/4 lab
Education Period
Start Education
Exam Period
Course Language
Expected prior knowledge
- compiler construction (required)
- software engineering
- web programming (advised)
Course Contents
Note: lectures for this course are not pre-scheduled. The organization of the course
will depend on the number of students that register. If you are interested in taking
this course register in Blackboard _and_ send an email with motivation to Eelco
Visser e.visser@tudelft.nl by January 15, 2013.

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
modeling 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 emphasis of the course is on studying modeling through a number of case studies.
In the first part we study problems in modeling of regular web applications,
including domain modeling, and modeling of user interface, access control, data
validation, and search. In the second part we study modeling of larger domains by
capturing a domain analysis in the desgin and implementation of a domain-specific

The work on the case studies will be accompanied by a small number of lectures and
several design seminars.
Study Goals
- understanding the core concepts of model-driven software development

- modeling software systems using domain-specific modeling languages

- designing and implementing domain-specific languages capturing the
analysis of an application domain and its implementation techniques

- understanding and applying formalisms for declarative language definition

- understanding trade-offs in language design and code generation
Education Method
Lectures + lab assignments + homework assignments
Homework assignments + lab assignments