The Hessel Observer Framework (HOF) consists of several C++ software libraries. All code is pure C++ and there is no protability issues.
The HOF Observer library implements the Case Observer Automata modeling language. The Observer Automata observes and reports behavior of a monitored system that it gets in the for of traps. The traps are defined by the application, thus the observer language has maximal flexibility. The Case in COAml is a technique to separate different instances. In an instance it is possible to set timers etc. As the COAml support workflows (and parallel workflows) the instances includes several states that are linked together.
The library is selfcontained such that it only reference interfaces that is define itself. The Utilities are, e.g., implementations of storage and timers. There is an example implementation that is possible to use as default. Otherwise the upplication using the Hessel Observer Framework is free to implement The observer specification is given to the HOF Observer library in an intermediate format specified by the Hessel Observer Framework.
The HOF Parser implements a textual language for the COAml. It adapts to the configuration of traps that the application has made in the Hessel Observer Framework. The parser produce an intermediate representation that can be used to create an observer. The parser is optional as the application that uses the observer framework may include other ways to specify an observer, e.g. by using a drawing tool.
The HOF Test Case Generation library implements a test case generation algorithm based on a user specified coverage criterion (i.e., an observer) and an external model implementing the needed interfaces. For test of the library an model implementation has been made. This model should be replaced by an implementaion that use the model type from which test cases should be generated, e.g., UML, SyncML, SDL, or timed automata (as in UPPAAL). Basically the successor function is needed and that the model generated the traps for the observer. The HOF Test Case Generation library is dependent on the HOF Observer and the HOF Coverage libraries.
The HOF Coverage library is used by the HOF Test Case Generation library to store the state of the coverage efficiently. There are also a set of example implementations and test case libraries.
Use Today
There are currently two projects that using the Hessel Observer Framework. First there is a redesign of the test case generation tool UPPAAL CoVer (2.0). Second a new project has started where the Hessel Observer Framework will be used in the xTrade Alarm Server, by Xware. Both are work in progress.
UPPAAL CoVer
In this project all libraries are used except the example implementations. The model type is timed automata and UPPAAL's verification engine is used. No utilities library is needed as the model checker saves the states and coverage itself. There is no persistence or real timer that is needed.
xTrade Alarm Server
In this case only the case observer library is used. The utilities interface are implemented in the xTrade Alarm Server itself. In this way both persistent storage and timers can be used. No parser is needed as the xTrade Administration tool will be able to specify the observers.