Startseite > Fachgruppen > Secure Software Engineering > Lehre > Vorlesungsarchiv > WS 2016/17 > Model-Driven Software Development WS2016/2017

Model-Driven Software Development WS2016/2017

The lecture introduces model-driven software development (MDSD) in software modeling 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 development:

  • Which techniques are used in MDSD?
  • How can we derive platforms from existing software systems?
  • How to do meta-modelling, using UML profiles or MOF?
  • How to transform models? We will intensively look at transformation languages for model-2-model transformations (like QVT, or TGGs) but also on model-2-text engines (like xPand).

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.

Contents of Model-Driven Software Development

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 through 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, etc.

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 modeling 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.

Relation to other lectures

The lecture Model-driven software development focuses on modeling from the perspective taken by the OMG and its standardisation working groups. They favour object-oriented modeling as in the UML. MOF as meta-meta-modeling 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 lecture's main focus.

Related lectures

  • GSS: GSS focuses on domain specific languages (DSLs) and generators. The lectures takes a viewpoint coming from classical compiler-construction. However, as a compiler uses internally text-to-model, model-to-model and model-to-text transformations, concepts from GSS and compiler construction are applied in MDSD. Especially, when we talk about concrete textual syntaxes in MDSD we will highlight the relation.
  • MBSE: MBSE focuses on modeling and analysing software systems using embedded, real-time, and safety-critical systems as examples. MDSD is about how to create your own modeling languages without a special focus on any domain. However, basic theory and techniques like graph transition systems, graph grammars, etc. are also applied in MDSD and the lecture investigates them from the viewpoint of user defined application domains and meta-models. We will contrast these approaches also to current OMG standards and languages, e.g. QVT, to understand their commonalities and differences.

Formal Issues

The course consists of a lecture with 2 SWS (semester periods per week) 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.05713.

All course related communication, slides, exercises, etc. are managed in the koala platform. If you registered for the course in PAUL, you are automatically subscribed to our koala course.

The lecture is on Friday from 09.15-10.45, the exercise takes place Friday from 11.00-12.00. Lecture starts on 21th of October 2016, exercises start on 28th of October 2016. The room for both, the lecture and exercise is F 0 530 (Fürstenallee/MuseumsForum).

This information is to be updated regularly, if new information becomes available.

Past lectures

Lecture in winter term 2015/16

  • Lecture "Model-Driven Software Development" [link]

Lecture in winter term 2013/14

  • Lecture "Model-Driven Software Development" [link]

Lecture in winter term 2012/13

  • Lecture "Model-Driven Software Development" [link]

Lecture in winter term 2011/12

  • Lecture "Model-Driven Software Development" [link]

Lecture in winter term 2010/11

  • Lecture "Model-Driven Software Development" [link]

Lecture in summer term 2009 (at KIT)

  • Lecture "Model-Driven Software Development" [link]

Lecture in summer term 2008 (at KIT)

  • Lecture "Model-Driven Software Development"