KerML 1.0b3 FTF Avatar
  1. OMG Issue

KERML_ — Incorrect succession in state and transition library

  • Key: KERML_-147
  • Status: open  
  • Source: Budapest University of Technology and Economics ( Dr. Vince Molnar)
  • Summary:

    Line 124 in _sysml.library/Kernel Libraries/Kernel Semantic Library
    /StatePerformances.kerml_ requires that transitions happen after the nonDoMiddle steps of their source StatePerformance:

    private succession transitionLinkSource.nonDoMiddle[*] then Performance::self[1];
    

    Lines 43 and 34 of States.sysml assert that user-defined substates subset nonDoMiddle, resulting in transitions not starting until all the subsates of the transition's source state have finished.

    Since transition performances include the evaluation of the trigger and the guard, transitions cannot be taken until all the substates finish.

    This goes against the general semantics of state machines, where substates are "interruptable," i.e., transitions leaving the parent state will deactivate substates as well. Note that the notion of "run to completion" only requires the complete processing of an event before dispatching the next one, where "processing" generally means the steps until reaching a stable state configuration, but not waiting in the new states.

    The desired behavior would be that transitions start after the complete initialization of a stable state configuration (which most likely consists of all the entry actions of the new state configuration).

    Additionally, line 124 is misaligned with the description in KerML 9.2.11.1:

    StateTransitionPeformances require their guards to happen after the nonDoMiddle Step of the transitionLinkSource (all the middle Performances except for do) (...).

    In fact, the library now requires the whole StateTransitionPeformance to happen after the nonDoMiddle, which technically includes the guard, but is stronger.

  • Reported: KerML 1.0b2 — Fri, 10 Jan 2025 15:46 GMT
  • Updated: Sat, 11 Jan 2025 12:28 GMT
  • Attachments: