Precise Semantics of UML State Machines Avatar
  1. OMG Specification

Precise Semantics of UML State Machines — Open Issues

  • Acronym: PSSM
  • Issues Count: 12
  • Description: Issues not resolved
Open Closed All
Issues not resolved

Issues Descriptions

Mismatch of operation name in figure and text: register vs. registerCompletionEvent

  • Key: PSSM11-13
  • Status: open  
  • Source: Budapest University of Technology and Economics ( Zoltan Micskei)
  • Summary:

    For SM_ObjectActivation the figure (Figure 8.4) displays that it has a register( in completionEventOccurrence: CompletionEventOccurrence [1]) operation.
    However, the text below refers to a registerCompletionEvent operation ("The registerCompletionEvent operation is used to add").
    The semantics xmi also contains register as an operation name. However, registerCompletionEvent might be a better name, as it is similar to the registerDeferredEvent operation name.

  • Reported: PSSM 1.0 — Fri, 24 Mar 2023 08:24 GMT
  • Updated: Fri, 31 Mar 2023 19:08 GMT

Wrong multiplicity of DoActivityContextObject.doActivityEventAccepter

  • Key: PSSM11-12
  • Status: open  
  • Source: Budapest University of Technology and Economics ( Márton Elekes)
  • Summary:

    Figure 8.9 (doActivity Behavior Execution) shows that a DoActivityContextObject has exactly 1 DoActivityExecutionEventAccepter.

    This multiplicity should be unlimited since

    • a doActivity can register multiple EventAccepters, ("While a doActivity Behavior is executing, it may need to register EventAccepters for specific EventOccurrences.")
    • which are encapsulated into DoActivityExecutionEventAccepters, and ("When an executing doActivity Behavior registers an EventAcceptor ..., it is wrapped in a DoActivityEventAccepter...")
    • a DoActivityExecutionEventAccepter encapsulates only a single EventAccepter (1 encapsulatedAccepter in the figure).

    The text uses two names for the same class, DoActivityExecutionEventAccepter and DoActivityEventAccepter.

  • Reported: PSSM 1.0 — Thu, 21 Jul 2022 10:35 GMT
  • Updated: Wed, 24 Aug 2022 16:05 GMT

Clarification needed for abortion in Test Behavior 003-A

  • Key: PSSM11-11
  • Status: open  
  • Source: ( Zoltan Micskei)
  • Summary:

    Test Behavior 003-A describes a scenario, where the doActivity is aborted. There are no alternative traces specified, only the one, where the doActivity is aborted after printing S1(doActivityPartI) and waiting for the Continue signal.

    Why is there no alternative trace listed, where the doActivity is aborted before executing the printing of S1(doActivityPartI)? From the current test it seems that the doActivity can be aborted only when it is waiting for a signal. However, Test Event 017-B and Terminate 002​ explicitly lists traces where the doActivity is aborted before printing anything or completing its initial first RTC step.

    The Received event occurrence part lists "AnotherSignal – received when in configuration S1". From this, it seems to me that AnotherSignal can be processed any time and S1 can be exited before executing any part of the doActivity.

    1) It would be helpful to clarify abortion e.g. in 8.5.5 StateActivation exit. In which phases of its execution can the doActivity aborted? At the boundaries of RTC steps? Or even inside an RTC step?
    2) A possible test case to showcase these questions could be the following. One simple state with a doActivity, entering the state is triggered by Start, exiting is triggered by Continue. The doActivity has two WriteStructuralFeatureAction, that writes 1 and 2 to an integer value owned by the statemachine, which is initialy 0 (there is neither timing or waiting in the doActivity). Received events are Start, Continue. List of traces could show, whether the doActivity can be aborted in such ways, that in the end the integer is 0, 1 or 2.

  • Reported: PSSM 1.0 — Fri, 25 Sep 2020 07:56 GMT
  • Updated: Thu, 1 Oct 2020 16:51 GMT

Typo in Figure 9.116 (TransitionExecutionAlgorithmTest)

  • Key: PSSM11-10
  • Status: open  
  • Source: ( Zoltan Micskei)
  • Summary:

    In S1: "/do Activity exit" shoud be "/exit Activity exit"

  • Reported: PSSM 1.0 — Fri, 25 Sep 2020 07:31 GMT
  • Updated: Thu, 1 Oct 2020 16:51 GMT

Error in alternative traces of Transition 017

  • Key: PSSM11-9
  • Status: open  
  • Source: ( Zoltan Micskei)
  • Summary:

    The alternative execution traces part lists the following traces:
    "2. T2(effect)::S1(entry)::T2.2(effect)::T3.2(effect)::S3.1(doActivity)::T3.1.2(effect)
    3. T2(effect)::S1(entry)::T2.2(effect)::T3.2(effect)::T3.1.2(effect)::S3.1(doActivity)"

    I think these traces are not valid. T3.2 is triggered by the completion event of S3.1. However, as per "StateActivation completion" on page 37, "The StateActivation can only generate a CompletionEventOccurrence when all RegionActivations for Regions of the composite state have completed and the doActivity Behavior has completed.". Therefore T3.2(effect) cannot be printed before S3.1(doActivity).

    The precedence relations are the followings. T2 -> S1; S1 -> T2.2; S1 -> S1(do); S1 -> T3.1.2, S1(do) -> T3.2, T3.1.2 -> T3.2

    The full list of valid traces are the followings (some of them are missing from the current list)

    T2 S1 T2.2 T3.1.2 S3.1(do) T3.2
    T2 S1 T2.2 S3.1(do) T3.1.2 T3.2
    T2 S1 T3.1.2 T2.2 S3.1(do) T3.2
    T2 S1 T3.1.2 S3.1(do) T2.2 T3.2
    T2 S1 T3.1.2 S3.1(do) T3.2 T2.2
    T2 S1 S3.1(do) T2.2 T3.1.2 T3.2
    T2 S1 S3.1(do) T3.1.2 T2.2 T3.2
    T2 S1 S3.1(do) T3.1.2 T3.2 T2.2

  • Reported: PSSM 1.0 — Fri, 25 Sep 2020 07:28 GMT
  • Updated: Thu, 1 Oct 2020 16:51 GMT

Typo in description of generated trace for Transition 017

  • Key: PSSM11-8
  • Status: open  
  • Source: ( Zoltan Micskei)
  • Summary:

    "T3.1.2 is triggered by the dispatching of CE(S3.1.2)" -> CE(S3.1.1)

    There is no S3.1.2 in the state machine. The RTS steps part correctly refers to [CE(S3.1.1)] in the event pool.

  • Reported: PSSM 1.0 — Fri, 25 Sep 2020 06:59 GMT
  • Updated: Thu, 1 Oct 2020 16:50 GMT

Wrong figure references in some of the test cases

  • Key: PSSM11-7
  • Status: open  
  • Source: ( Zoltan Micskei)
  • Summary:

    The text of some of the test cases reference wrong figures. For example:

    • Transition 015 (page 86): "The doActivity for state S1 state is exactly the same as the one presented in Figure 9.8.". The doActivity in Figure 9.8 contains an accepts and prints doActivityPartI and doActivityPartII. According to the PSSM test suite xml, the doActivity for Transition 015 just prints "S1(doActivity)" and does not contain any accept.
    • Exiting 002 (page 132):
    • “The state machine that is executed for this test is presented in Figure 9.8.” it is Figure 9.48.
    • “The doActivity behavior of S1 has exactly the same behavior as the one presented in Figure 9.37” it is Figure 9.8.
  • Reported: PSSM 1.0 — Fri, 25 Sep 2020 06:51 GMT
  • Updated: Thu, 1 Oct 2020 16:50 GMT

Notation for entry, do and exit behaviors is wrong

  • Key: PSSM11-5
  • Status: open  
  • Source: oose Innovative Informatik eG ( Axel Scheithauer)
  • Summary:

    The correct notation is for example:

    entry/Activity entry

    All the diagrams in PSSM show instead

    /entry Activity entry

    This is confusing and should get changed.
    Also the text in all examples of the UML specification is left justified. It is not mentioned as a requirement, but I think most tools follow this convention. In the PSSM specification the text is centered. I suggest to change it to left justified.
    The effect of Transitions is notated with a colon:

    /Activity: effect.

    I think that should also be consistent. Either remove the colon, or use it with state behaviors as well.
    As an additional suggestion: In most cases it is not relevant for the test case, that an activity is called. The string "Activity" could be left out to keep the diagram less cluttered.

  • Reported: PSSM 1.0b1 — Tue, 3 Apr 2018 15:31 GMT
  • Updated: Mon, 1 Apr 2019 18:41 GMT

PSSM implementation shall conform to bUML

  • Key: PSSM11-4
  • Status: open  
  • Source: Commissariat a l Energie Atomique-CEA ( Jeremie Tatibouet)
  • Summary:

    The behavioral part of the PSSM semantic model is specified using Java syntax. The subset of Java that is used does not always conform to the mapping rules defined in Annex A of fUML between Java and Activities.


    1. Usage of index starting from 0 instead of 1 in StateActivation::hasCompleted operation.
    2. Constructor call with arguments in StateMachineEventAccepter::accept operation.
    3. Usage of an iterative for loop instead a parallel for loop in StateActivation::enterRegion operation.
  • Reported: PSSM 1.0b1 — Thu, 13 Apr 2017 13:02 GMT
  • Updated: Mon, 1 Apr 2019 18:41 GMT

Tests that send multiple signals are not correct

  • Key: PSSM11-3
  • Status: open  
  • Source: Model Driven Solutions ( Ed Seidewitz)
  • Summary:

    Any test in the PSSM test suite with a test driver that sends multiple signals to the model being tested may not currently be properly allowing all possible execution traces. This is because itt cannot, in general, be presumed that event occurrences are received in the order they are sent, even if they are all sent from the same thread. This was always true in fUML (per the statement of “the semantics of inter-object communications mechanisms” in subclause 2.4 of the spec), but it is completely, formally clear in fUML 1.3, in which EventOccurrence is an active class, such that all event occurrences are sent concurrently with each other.

    For example, consider test Transition 007 (described in subclause of the PSSM beta spec). The tester behavior for this test sequentially sends three signal instances: AnotherSignal, Continue and Continue again. However, while these signals are sent sequentially, there is no guarantee they will be received by the tested state machine in the same order. For example, one of the Continue signal instances could be received before the AnotherSignal instance, which would cause the state machine (as shown in Fig. 9.12) to take transition T3 to S2 and never get to S3.

    Rather than try to capture all the possible traces that should be allowed by the such tests a s currently modeled, it would be better to modify the tests so that they should only produce the trace that is currently suspected. This can be done by having the state machine under test send signals back to the tester, in order to coordinate the sending of sequential signals. For example, in the case of Transition 007, the state machine could send signals back to the tester as part of the doTraversial behaviors for transitions T1 and T2. The test behavior would then have to include accept event actions in order to wait between the send signal actions. (Of course, to allow the test to send signals back to the tester, either the Tester/Target association in the test architecture would need to be made bidirectional, or some signaling mechanism would need to be provided through the SemanticTest class.)

  • Reported: PSSM 1.0b1 — Tue, 5 Dec 2017 23:11 GMT
  • Updated: Mon, 1 Apr 2019 18:41 GMT

Classifier behavior of the SemanticTest class refers to TestCase stereotype

  • Key: PSSM11-2
  • Status: open  
  • Source: oose Innovative Informatik eG ( Tim Weilkiens)
  • Summary:

    Section states: "The classifier behavior of a semantic test has the TestCase stereotype applied."

    The source of the TestCase stereotype is not mentioned. Presumably, it is UTP, but the relationship of PSSM and UTP is not further described except a list of definitions from the UTP specification including Test Case on page 61.

    The test case stereotype requires a return parameter of type VerdictKind. That is not implemented by PSSM.

    Regarding the general OMG requirement for OMG specifications to reuse other specifications if possible, I propose to integrate the test case stereotype including the verdict concept from UTP.

  • Reported: PSSM 1.0b1 — Wed, 13 Feb 2019 15:15 GMT
  • Updated: Tue, 19 Feb 2019 14:38 GMT

LocalTransitionActivation exit source unclear

  • Key: PSSM11-1
  • Status: open  
  • Source: ( David Mesquita-Morris)
  • Summary:

    The text for the semantics of exiting the source of a local transition appears incomplete; the first paragraph provides a condition under which the source cannot be exited, but if that condition is not met, does not describe how the source should be exited.

  • Reported: PSSM 1.0b1 — Wed, 19 Dec 2018 09:53 GMT
  • Updated: Mon, 14 Jan 2019 20:31 GMT