An Interactive Editor for the Statecharts Graphical Language

Stephen Edwards

This report describes an editor I wrote for the Statecharts graphical language, which uses a hierarchy of interacting finite-state machines. The editor is written using the [incr Tcl] add-on to the Tcl/Tk language.

The editor keeps transitions attached, and allows for multiple, consistent views of the database. The techniques I used (and those which failed) are all documented here.

  1. Overview
  2. Architecture
    1. The StateImage Class
    2. The TransImage Class
    3. The StateDialog and TransDialog Classes
    4. Dead Ends
    5. Conclusions

    A typical editor window: the editor supports many such views at once.

    Here are some references on the Statecharts language. The third is definitive. The fourth describes an editor much like this one.
    1. D. Drusinsky and D. Harel.
      Using Statecharts for hardware description and synthesis.
      IEEE Transactions on Computer-Aided Design, 8(7):798-807, July 1989.

    2. N. Halbwachs.
      Synchronous Programming of Reactive Systems.
      Kluwer, 1993.

    3. D. Harel.
      Statecharts: A visual formalism for complex systems.
      Science of Computer Programming, 8:231-274, 1987.

    4. D. Harel, H. Lachover, A. Naamad, A. Pnueli, M. Polati, R. Sherman, A. Shtull-Trauring, and M. Trakhtenbrot.
      STATEMATE: a working environment for the development of complex reactive systems.
      IEEE Transactions on Software Engineering, 16(4):403-414, April 1990.

    Here is the definitive Tcl/Tk reference:
    1. J. Ousterhout.
      Tcl and the Tk Toolkit.
      Addison-Wesley, 1994.

    Last updated 941202

    Written by Stephen Edwards.