Savasana: Adaptation Consistency via Code Analysis

Project Dates: 
January 2016
Research Area(s): 
Project Description: 

Savasana is the first white-box approach that uses code analysis for reasoning about consistency of adaptation.

Savasana consists of two parts: Static Code Analysis runs on the system's code and Run-time Control manages the corresponding running system.

We realized Savasana's code analysis capabilities on top of Soot. Soot is a Java optimization framework, which can also be used for static analysis. We used Soot for the implementation of Dependency Extractor and Model Analyzer. We implemented Savasana's runtime control capabilities on top of the Spring framework. For implementing the Monitor component, we used Spring's extensive support for aspect-oriented programming, and for the Adapter component, we relied on Spring's dynamic (re)con.figuration facilities.