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.

  • Email: y.yu@open.ac.uk Office: +44 (0) 1908 6 55562