The
application of models to software development is a well-known approach
and has become even more popular with the introduction of the Unified
Modeling Language (UML). Despite the increasing standardization,
however, models have so far still been considered merely as
documentation since the relation between the developed models and the
code is intentional and not formal. In general software is enduring a
continuous change and as such the corresponding documentation must be
adapted together or it will become inconsistent. Moreover, the usage of
such models is largely depending on the interpretation of the software
developer, and as such leads only indirectly to the code. This is
the reason why models tend to be considered as an overhead, or even
unnecessary in current software projects. In Model-Driven Software
Development (MDSD) an entirely different approach is adopted with
respect to the usage of models. Models do not constitute documentation
but are considered equal to code. MDSD aims to utilize domain-specific
languages to create models that express application structure and
behavior in a more efficient way. The models are then
(semi)automatically transformed into executable code by model
transformations.
The course will teach the important concepts in
model-driven software development, the requirements for setting up a
model-driven approach, the state-of-the art MDE approaches, and the key
obstacles in MDSD projects.
The topics of the course are
summarized in the following:
- Rationale for Model-Driven Software
Development
- Evolution Problems of
Software Development
- Meta-Modeling
- Model-Driven Architecture (MDA)
- Software Factories
- Model-driven engineering
methodologies
- Model Transformations
- Model-to-Text Transformations
- Model-to-Model Transformations
- Domain-Specific Languages
- Adoption
Strategies for MDSD
- MDSD Tools
Prerequisites
All students should have followed the
course 'Object-Oriented Software Engineering'. There should not be any
conflict with other courses.
|
|