Software Engineering and Architecture Group (SEARCH) > CS > JBI > FWN > RUG

Developing an adaptation engine to perform evaluation with Tele Assistant System exemplar


Tele Assistance System (TAS) is an exemplar of a service-based system (SBS) providing care to elderly and chronically ill people. TAS uses a combination of sensors embedded in wearable devices and remote services from healthcare, pharmacy and emergency service providers. By enabling remote and unsupervised caregiving in patients’ personal living spaces, TAS allows patients to receive required medical attention while respecting their privacy. To track patients’ vital parameters and take appropriate actions, TAS employs a third-party medical service for analysis of collected measurements. Researchers can use TAS to evaluate and compare methods and tools in domain of self-adaptive systems. TAS comes with pre-defined scenarios for comparing the effectiveness of different self-adaptation solutions dealing with uncertainties in service-based systems. To support the best quality of the service, and deal with unexpected circumstances at runtime (e.g., service failures) it is essential for TAS to inspect quality property profiles of services and select the optimal services to fulfill a patient’s request. TAS allows the evaluation and comparison of different adaptation solutions based on quality attributes of interest and metrics [3].


This project aims at a) developing a simple adaptation engine which should be connected to TAS, and b) investigate QAs and their trade-offs through development and use of quality models. The adaptation engine needs to use the up-to-date runtime knowledge to create/use models, reason about the adaptation alternatives regarding quality attributes, and perform trade-off analysis to select the most optimal alternative.

To be more specific the student is expected to:

1. Implement a simple feedback loop consisting of Monitor, Analyze, Plan, Execute, and Knowledge functions (i.e., control engine). In the context of this project, we mainly focus on Monitor, Analyze and knowledge components. We also assume that sensor and effector functionalities exist and they just need to be set up to effectively interact with the control engine.

a. The main functionalities required in Monitor component: The Monitor behavior is executed by Data Preprocessing and Targeted Updating components. Targeted Updating component comprises modules which are allotted to specific models in shared Knowledge component and are responsible to update the models variables values using runtime knowledge. The knowledge concerning the QAs is maintained and modeled using modeling techniques.
b. The main functionalities required in Analyze component: The Analyzer behavior is executed by three components: Goal analyzer, Trade-off Analyzer, and an Analysis tool. In this project we focus on the first two components. The Goal analyzer component has two main tasks: to identify the violation of quality properties of the system by comparing quality models and specifications of goals, and to identify the inconsistencies between current configuration of the system and quality models. The Trade-off Analyzer is responsible to compare possible system configurations and select the one with the best utility (i.e., the configuration with the best quality properties).
c. The main functionalities required in Plan component: creates or selects a procedure to enable the desired alterations in the managed system and achieve system’s goals.
d. The main functionalities required in Execute component: based on the actions recommended by the plan function and using the effectors changes the behavior of the managed system.
e. The main functionalities required in Knowledge component: The Knowledge component includes self-reflective models of the system about the quality properties and goals of the system, environment, and other relevant information about the system. We are mainly focusing on the Quality Models which may contain a variety of models each of which helping to reason about specific QAs of the system.

2. Connect the control engine to the TAS tool.

3. Run simulations with failure scenarios to evaluate the approach. The student needs to have programming skills, and preferably have experience programming in Java language. The student will spend at most three weeks to familiarize him/herself with the tool and the domain of the project. The remaining time of the project should be spent on developing the adaptation engine, models, and simulation and comparison of methods. This project suits a group of two students as well.


The student is expected to perform the following tasks:

  • Get Familiar with TAS tool.
  • Get familiar with several concepts such as self-adaptive systems, runtime models and modeling techniques, and MAPE-K reference model.
  • Deliver a control engine capable of interacting with the TAS.


If you are interested in this project or have any questions, please do not hesitate to contact:

    - Sara Mahdavi-Hezavehi ( or 
    - Paris Avgeriou (


[1] Brun, Y., Serugendo, G., & Gacek, C. (2009). Engineering self-adaptive systems

through feedback loops. Self-Adaptive Systems, 48–70.

[2] Garlan, D., Schmerl, B., & Cheng, S. (2009). Software Architecture-Based Self-Adaptation, Autonomic Computing and Networking. doi:10.1007/978-0-387-89828-5