figure 2: explaining statecharts (1984); note the temporal logic bottom right.
Speaking in the strict mathematical
sense of power of expression, hierarchy
and orthogonality are but helpful abbreviations and can be eliminated; the
hierarchy can be flattened, writing everything out explicitly on a low level, and
orthogonality can be removed by taking
the Cartesian product of the components (as in the top of the figure). Thus,
these features do not add raw expressive power, and their value is reflected
mainly in additional naturalness and
convenience. However, they also (in general) provide great savings in size; for example, orthogonality can yield an exponential improvement in succinctness in
both upper- and lower-bound senses. 3
Incidentally, orthogonal state-com-ponents in statecharts do not necessarily represent concurrent or parallel components of the system being specified.
They need not represent different parts
of the system at all but can be introduced to help structure its state space
and arrange the behavior in portions
that are conceptually and intuitively
separate, independent, and orthogonal. I emphasize the word “
conceptually” because what counts is whatever
is in the mind of the person doing the
specification.
This motivation has many ramifications. I chose the broadcast communication mechanism of statecharts not
because it is preferred for actual communication between a system’s components. It is merely one way to coordinate
the orthogonal components of the statechart, between its “chunks” of state-space, if you will; these will often not
be the components—physical or software—of the system itself. Broadcasting
is a way to sense in one part of the state
space what is going on in another part
and does not necessarily reflect actual
communication between tangible aspects of the actual system. On certain levels of abstraction one often really wants
to be able to sense properties of a part
of the specification in another without
worrying about implementation details.
I definitely do not recommend having a
single statechart for an entire system.
Rather, as I discuss later, there will almost always be a decomposition of the
system into functions, tasks, objects,
and the like, each endowed with its own
behavior (described by, for example, a
statechart). In this way, the concurrency
occurs on a higher level.
I return now to the two adjectives discussed earlier—“clear” and “precise”—
behind the choice of the term “visual
formalism.” 14, 16 Concerning clarity, the
fact that a picture is worth a thousand
words demands special caution. Not everything is beneficially depicted visually,
but the basic topology-inspired graphics
of statecharts seemed from the start to
jibe well with the IAI avionics engineers;
they quickly grasped the hierarchy and
orthogonality, high- and low-level tran-