Asynchronous simple state

An asynchronous simple state is an element of the state machine that does not have sub-states (it contains no regions or pseudostates). It is processed (enter action, asynchronous do action) when it is reached by an incoming transition.

An asynchronous simple state belongs to a region.

Symbol

A simple state is shown as a rectangle with rounded corners.

images/download/attachments/4554773/async_simple_state_logo.png

Symbol in context

Example

images/download/attachments/4554773/async_simple_state_2.png

  • 'Async simple state' is reached and becomes active (via the transition emanating from the initial pseudostate).

  • Enter and asynchronous do behavior are executed in this order.

  • When the transition leaving 'Simple state 1' is executed, the asynchronous do behavior is stopped, and then the exit behavior of 'Simple state 1' is executed.

Characteristics

  • An asynchronous simple state can have entry, asynchronous do, and exit behaviors.

  • An asynchronous simple state contains no regions.

  • An asynchronous simple state contains no pseudostates.

  • An asynchronous simple state can defer events.

  • An asynchronous simple state can store an error event that will be processed in case of an standard exception is raised when executing the 'do' behavior.

Interpretation of and deviation from the UML specification

The UML specification knows no special "asynchronous simple state", but it allows the do behavior of a simple state to be executed asynchronously. The asynchronous simple state is yasmine's way of implementing a simple state which executes its do behavior in its own context (thread).