Abstract
Context: Self-adaptive systems have been studied in software engineering over the past few decades attempting to address challenges within the field. There is a continuous significant need to fully understand the behavior and characteristics of the systems that operate in dynamic environments. By learning the behavior pattern of the environment, we can avoid unnecessary adaptations imbalance efforts for adaptation. As such, there exist research in the area of machine learning aimed at understanding dynamic environments regarding self-adaptive systems. Objective: This study aims to help software practitioners to address adaptation concerns by performing a systematic literature review that provides a comprehensive overview of using machine learning (ML) in self-adaptive systems. We summarize state-of-the-art Of the ML approaches used to handle self-adaptation to help software engineers in the proper selection of ML techniques based on the adaptation concern. Method: This review examines research published between 2001 and 2019 on ML implementation in self-adaptive systems, focusing on the adaptation aspects and purposes. The review was conducted by analyzing major scientific databases that resulted in 78 primary studies from 315 papers from an automatic search. Result: Finally, this study recommends three future research directions to enhance the application of machine learning in self-adaptive systems.
Highlights
Advancing technology and increasing user expectations lead to changing environments in software system development
The main objective of this study is to summarize the state-of-the-art of the machine learning (ML) implementation approaches in handling self-adaptation to allow for proper ML technique selection based on the adaptation concern
The adaptation process of the self-adaptive support system can be achieved effectively by configuring the system to learn to adapt rather than make it behave like a control mode
Summary
Advancing technology and increasing user expectations lead to changing environments in software system development. Due to the increasing of the complexity software system should become more flexible, dependable, energy-efficient, recoverable, customizable, configurable, and self-optimizing by adapting to the changes. These changing environments in the software system development require human supervision to consistently maintain operations in all conditions. Self-Adaptive Systems (SAS), systems that can adjust operations based on environmental conditions, are needed to achieve system goals These goals should be able to address existing challenges in operations, including managing complexities and handling changing conditions. Krupitzer et al [56] proposed a taxonomy of self-adaptation in the dimension of reason, time, technique, adaptation control, and level. This study includes some dimensions which are provided by Krupitzer et al such as reactivity and time
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have