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.