Self-adaptive systems: A survey of current approaches, research challenges and applications - Macías-Escrivá, Frank D.; Haber, Rodolfo; del Toro, Raul; Hernandez, Vicente (Expert systems with applications, 2013)
•We survey self-adaptivity past and present from a computational point of view.•Software is placed as main enabler technology for self-adaptivity.•We show relevant Computer Science tools and methods for self-adaptivity.•Standard and non-standard applications of the subject are explored.•We state limitations, challenges and how to go beyond the current state of the art. Self-adaptive software is capable of evaluating and changing its own behavior, whenever the evaluation shows that the software is not accomplishing what it was intended to do, or when better functionality or performance may be possible. The topic of system adaptivity has been widely studied since the mid-60s and, over the past decade, several application areas and technologies relating to self-adaptivity have assumed greater importance. In all these initiatives, software has become the common element that introduces self-adaptability. Thus, the investigation of systematic software engineering approaches is necessary, in order to develop self-adaptive systems that may ideally be applied across multiple domains. The main goal of this study is to review recent progress on self-adaptivity from the standpoint of computer sciences and cybernetics, based on the analysis of state-of-the-art approaches reported in the literature. This review provides an over-arching, integrated view of computer science and software engineering foundations. Moreover, various methods and techniques currently applied in the design of self-adaptive systems are analyzed, as well as some European research initiatives and projects. Finally, the main bottlenecks for the effective application of self-adaptive technology, as well as a set of key research issues on this topic, are precisely identified, in order to overcome current constraints on the effective application of self-adaptivity in its emerging areas of application.