Objective: We aim to highlight and investigate the adoption of computational self-awareness concepts in autonomic software systems, and motivate future research directions on self-awareness and related problems. Method: We conducted a systemic literature review to compile the studies related to the adoption of self-awareness in software engineering and explore how self-awareness is engineered and incorporated in software systems. From 532 studies, 46 studies have been selected as primary studies. We have analysed the studies from multiple perspectives. Results: Results have shown that self-awareness has been used to enable self-adaptation in systems that exhibit uncertain and dynamic behaviour during their operation. Although there have been recent attempts to define and engineer self-awareness in software engineering, there is no generally agreed definition of self-awareness and the distinction between self-aware and self-adaptive systems has not been systematically treated. Evaluating self-awareness engineering approaches and exclusive mapping with their sources of inspiration still need to be addressed. Conclusions: The main findings show that there is a growing attention to incorporate self-awareness for better reasoning about the adaptation decision in autonomic systems. The review indicates the need for following clear characterisation for self-awareness, exclusive mapping with the sources of inspiration. We also recommend more in-depth evaluations.
Self-adaptation has been proposed as mechanism to counter complexity in control problems of technical systems which includes a shift from decision at design time to decisions at runtime. In order to deal with unforeseen conditions, systems often have learning mechanisms that are based on different sources of knowledge with feedback from the environment used for reinforcement purposes. However, the impact of other (sub-)systems on the success of the individual system's learning performance has mostly been neglected in this context. In this article, we propose a novel methodology to identify effects of actions performed by other systems in a shared environment on utility achievement of an autonomous system. Consider smart cameras (SC) as illustrating example: For goals such as 3D reconstruction of objects the most promising configuration of one SC in terms of pan/tilt/zoom parameters depends largely on the configuration of other SCs. Since such mutual influences cannot be pre-defined, they have to be learned at runtime. Furthermore, they have to be taken into consideration by self-improvement mechanisms. We define a methodology to detect such influences at runtime, present an approach to consider this information in a reinforcement learning technique, and analyze the behavior in artificial and real-world SASO system settings.
Organizations willing to employ workflow technology have to be prepared to undertake a significant investment of time and effort due to the exceptional dynamic nature of the business environment. Today, it is unlikely that processes are modeled once to be repeatedly executed without any changes. Goal-oriented dynamic workflows are a promising approach to provide flexibility to the execution of business processes. Many goal-oriented frameworks exist in literature to be used for the purpose. However, modeling goals is a burden for the business analyst. This work proposes an automatic approach for extracting goals from a business process for supporting adaptive workflows. The approach consists of a static analysis of the global workflow state. Goals derive from individual BPMN elements and their interactions. For validating the theory, we developed the BPMN2Goals tool, which has been used for supporting a middleware for self-adaptation.
Modern software systems are becoming more and more socio-technical systems, composed of distributed and heterogeneous agents from a mixture of people, their environment and software components. These systems operate under continuous perturbations due to the unpredicted behaviors of people and the occurrence of exogenous changes in the environment. In this article, we introduce a notion of ensembles for which, systems with collective adaptability can be built as an emergent aggregation of autonomous and self-adaptive agents. Building upon this notion of ensemble, we present a distributed adaptation approach for systems composed by ensembles: collections of agents with their respective roles and goals. Adaptation in these systems is triggered by the run-time occurrence of an extraordinary circumstance, called issue, and it is handled by an issue resolution process that involves agents, affected by the issue, to collaboratively adapt with minimal impact on their own preferences. Central to our approach is the implementation of an adaptation engine able to solve issues in a collective fashion. The approach is instantiated in the context of a smart mobility scenario through which its main features are illustrated and evaluated.
Software systems are deployed in environments that keep changing over time. They should therefore adapt to changing conditions in order to meet their requirements. The satisfaction rate of these requirements depends on the rate at which adverse conditions prevent their satisfaction. Obstacle analysis is a goal-oriented form of risk analysis for requirements engineering (RE) whereby obstacles to system goals are identified, assessed, and resolved through countermeasures. The selection of effective countermeasures relies on environment assumptions and on the assessed obstacle likelihood and criticality. These various factors estimated at RE time may however evolve at system runtime. To meet the system's goals under changing conditions, the paper proposes to defer obstacle resolution to system runtime. Technique are presented for monitoring goal/obstacle satisfaction rates; deciding when adaptation should be triggered; and adapting the system on-the-fly to countermeasures that are more effective. The approach relies on a model where goals and obstacles are refined and specified in a probabilistic linear temporal logic. The techniques allow for monitoring the satisfaction rate of probabilistic leaf obstacles; determining the severity of their consequences; and shifting to countermeasures that better meet the goal required satisfaction rates. Our approach is evaluated on fragments of an ambulance dispatching system.