Creating states

-global and internal states-

Global states

By global states we mean the states of the description as a whole, rather than of any of its constituent elements. For instance, consider the description below:

Before the exchanging of pen commences between the two actors, some conditions must be true of both of them. It might be that the Student has finished using the pen and that it is still in good working order, and the teacher wants to use the pen otherwise there would be no need for the exchange. The final global state after the description is all executed could be that no user (actor) needs the pen anymore.

To add these states, we choose Conditions menu, then Add Main path conditions to get the following dialog:

NB: During enaction, the global pre-condition  is the first state fired to show the systems state. After enaction, the global post-condition is the last state fired to show the systems final state.

Any alternative paths' global states can be edited in likewise fashion by choosing Add Alternative path conditions from Conditions menu.

Internal states

Typically, these are the states of actors before, or after undertaking an event (also viewed as the pre/post conditions for those events). Preconditions are states that are true about an event or one of the actors before the event is undertaken. Postconditions on the other hand are the state that are true of an event or one of the actors after the event is undertaken.  Pre/postcondtions are added during description creation just as primary actors. Upon choosing to create a New description the user has to add desired states. If a user chooses to add Preconditions by clicking the add preconditions button, the following dialog appears:

To add a precondition like has pen, simply type in the editor area:

Clicking the Add button registers the precondition. All preconditions are replicated for use as postconditions and vice versa. So, the user can simply does not need to repeat any typing of states that appear as pre/post conditions. This minimises the amount of cross-typing and error making.

                Creating postconditions can be done in a similar manner.