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,
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.
Office: +44 (0) 1908 6 55562