SysML 2.0b3 FTF Avatar
  1. OMG Issue

SYSML2_ — Multiple vs Single Trigger/Guard/Effect for State Transitions Contradiction

  • Key: SYSML2_-245
  • Status: open   Implementation work Blocked
  • Source: Dassault Systemes ( Mr. Tomas Juknevicius)
  • Summary:

    On one hand abstract syntax chapters for the transitions between states stipulate (Figure 32 in 8.3.17.1@page316, text in 8.3.17.9@page325)
    that transition can have multiple triggers, multiple guards and multiple effects
    by specifying multiplicities [0..*] for TransitionUsage::triggerAction, TransitionUsage::guardExpression, TransitionUsage::effectAction

    On the other hand, semantics and textual syntax chapters for the transitions between states stipulate (8.4.13.3@page424, 8.2.2.17.3@page178)
    that transition can have at most one of each trigger, guard and effect
    by stating:
    "A TransitionUsage is parsed as having the following ownedMemberships
    ....
    Zero to three TransitionFeatureMemberships for up to one each of a triggerAction, guardExpression, and effectAction."

    and by using "?" marks (which has a meaning of [0..1] multiplicity) in the BNF
    "TransitionUsage =
    ...
    ownedRelationship += TriggerActionMember )?
    ( ownedRelationship += GuardExpressionMember )?
    ( ownedRelationship += EffectBehaviorMember )?"

    -----------------------
    This contradiction should be resolved in one direction or another - by stipulating either [0..1] or [0..*] everywhere.

    We suggest that the variant with singular multiplicity be adopted as this seems to be closer to the original intent of standard builders.
    This was also the convention of previous standards (UML)

    Therefore the abstract syntax chapters - Figure 32 in chapter 8.3.17.1@page316, and specification in chapter 8.3.17.9@page325 -
    should be updated with multiplicity [0..1] for the aforementioned 3 fields.

  • Reported: SysML 2.0b2 — Wed, 10 Jul 2024 11:46 GMT
  • Updated: Fri, 6 Dec 2024 19:20 GMT