Abstract:Self-Adaptation provides a promising approach to managing the complexity of modern software systems, and in particular, to enabling systems to continuously adapt themselves to uncertainty in the environment. In existing works, model-based self-adapatation is a type of widely used methods that extend the applicability of model-driven engineering techniques to the runtime environment to facilitate self-adaptation. By leveraging software models to manage the abundant information associated with runtime phenomena, model-based self-adaptation methods are able to avoid the complexity introduced by intertwining adaptation and application behaviors and therefore simplify the development of self-adaptive systems. This paper first lays out six research questions from existing studies concerning system models, environment models, relationship among models, and model-based adaptation planning methods. It then answers the research questions by investigating relevant studies. Finally, the paper offers some suggestions for future research.