Hessel Observer Framework

C++ Libraries that Makes Model-Based Testing and Monitoring Easy

New features and semantics 2012-07-04

What is the Hessel Observer Framework?

The Hessel Observer Framework (HOF) consists of several C++ software libraries. All code is pure C++ and thus easy to port.

The HOF Observer library implements a unique Observer Automata modeling language. The Observer Automata observes and reports behavior of a monitored system from which it gets "traps". These traps are defined by the application, thus the observer language has maximal flexibility. The language is a blend of Petri-Nets and UML. As Petri-Nets the observer language works with tokens called items that can been seen as processes that carries its own data. The language supports parallel workflows, i.e., several items that are linked together such that they can be joined.

The library is self-contained such that it only reference interfaces that is define by it self. The Utilities are, e.g., implementations of storage and timers. There is an example implementation that is possible to use as default. Otherwise the application using the Hessel Observer Framework is free to implement its own utilities. The observer specification is given to the HOF Observer library in an intermediate format specified by the Hessel Observer Framework.

The HOF Parser is able to parse a textual representation of the language. It adapts to the traps and domains the application using HOF has configured. The parser produces 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 a 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 a state "successor" function is needed and that the model generate 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, i.e., observer state and "ticked off" coverage. The library is able to compare different 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 (a.k.a. 2.0). This is work in progress, which has currently low priority.

Second a new project has started where the Hessel Observer Framework will be used in the xTrade Alarm Server, by Xware AB. For the Alarm Server a fully integrated prototype has been demonstrated (July 2012). The prototype includes features as: timers, developer defined function calls automatically added to the language, and domain definitions.

Usage of HOF in 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.

Usage in 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.

This site is under construction, please see the FAQ and the Publications.

About Me

Condensed CV

I am a Ph.D. in Computer Science from Uppsala University (2007). Prior to Ph.D. studies, I have been a Developer and a Technical Project Manager at ISD Datasystem AB (1994-2000), and a Consultant at Ericsson (2000-2001). My Master thesis "Timing analysis of an SDL subset in Uppaal" got an honorable mentioning by the SNART board. At Uppsala University I worked with Model-Based Testing and developed the UPPAAL CoVer tool with UPPAAL as a starting point. I have taught project methodology during my years at Uppsala University, and I am now a Certified SCRUM master. I joined ENEA 2007 as a tool developer for ENEA Optima, an Eclipse based tool for system debugging. I also worked as a Process Developer in combination with research in the model-based testing area. Now I am on leave from a Software Architect position at Xware AB. During 2011 I worked part time in Hi5's Mobility project at Mälardalen University. I currently work as a postdoc researcher at CRIM in the Distributed Systems Analysis team.

Since 2010 I am a member of the technical committee of QA and Test

See my profile at LinkedIn or Skype me anders.hessel.

Publications

Frequently Asked Questions

For what purposes can the Hessel Observer Framework be used?

The Hessel Observer Library can be used for any pattern matching also including parameters and many simultaneous matches at the same time. Various application areas can use the framework, including many formal checks. Some natural examples are coverage in Model-Based Testing but also all types of pattern control following paths in source code. The observer automata gives you a far more powerful tool than regular expressions when, e.g., analyzing logs. Finding patterns in sequences of events is another application area for the observer libs.

Where is the COAml described?

So far the COAml language is only described in the paper "Monitoring and Testing with Case Observer Automata: an Industry Report by Anders Hessel.

What is a the latest news?

The language (called COAml above) has been developed and many new features has been added or are planned to be added. Currently an example tool is developed for demonstration purposes. Plesase contact cover@hessel.nu if you want to use the demonstrator or be kept informed of the plans.

Blog