How to monitor classified states of goals?

Socio-technical systems consist of human, hardware and software components that work in tandem to fulfil stakeholder requirements. By their very nature, such systems operate under uncertainty as components fail, humans act in unpredictable ways, and the environment of the system changes. Self-repair refers to the ability of such systems to restore fulfillment of their requirements by relying on monitoring, reasoning, and diagnosing on the current state of individual requirements. Self-repair is complicated by the multi-agent nature of socio-technical systems, which demands that requirements monitoring and self-repair be done in a decentralised fashion. In this paper, we propose a stateful requirements monitoring approach by maintaining an instance of a state machine for each requirement, represented as a goal, with runtime monitoring and compensation capabilities. By managing the interactions between the state machines, our approach supports hierarchical goal reasoning in both upward and downward directions. We have implemented a customisable Java framework that supports experimentation by simulating a socio-technical system. Results from our experiments suggest effective and precise support for a wide range of self-repairing decisions in a socio-technical setting.
  • Lingxiao Fu, Xin Peng, Yijun Yu, John Mylopoulos, and Wenyun Zhao (2012). "Stateful requirements monitoring for self-repairing socio-technical systems". In: 20th IEEE International Requirements Engineering Conference, 24-28 September 2012 , Chicago, Illinois.
  • How to diagnose requirements problems from execution logs?

    We propose a framework adapted from Artificial Intelligence theories of action and diagnosis for monitoring and diagnosing failures of software requirements. Software requirements are specified using goal models where they are associated with preconditions and postconditions. The monitoring component generates log data that contains the truth values of specified pre/post-conditions, as well as system action executions. Such data can be generated at different levels of granularity, depending on diagnostic feedback. The diagnostic component diagnoses the denial of requirements using the log data, and identifies problematic components. To support diagnostic reasoning, we transform the diagnostic problem into a propositional satisfiability (SAT) problem that can be solved by existing SAT solvers. The framework returns sound and complete diagnoses accounting for observed aberrant system behaviours. Our solution is illustrated with two medium-sized publicly available case studies: a Web-based email client and an ATM simulation. Our experimental results demonstrate the scalability of our approach.
  • Yiqiao Wang, Sheila A. Mcilraith, Yijun Yu, and John Mylopoulos (2009). "Monitoring and diagnosing software requirements". Automated Software Engineering, 16(1), pp. 3-35.

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