An Interactive Editor for the Statecharts Graphical Language

Stephen Edwards

Previous Next


The objective of this project was to produce a graphical, interactive editor for the Statecharts graphical language, which uses hierarchically-arranged finite state machines. I chose this model after users requested I extend my previous finite-state machine editor to include hierarchy.

A Statechart contains two sorts of entities: states, which are boxes with names, and transitions, which are curved arrows connecting two states. A Statechart drawn with my editor is shown here

The editor can

This editor is written using McLennan's [incr Tcl] package, which brings an object-oriented data model to Tcl. My previous editor, written in straight Tcl, made it clear that the more elaborate database required for the Statecharts editor would be difficult to implement in straight Tcl. In the Architecture section, I describe the architecture of the editor in detail by describing the major classes. In the Dead Ends section, some later-corrected bad design decisions are listed. Finally, the Conclusions section contains the conclusions I reached from building this editor.
Last updated 941202

Written by Stephen Edwards.