Abstract

Self-adaptive software systems are capable of adjusting their behavior at runtime to achieve certain functional or quality of service goals. Often a representation that reflects the internal structure of the managed system is used to reason about its characteristics and make the appropriate adaptation decisions. However, in practice, self-adaptive software systems are often complex, dynamic, and the structure of managed system may not be completely known at design time. In addition, runtime conditions can radically change the internal structure in ways that were not accounted for during their design. As a result, unanticipated changes at runtime that violate the assumptions made about the internal structure of the system could make the adaptation decisions inefficient and inaccurate. In this dissertation, we present an approach for engineering self-adaptive software systems that brings about two innovations: (1) a feature-oriented approach for representing engineers’ knowledge of adaptation choices that are deemed practical, and (2) an online learning-based approach of assessing and reasoning about adaptation decisions that does not require an explicit representation of the internal structure of the managed software system. Engineers’ knowledge, represented in feature-models, adds structure to online learning, which in turn makes online learning feasible. We present an empirical evaluation of a proof-of-concept implementation of the framework using a real world self-adaptive software system. Results demonstrate the framework’s ability to accurately learn the changing dynamics of the system, while achieving efficient analysis and adaptation.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call