ABSTRACT

David Harel had two goals when he developed the statechart notation: He wanted to devise a visual notation that combined the ability of Venn diagrams to express hierarchy and the ability of directed graphs to express connectedness (Harel 1988). Taken together, these capabilities provide an elegant answer to the “state explosion” problem of ordinary finite state machines. The result is a highly sophisticated and very precise notation that is supported by commercially available CASE (computeraided software engineering) tools, notably the StateMate system from IBM (see section 9.4 for the acquisition history). Statecharts are now the control model of choice for the Unified Modeling Language (UML) from the Object Management Group. (See www.omg.org for more details.)

9.1 Definition and Notation Harel uses the methodology-neutral term “blob” to describe the basic building block of a statechart. Blobs can contain other blobs, similar to the way that Venn diagrams show set containment. Blobs can also be connected to other blobs with edges in the same way that nodes in a directed graph are connected. In Figure 9.1, blob A contains two blobs, B and C, and they are connected by edges. Blob A is also connected to blob D by an edge.