RefChecker

A State Space Tool for Dynamic Models



About RefChecker

RefChecker is a model checker, or state space exploration tool, for systems with highly dynamic structure, in the sense that the way components are connected is dynamic and can change over time.

Formal models such as state charts or Petri nets are used to model and analyse the dynamic behaviour of concurrent systems. In the basic form, these models has a static "program description", in the form of a net or a state machine, and dynamic states, in the form of current states or token distributions. The dynamic aspects are, so to speak, kept in data, while the data manipulation is done by static programs.

Contrast this to Object Orientation, where data and program is integrated, and where programs manipulating data is replaced with objects interacting. The data, being manipulated in one object's program, is other objects, each with its own internal program.

While "static program" models in many cases suffices, when modelling agents and mobility encoding objects in data becomes cumbersome, and more dynamic modelling languages are needed.

State space exploration of formal models has proven to be a successful analysis technique. The basic idea behind a state space is intriguingly simple. One construct a directed graph, which has a node for each reachable state and arcs corresponding to state transitions, and from this graph it is possible to algorithmically analyse and verify a large number of properties of the system.

Model checking systems with dynamic structure is further complicated, compared to the static structure models, by the references between objects. A state can no longer be seen simply as a distribution of data-tokens, say, but the entire reference graph needs to be taken into consideration (one object references another, who in turn refernces a third that refers back to the first etc.)

The RefChecker tool is aimed at handling these kinds of dynamic structures, using an explicit representation of the reference graph, and using graph isomorphism algorithms to compare states to avoid representing equivalent states.

This project is hosted by Source Forge SourceForge Logo