Implementation of an Interpreter for Simulating Self-Adaptive Systems
A self-adaptive system is a system that can modify its state according to some external perturbation. This is done in order to maintain or optimize its condition within a changing environment. The demand for application exhibiting self-adaptive property is accelerating in multiple domains e.g., autonomous systems, IoT, Service oriented computing, and mobile computing and software has been identified as the main enabling technology for achieving self-adaptivity. Such software systems are required to be able to monitor itself and its context, detect changes, decide how to best react, and act to execute such decisions.
The syntax and the semantics of a modeling language for adaptive systems are being developed. However, there is no tool support for the language yet. The goal of this master thesis is to implement an interpreter for this modeling language based on rewriting logic Maude and use this interpreter to simulate adaptive systems. The task also includes monitoring and investigating how different adaptation strategies can influence the state of the system with respect to the changes in the surrounding environment.
Through this project the student will learn model-based engineering, the design and implementation of a domain specific language, simulation based analysis, Mape-K, rewriting logic.