The focus of this course is model-driven (software) development.
We will discuss established concepts, techniques, and methods for:
- the specification of graphical and textual software languages;
- the specification of domain-specific (modeling) languages;
- the mapping between models on different abstraction layers;
- the verification of software artifacts;
- the application of software patterns.
In addition, we will give an overview for the process aspects of software development.
Other (equally important) topics, such as project management or configuration management are not part of this course.
Recommended prior knowledge:
- Good knowledge of the Unified Modeling Language (UML), esp.: activity models, class models, component models, interaction models (esp. sequence and collaboration models), state machines, use case models.
- Good knowledge of at least one object-oriented programming language.
- Basic knowledge of the Object Constraint Language (OCL), esp.: operations on collections, invariants, navigation, objects and properties, pre- and postconditions.
- Basic knowledge of the software development process (phases and activities, development cycle, evolutionary development, traceability).