Model-Driven Engineering of Smart Home Applications

Room: Lab Room, SE chair

Kick-Off Meeting: TBA, virtual via Zoom.


Prof. Dr. Bernhard Rumpe

Supervising Assistants: Course Type: Practical Course

Course ID: TBA

Subject: Model-Driven Engineering of Smart Home Applications

The Internet of Things (IoT) connects everyday objects with each other and with the Internet. This allows IoT applications to react to and influence their environment. For example, a fire alarm system could connect not only to the alarm system but also to the lights of the building and warn deaf people of a fire by repeatedly switching the lights on and off. Model-driven engineering enables building complex systems of systems to overcome the challenges that arise in IoT applications, such as:

  • Behavior Specification: Define how the data flows between the software components to achieve your desired functionality
  • Interoperability: Connect devices, sensors, and actuators
  • Deployment: Analyze which devices are supposed to execute which software and actually let the devices execute that software
In this lab course, you will develop a smart home application using model-driven techniques. This involves building up a prototype of a home using Raspberry Pis, sensors and actuators, and developing models in the architecture description languages (ADLs) MontiThings that are deployed to the raspberry pis using code generators. By the end of the semester you have built a smart home demonstrator and implemented models to describe a variable, dynamic smart home, which are deployed to Raspberry Pis. What you will learn:
  • Applying model-driven engineering and code generation in a real-world scenario
  • Manifesting the dynamic aspects of smart home applications in an ADL
  • Agile software development in small teams
  • Deploying applications to cyber-physical systems



  • Java
  • Git
  • Lecture: Model-based Software Engineering
  • C++
  • Lecture: Software Language Engineering