When and how to adapt your software system?
In the field of pervasive and ubiquitous computing, context-aware adaptive
systems need to monitor changes in their environment in order to detect
violations of requirements and switch their behaviour in order to continue
satisfying requirements. In a complex and rapidly changing environment,
identifying what to monitor and deciding when and how to switch behaviours
effectively is difficult and error prone. The goal of our research is to
provide systematic and, where possible, automated support for the software
engineer developing such adaptive systems.
In this work, we investigate the necessary and sufficient conditions for both
monitoring and switching in order to adapt the system behaviours as the problem
context varies. Necessary and sufficient conditions provide complementary
safeguards to ensure that not too much and not too little monitoring and
switching are carried out. Our approach encodes monitoring and switching
problems into propositional logic constraints in order for these conditions to
be analysed automatically using a standard SAT solver.
We demonstrate our approach by analysing a mobile phone system problem. We
analysed requirements violations caused by changes in the system's operating
environment. By providing necessary and sufficient monitoring and switching
capabilities to the system, particular requirements violations were avoided.
Salifu, Mohammed; Yu, Yijun; Bandara, Arosha K. and Nuseibeh, Bashar (2012). Analysing monitoring and switching problems for adaptive systems. Journal of Systems and Software, 85(12), pp. 2829-2839.
How to diagnose requirements problems from execution logs?
Context-aware applications monitor changes in their operating environment and
switch their behaviour to keep satisfying their requirements. Therefore, they
must be equipped with the capability to detect variations in their operating
context and to switch behaviour in response to such variations. However,
specifying monitoring and switching in such applications can be difficult due
to their dependence on varying contextual properties which need to be made
explicit. In this work, we present a problem-oriented approach to represent
and reason about contextual variability and assess its impact on requirements;
to elicit and specify concerns facing monitors and switchers, such as
initialisation and interference; and to specify monitoring and switching
behaviours that can detect changes and adapt in response. We illustrate our
approach by applying it to a published case study.
Salifu, Mohammed; Yu, Yijun and
Nuseibeh, Bashar (2007). Specifying Monitoring and Switching Problems in
Context. In: 15th IEEE International Requirements Engineering Conference (RE
2007), 15 Oct - 19 Oct 2007, Delhi, India.
Office: +44 (0) 1908 6 55562