State diagrams
Definition
State diagrams show the various states that an object can be in and the
transitions between these states.
State diagrams can also represent protocol.
State diagrams (an example is shown below) are created in state
machines.

Example of a
state diagram
Creating
sub-states
Embedded states can be created by creating new states in existing states
(as shown below). The parent state
("State1" below) can mask or unmask its contents. When the contents are masked, transitions
appear as "stubbed transitions".

Embedded states
Creating
pseudo states
Branch, join and fork are pseudo states that convert at least three
states. These pseudo states can all be
created at the same time, or pseudo states can be created individually, and
then connected with other states.

Branch pseudo
state
Concurrent
states and threads
To create a concurrent state in Objecteering, the user may:
· either choose to designate the said state as being concurrent, by simply checking the "Concurrent" tickbox in the "State" dialog box
· or create the concurrent state, by clicking on the "Create a concurrent state" icon
Note: If the state edited contains a child state, the "Concurrent" checkbox is grayed
out.
When a thread (or parallel state) is created within a concurrent state,
the two states are graphically represented as shown in Part 1 below. However, if subsequent threads are then
created, the graphic representation differs, as shown in Parts 2 and 3 below.

Concurrent
states and threads
Key:
Where two threads are created in the same concurrent state, they are
graphically represented as follows.

Two threads
created in a concurrent state and represented by a dotted line
Note: If you wish to create several threads in the same concurrent
state, you must click on the creation icon and then over the header of the
concurrent state.
Creating
substates in threads
To create substates in threads, you should simply click on the icon used
to create the desired state and then click inside the thread.

Creating
substates in threads
Steps:
· Click on the "Create an initial state" icon.
· Click inside the thread in which you wish to create the substate.
Creating
and referring to events
There are two ways of creating events in a state diagram:

Transition
dialog box
Key:
1. "Received event": This is the event received which triggers the transition. The received event can be text entered in the field, or a reference to events defined in the current state machine.
2. "Expression of the sent event": This is an event sent by the transition once it has been triggered. An emitted event can be text entered in the field, or a reference to existing events in the current state machine (combobox). Signals can also be referenced (shorthand for Signal sending event).
Received or sent events in the transition dialog boxes can refer to
existing events. As a practical
shorthand, sent events may also directly refer to signals. Actions which frequently activate an
operation of the class can directly refer to the class' operations.