The lecture introduces model-driven development (Model-Driven Software Engineering, MDSE) in software modelling and development. The focus is on the OMG's viewpoint on model-driven development including OMG standards like MDA, QVT, or MOF. However, the lecture gives the background of the concepts introduced in these standards and relates them to other areas in software engineering:
Today, many software developing companies see model-driven software development as a real alternative for cost-effective and high-productive code development. In this sense it serves as counter-trend to software development offshoring. Aim of the lecture is to enable you to reason about model-driven aspects, technologies and tools, in order to assess chances and risks when planning to introduce model-driven development in your own software projects.
Model-driven software engineering focuses on the development of software systems by putting models in the center of the development process. In contrast to classical software engineering where models are traditionally used for specification and communication, in MDSD models are the primary development artefacts - trying to avoid the creation of code.
The focus on models bears a potential for a lot of benefits, like increasing the abstraction level during system design, enhanced communication trough the use of domain specific languages (DSLs) which could potentially be used by end-customers, an increase in the productivity by the use of transformations to generate code for the final system,
Nevertheless, there are also still several unresolved issues which hinder the wide-spread application of model-driven techniques in industrial practice. Such issues include model versioning, evolution of DSLs, maintenance of transformations or working with models in larger development teams. We highlight the research challenges in these areas in the lecture giving links to open research for example in master theses. Despite these issues, MDSD is being applied successfully in practice.
The lecture introduces concepts and techniques in the area of MDSD. We start with foundations on models and meta-models to learn how to define your own modelling languages. This requires the definition of concrete and abstract syntaxes, as well as a static and dynamic semantics. Based on such meta-models we discuss in detail transformation language concepts and go into their details using current standard transformation languages. All of this is rather useless if it is not embedded into the software development process. Therefore, we look at model-driven software development processes. The remainder of the lecture goes into details of a selection of advanced topics like model-versioning, model-coupling, MDSD standards, working in teams, testing, or maintenance of models and transformations. Finally, we apply the lessons learned in the area of software architecture evaluation as a case study.
The lecture connects to a series of other lectures in software engineering and compiler construction. Many of the existing concepts are revisited in the lecture from the viewpoint of MDSD requirements. We also highlight a set of formal foundations like attributed graph-grammers, formal logics, relational algebras, etc.
The lecture model-driven software development focuses on modelling from
the perspective taken by the OMG and its standardisation working groups.
They favour object-oriented modelling as in the UML. MOF as
meta-meta-modelling standard and model repository implementation
technology shares a large set of concepts with UML classes. In this
sense, models are graphs of typed objects comparable to graph grammars.
These graphs of objects are in the core of MDSD technologies. Their
creation, modification, transformation, persistence, embedding in the
development process, versioning, maintanance, etc. is the lectures main
focus.
Related lectures
The course consists of a lecture with 2 SWS and an exercise course with 1 SWS. The course is attached to the software engineering track of the master program. It can be used in modules III.1.1, III.1.2, and III.1.6. Exams are held orally in English. The lecture number in PAUL is L.079.05721.
All course related communication, slides, exercises, etc. are managed in the koala platform. Please go to https://koala.uni-paderborn.de/semester/WS1011/339444947962604/ to retrieve lecture materials. If you registered for the course in PAUL, you are automatically subscribed to our koala course.
The lecture is on Tuesdays from 14.15-15.45, the exercise takes place Tuesdays from 13.00-14.00. Lecture starts on 12th of October 2010, exercises start 19th of October 2010.
At least for the exercise, I was able to get a larger room for the moment. Starting tomorrow, the exercise will take place in A3.301, from 13.00 to 14.00. Please do also inform fellow students as they might not yet be in our koala group.
The exercise will start later as per your request. It will take place in A3.301, from 13.15 to 14.05.
|
1. |
12.10. |
Introduction, overview and basic terminology, model concept revisited |
|
2. |
19.10. |
UML2 including some glimpses in the UML2 meta-model (also serves as repetition) |
|
3. |
26.10. |
Meta-modelling, matters of meta-modelling |
|
4. |
2.11. |
Textual and graphical syntaxes |
|
5. |
9.11. |
Dynamic semantics definition |
|
6. |
16.11. |
Transformation languages I - Introduction in QVT Relational |
|
7. |
23.11. |
Transformation languages II - Introduction in QVT Operational |
|
8. |
30.11. |
Transformation languages III - Introduction in graph-based formalisms |
|
9. |
7.12. |
MDSD processes (AC-MDSD, GP, SF) |
|
10. |
14.12. |
Palladio Component Model (PCM) as a complex case study |
|
11. |
4.1. |
code generation |
|
12. |
11.1. |
Interpreting models, modelling in a team |
|
13. |
18.1. |
Analyzing models, Coupled model transformations |
|
14. |
25.1. |
Testing (All types of models, transformations and transformation results) |
|
15. |
4.2. |
Concluding overview and summary |