Though history is a state property, it is graphically shown as a leaf
state in a composite state (according to David Harel's syntax). An
H or H* is placed in a circle inside the composite state,
depending on whether the history is a normal history or a deep
history. A transition with a history as its destination is a
transition with to the owner of the history in the
mathematical syntax.
This graphical representation assumes that only composite states can have histories. Leaf states, since nothing can be placed inside them, cannot have histories. As such, this restriction has a positive effect on the well-formedness of a model. Leaf states have no substates and thus they need not have any history. (As an exception, importation states may have histories, and those histories apply to the models that they import. In those cases, importation states are drawn as composite states rather than leaf states.)
An example of history states is shown in Figure
4.9. In this example, state A has a deep
history, and state A.C has a normal history. If the transition
reacting to event e1 is represented in the abstract syntax, its
is A, and its
is equal to
. Similarly, for
the transition reacting to e2,
is A.C and
is
.
Obviously, a composite state cannot have both a normal history and a
deep history. In such a case, its deep history always overrides the
normal history, and the latter is ignored. This is also because in the
abstract syntax, history is a property of a state with value ,
or
. It is impossible to assign different values to
this single property.
Figure 4.10 shows the graphical representation of
history states in .