Pseudo-states are a UML abstraction for various types of transient vertices used in State Machine diagrams. Pseudo-states are used to express complex transition paths.

You can create a Pseudostate by dragging one of these element icons onto a diagram in Enterprise Architect.

Diagram Toolbox Icons



See also

The Initial element represents a pseudo-state used to denote the default state of a Composite State; there can be one Initial vertex in each Region of the Composite State.


Entry Point pseudo-states are used to define the beginning of a State Machine. An Entry Point exists for each region, directing the initial concurrent state configuration.

Entry Point

Exit Points are used in State Machine elements and State Machine diagrams to denote the point where the machine is exited and the transition sourcing this exit point.

Exit Point

The Choice pseudo-state is used to compose complex transitional paths, where the outgoing transition path is decided by dynamic, run-time conditions.


Junction pseudo-states are used to design complex transitional paths in State Machine diagrams. A Junction can be used to combine or merge multiple paths into a shared transition path.


There are two types of History pseudo-state defined in UML: shallow and deep history.


The Terminate pseudo-state indicates that upon entry of its pseudo-state, the State Machine's execution ends.


The Activity Final element indicates the completion of an Activity; upon reaching the Final, all execution in the Activity diagram is aborted.


A Fork/Join element can be used to: 1) split a single flow into a number of concurrent flows, 2) join a number of concurrent flows or 3) both join and fork a number of incoming flows to a number of outgoing flows.



  • All the listed types of pseudo state can be represented in code, and can generate code under the State Machine code generation templates from Enterprise Architect release 11 onwards

Learn more