Model-Driven Software Development
Starting in the academic year 2008-2009 (second semester) I will teach a master's course about 'Model-driven Software Development'. I'm planning to develop my own material for the course.
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, software architecture, 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.
Material
Lecture notes on
Domain-Specific Language Engineering