IntroductionStatechum is a framework that implements a number of regular grammar inference algorithms. Regular grammars can be represented as finite state machines. Once the grammar / state machine has been generated, StateChum can visualise it, and provides a selection of state-machine analysis and testing algorithms.
The original purpose of the framework was to investigate the application of grammar inference to the problem of reverse-engineering state machines from execution traces. It also contains code to generate test sets using the W method and methods for random trace generation.
It is possible to introduce domain-specific constraints using LTL or by directly encoding them in automata. This makes inference significantly more effective because the learner does not need to make "guesses" in many cases.
Random FSM generator implemented in this tool was built to generate finite-state machines with structural properties similar to machines published in Software Engineering literature. It has been used to generate samples for the Stamina grammar inference competition.
Graph comparison effectively computes a "diff" between arbitrary directed graphs by using language measure to match states. Finite-state machines can also be compared using precision/recall or BCR scores. Graphs can be visualised using the R tool and dynamically updated in the course of analysis.
Recent work involves integration with Erlang in order to perform automated inference of Erlang software. This is made possible by the Typer engine which generates types of Erlang functions hence making it possible to automate trace generation for the inference process.
The framework has been primarily used as a proof-of-concept for a number of ideas, and was not originally intended for widespread use. One of the main challenges now is to make it available to the wider community, and to provide interfaces that make it more usable. It is currently an alpha release; we are currently considering making it available as an Eclipse plugin.
To download the software, go to the SourceForge project page, which also provides a forum for questions / suggestions.
ReferencesThese are available from two places,
For further references refer to the AutoAbstract Project page (link also mentioned on the right-hand column).
Related SoftwareNote: Statechum depends on the following software.