Monitoring and diagnosing software requirements

Yet another presentation, this time for my Conceptual Modeling course. I read and presented the paper “Monitoring and diagnosing software requirements” by Yiqiao Wang, Sheila McIlraith, Yijun Yu and John Mylopoulos.

The paper is about a framework that deals with the monitoring and diagnosis of a software system’s fulfillment of its stated goals, as specified in a goal model. The implementation used aspect orientation (AspectJ) to insert monitoring probes into the software system. The monitors produce logs that contain information regarding the occurence of tasks that are described in the goal model, along with the truth values of various preconditions and postconditions (“effects” in AI terminology) associated with the tasks. These logs, combined with the goal model itself, are then encoded into one big propositional formula that is fed to a SAT solver, which produces a diagnosis, ie deduces whether any requirements were not fulfilled and pinpoints the source of the failure.

The monitor and the diagnosis can be configured to work on various levels of granularity, with a consequent tradeoff on diagnostic precision. In the paper, there is also the description of an application of the framework on a SOA system to demonstrate this  notion of hierarchical monitoring. The framework wasn shown with numerous experiments to be a robust and scalable prototype, that can be used to implement the technique in real, industrial-scale software systems.

This approach is cool on a number of levels. One thing I like is the use of goal models as an actual engineering component, rather than just something used only for requirements elicitation. The goal model is used dynamically, at runtime. Another thing is that the possibility to use this framework as a method for the software system to not only monitor and diagnose itself, but, using OR decomposed goals in its goal model, to try to satisfy its top level goals using alternative ways. At any rate, it is a bold step in the direction of autonomic software systems.

My presentation can be downloaded here.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s