join-node-outgoing-successions

Available in: SysML

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

Specification

A JoinNode may have at most one outgoing Succession.

Example

action {
    action a;
    action b;
    first a then J;
    first b then J;
    join J; // error: A join 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 a then J;
    first b then J;
    join J; // ok

    then action c;
    then a;
    then b;
}

All validation rules