Model-driven development, deployment, and analysis of Internet of Things applications

Kirchhof, Jörg Christian; Rumpe, Bernhard (Thesis advisor); Wimmer, Manuel (Thesis advisor)

Düren : Shaker Verlag (2023)
Book, Dissertation / PhD Thesis

In: Aachener Informatik-Berichte, Software Engineering 54
Page(s)/Article-Nr.: 318 Seiten : Illustrationen

Dissertation, RWTH Aachen University, 2022


The Internet of Things (IoT) describes the idea of connecting objects equipped with sensors and actuators to each other and to the Internet. IoT applications are complex to develop for a variety of reasons, including the heterogeneity of the IoT devices, diverse software stacks, the fact that IoT applications are usually distributed applications, and the fragility of the hardware and network connection. Model-driven methods promise to make the complex development of IoT applications manageable by raising the level of abstraction. Related work has proposed a variety of component and connector (C&C) architecture description languages (ADLs) for developing IoT applications. However, these mainly focus on the early development phases and largely neglect reliability aspects. Accordingly, this work focuses on the model-driven engineering of IoT applications throughout their lifecycle. We present MontiThings, an ecosystem for model-driven IoT applications. Based on existing approaches, the MontiThings ecosystem specifies an IoT-focused C&C ADL using the MontiCore language workbench. MontiThings aims at offering an ecosystem that covers the lifecycle of IoT applications starting from the first architecture concepts up to the eventual deployment of the application and its analysis during runtime. At all stages of this process, MontiThings offers reliability mechanisms that can help developers to specify resilient applications.For design activities, MontiThings provides a C&C language integrated with international system of units (SI) units and the object constraint language (OCL) usable to detect exceptional situations at operating time. Furthermore, MontiThings offers an integration method for hardware drivers that provides a clear separation of concerns and, thus, enables components to be reused and tested independently of their hardware integration. A generator translates the C&C architecture models to C++ code. Based on a tagging language, the IoT components can be integrated with synthesized digital twins. When deploying applications, MontiThings’ requirements-based deployment method is able to not only calculate a distribution of components to IoT devices but can also actively propose changes to the user should their requirements be unfulfillable. If devices fail at runtime, MontiThings can automatically adapt the deployment to the changed situation (if possible within the requirements) and restore the previous software state of failed devices. To understand unforeseen situations that may arise at runtime, MontiThings provides developers with model-driven analysis services. Overall, MontiThings demonstrates an end-to-end model-driven approach for designing IoT applications.


  • Department of Computer Science [120000]
  • Chair of Computer Science 3 (Software Engineering) [121510]