TU Delft
Education Type
Education print this page print this page     
2013/2014 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
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, 2014.

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. The course builds on the techniques for programming language design and implementation studied in the compiler construction course (IN4303).
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
This is a project-driven course. In a collaborative project with 2 to 4 students you develop a domain-specific modeling language using the Spoofax Language Workbench. In addition you study literature on DSL design and implementation.
The assessment for the course consists of a project report written by the group and an individual essay on model-driven software development.