Analysing monitoring and switching problems for adaptive systems
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 paper, 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.