Research Topics
[DA] Improving Behavioral Program Comprehension using Contextual Feature Models at Runtime
Behavioral Programming is a paradigm that uses independent threads as main building blocks of an application. The execution of these threads is managed by an event system where threads can wait for, request or block events. The original intend of this paradigm was incremental development, i.e., the ability to easily add new functionality. Additionally, due to its parallel, dynamic nature, this paradigm is well suited to develop self-aware computing systems. An inherent problem of this paradigm is its incomprehensibility that increases with the size of the application. This is because each thread can specify new events. An overview for the developer is lacking. To overcome this problem, we propose to introduce an architecture description language based on contextual feature trees extended with the event system of behavioral programming. We provide an implementation of this language based on the language server protocol of the universal variability language. Our artifact enables and supports developers to create contextual feature trees for behavioral programs and to use the built-in SMT-solver to reconfigure behavioral programs at runtime. We show how our artifact can be used with three case studies from different domains: a water tank that aims to keep a specified level and temperature, a smart home system and a surveillance drone swarm.
Betreuer: Sebastian Götz