UML state machines are based on the statechart notation introduced by David Harel. Furthermore, the UML extends the notation of Harel statecharts by object-oriented principles. Mapping this to our ferry example, in UML we can model the possible actions of the ferry as an interface with operations stop, moveNorthwards, moveSouthwards and so on.
The following table illustrates the differences between the previously described types at a glance:
Differences between the state machine types
The examples of this article were designed with the YAKINDU Statechart Tools, whose documentation you are reading just now.