Präsentation der Masterarbeit "Leveraging Model-Based Techniques for Runtime Adaptivity in Software Systems"
Mahdi Derakhshanmanesh, MSc. Informatik, präsentiert seine Masterarbeit.
The present Master's thesis seeks to develop a better understanding of ways to achieve runtime adaptivity in software by using explicit models. Such a runtime model partially reflects data about the inner state of the software to be adapted, and it provides sub-models that describe behavior. Behavior is modeled using the language of UML Activity Diagrams, where an action is mapped to an existing method implementation that is available in the software to be adapted. This software is the managed software, or adaptable software. It is causally connected to the runtime model to exchange its state data. In addition, the behavior that is described in the runtime model, is interpreted at predefined points of the softwareís control flow. A model interpreter component executes an associated Activity model and replaces the existing control flow of the managed software. Adaptivity is achieved by transforming the model at runtime. Transformations include changes to the captured state data, or to the behavior descriptions.
In this thesis, we focus on a scenario, where existing software shall be migrated towards a Self-Adaptive Software System (SASS). In cooperation with the Software Technologies Applied Research (STAR) laboratory at the University of Waterloo in Canada, we designed a framework that is based on a model-centric architecture to achieve adaptivity.
The Graph-based Runtime Adaptation Framework (GRAF) is an implementation of the proposed framework, which utilizes TGraphs and its accompanying technologies as the enabling technology for modeling and manipulating a runtime model. To apply GRAF, and in order to test our approach in practice, we perform a case study with OpenJSIP, an open-source SIP server for VoIP telephony. Although our runtime models are simple at the moment, we are able to show the feasibility of our model-centric approach to runtime adaptivity.