UML 2.6 RTF Avatar
  1. OMG Issue

UMLR — Initial pseudo-state should not allow incoming transitions

  • Key: UMLR-848
  • Status: open  
  • Source: private ( Christophe T)
  • Summary:

    The current specifications of the initial pseudo state in section 14.2.3.7 and the corresponding initial_vertex constraint in section 14.5.6.7 do only limit outgoing transition of such state and do not address explicitly incoming transition. As a consequence, the state diagram notation might become ambiguous: the same symbol is used for initial pseudo-state and junction pseudo-state and in the case where there are one or more incoming transitions on a solid filled circle and exactly one outgoing transition (without trigger and without guard), it is not possible to decide if the filled circle is an initial or a junction pseudo-state.

    This situation seems to be a bug, considering that the UML 1.4 explicitly forbid incoming transition on an initial pseudo-state, and the relaxing of the constraints do not seem to bring any benefit, whereas it creates these ambiguity.

    Section 14.2.3.7 should be corrected as follows (sentence between ***):

    initial - An initial Pseudostate represents a starting point for a Region; that is, it is the point from which
    execution of its contained behavior commences when the Region is entered via default activation. It is *** the destination of no Transition and *** the
    source for at most one Transition, which may have an associated effect Behavior, but not an associated trigger or
    guard. There can be at most one initial Vertex in a Region.

    Section 14.5.6.7 should be updated by completing initial_vertex constraint as follows (see also UML 1.4 section 2.12.3.4 [1] for comparison) :

    • initial_vertex
      An initial Vertex can have at most one outgoing Transition and no incoming transitions.
      inv: (kind = PseudostateKind::initial) implies ((outgoing->size() <= 1) and (incoming->size() = 0))

    With these two corrections, there would be no risk of ambiguity anymore since a junction would have at least one incoming transition whereas an initial would have none.

  • Reported: UML 2.5.1 — Sat, 20 Sep 2025 22:47 GMT
  • Updated: Thu, 25 Sep 2025 20:59 GMT