ABSTRACT

A Statechart is a hierarchical directed graph. David Harel had two goals when he developed Statecharts: 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. Statecharts are now the control model of choice for the Unified Modeling Language (UML) from the Object Management Group. Harel uses the methodology neutral term "blob" to describe the basic building block of a Statechart. Statecharts are executable, in a much more elaborate way than ordinary finite state machines. The Statechart language is quite complex, and represents a major extension to that of finite state machines. Input to the original StateMate system is a Statechart. The StateMate commercial product has supported automatic generation of system test cases since the early 1990s. Statecharts have two primary advantages: there are commercially available execution engines, and they scale up well to large, complex, and concurrent applications.