merge-node-outgoing-successions

Available in: SysML

This checks that merge nodes are succeeded at most once because merge nodes should serve as a synchronization point for the first completion of multiple actions or states.

Specification

A MergeNode may have at most one outgoing Succession.

Example

action {
    action a;
    action b;
    first [0..1] a then M;
    first [0..1] b then M;
    merge M; // error: A merge node may have at most one outgoing succession

    then a;
    then b;
}

User probably intended to succeed with another action before continuing to more actions:

action {
    action a;
    action b;
    first [0..1] a then M;
    first [0..1] b then M;
    merge M; // ok

    then action c;
    then a;
    then b;
}

All validation rules