Model-Driven Engineering

Contact: Grzegorz Lehmann, Frank Trollmann


Computers have found a way into almost every sphere of our lives - they are in our offices, cars, smartphones, even in our TVs. However, although computers are almost everywhere, the applications that we use, are mostly limited to one environment, one operating system, one hard drive or one user. The CC NGS investigates how to build applications that would accompany the user at every step of her daily activities. Future applications will need to adapt themselves to the user, instead of requiring the user to adapt to them. To build such applications we need new programming languages and new principles in programming. CC NGS thus explores the application of executable runtime models in the field of smart environments and adaptive applications. Our research focuses on the execution, adaptation and reconfiguration of models at runtime.

Runtime Models

Applications in ubiquitous environments are required to adapt dynamically to context of use situations unforeseeable at design time. Application code generated from models at design time fail to provide the required flexibility for adaptations at runtime. A solution to this problem is the use of models at runtime. Making the models available at runtime enables the reasoning about the structure of the application and the decisions of the developer when she is no longer available.

Although the idea of utilizing UI models at runtime is not new, we still lack a common understanding and suitable methodologies for the definition of runtime models. Moving the models from design time to runtime raises questions about the connection of the models to the runtime architecture, about synchronization and valid modifications of the models at runtime or the identification of model parts specified by the developer and those determined at runtime.

Model Reconfiguration

The use of Runtime Models also has several advantages for the development of adaptive applications. Models can be queried at runtime in order to gain information and detect the situations that require an adaptation of the application. In addition, a structural change in the Runtime Models leads to an adaptation of the application. This means, by reconfiguring the models the application can be adapted to the current context of use. This is an advantage because models operate on a high level of abstraction and are thus easy to understand and reconfigure. Additionally several techniques for Model Reconfiguration already exist.

Our research in this area mainly focuses on techniques that can be applied for describing Model Reconfigurations. This encompasses techniques for reconfiguring models of specific languages and their properties as well as high level reconfiguration operations that enable the designer of an adaptive application to describe complex workflows of reconfigurations of several models.