20.4.  Composite State

A composite state is a state that contains other states (known as sub-states), allowing hierarchical state machines to be constructed.

A composite state is represented on a statechart diagram in ArgoUML as a large rectangle with rounded corners, with a horizontal line separating the name at the top from the description of the behavior and the model of the sub-state machine below. The description of the behavior includes the entry, exit and do actions and any internal transitions.

Sub-states are placed within a composite machine by placing them entirely within the composite state. This can be done at creation time, i.e. when creating the state for the first time in the editing pane. Alternatively, an existing state can be dragged onto a composite state.

The description of a composite state is almost identical to that of a state (see Section 20.2, “ State and so is not duplicated here. The only differences is one additional tool, one missing field, and one additional field, which are described as follows.

New Concurrent Region

Adds a new concurrent region to the selected composite state.

Deferrable Events

This field is missing from V0.20 of ArgoUML.

Subvertices

Text area. Lists all the sub-states contained within this composite state.

Button 1 double-click navigates to the selected entry, button 2 gives a pop up menu with two entries.

  • New. A submenu pops up, with a selection of 7 kinds of states, which can be added to the model. The 7 kinds of states supported are: Pseudo State, Synch State, Stub State, Composite State, Simple State, Final State, Submachine State.

    [Warning]Warning

    Using this way of adding states to the model is not a good idea, since you will have to add the state to the diagram later. This can be done by selecting it in the explorer, and activating the pop-up menu, and selecting “Add to Diagram”. It is advisable to use the toolbar of the diagram instead.

  • Delete From Model Delete the selected state from the model.