19.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 19.2, “State” and so is not duplicated here. The only differences are two additional fields, which are described as follows.

Modifiers

Check box: "Concurrent". If this value is true, then the composite state is decomposed into two or more regions (usually associated with concurrent execution).

[Note]Note

Currently, the support in ArgoUML for concurrency (regions and swimlanes) is weak: The actual definition of regions is not yet implemented in the V0.14 release of ArgoUML. It is advised to draw the regions as composite states, hence follow the rule: a concurrent state can only contain composite states (i.e. regions).

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 with the current version of ArgoUML; the implementation is incomplete. It is advisable to use the toolbar of the diagram instead.

  • Delete From Model Delete the selected state from the model. This feature is always downlighted in the current version of ArgoUML.