Contents > C: List of Design Rules > C.21 Controlnode Rules

C.21 Controlnode Rules

Rule: IllegalInitialCategory: Correctness
Severity: 1-highApplies to: all areas
The initial node has incoming edges our outgoing object flows.

Check the initial node to make sure it has no incoming edges, and that all outgoing edges are control flows.

  • This is a WFR of the UML.
  • Value returned: the number of incoming edges and outgoing object flows.

Rule: IllegalFinalCategory: Correctness
Severity: 1-highApplies to: all areas
Final nodes must not have any outgoing edges. Check the node and remove the outgoing edges.
  • This is a WFR of the UML.
  • Value returned: the number of outgoing edges of the final node.


Rule: IllegalJoin1Category: Correctness
Severity: 1-highApplies to: all areas
Join nodes must have exactly one outgoing edge.
  • This is a WFR of the UML.
  • Value returned: the number of outgoing edges of the join node.


Rule: IllegalJoin2Category: Correctness
Severity: 1-highApplies to: all areas
Outgoing edge of join is the wrong type.

If all of the join node's incoming edges are control flows, the outgoing edge must be a control flow. If there is at least one incoming object flow, the outgoing edge must be an object flow.

  • This is a WFR of the UML.


Rule: IllegalFork1Category: Correctness
Severity: 1-highApplies to: all areas
Fork nodes must have exactly one incoming edge.
  • This is a WFR of the UML.
  • Value returned: the number of incoming edges of the fork node.


Rule: MixedEdgeTypesCategory: Correctness
Severity: 1-highApplies to: all areas
Edges from or to decision, merge, or fork nodes must be of the same type.

The incoming and outgoing edges of a decision, merge, or fork node must either be all control flows or all object flows. A mixture of control and object flows attached to one such node is not allowed.

  • This is a WFR of the UML.


Rule: ForkOutCategory: Completeness
Severity: 2-medApplies to: all areas
Fork nodes should have two or more outgoing edges. Otherwise, there is no fork. Check the node and add the missing outgoing edges.
  • Value returned: the number of outgoing edges of the fork node.


Rule: IllegalDecisionCategory: Correctness
Severity: 1-highApplies to: all areas
Decision nodes must have exactly one incoming edge.
  • This is a WFR of the UML.
  • Value returned: the number of incoming edges of the decision node.


Rule: DecisionOutCategory: Completeness
Severity: 2-medApplies to: all areas
Decision nodes should have two or more outgoing edges, each with a guard.

Otherwise, there is no decision. Check the node and add the missing edges and/or guards.

  • This is a WFR of the UML.
  • Value returned: the number of outgoing edges of the node, and the number of guards on these edges.


Rule: IllegalMergeCategory: Correctness
Severity: 1-highApplies to: all areas
Merge nodes must have exactly one outgoing edge.
  • This is a WFR of the UML.
  • Value returned: the number of outgoing edges of the merge node.


Rule: NumIncomingCategory: Completeness
Severity: 2-medApplies to: all areas
Merge and join nodes should have two or more incoming edges. Otherwise, there is nothing to merge/join. Check the node and add the missing incoming edges.
  • This is a WFR of the UML.
  • Value returned: the number of incoming edges of the node.


Rule: IsolatedNodeCategory: Completeness
Severity: 1-highApplies to: all areas
The control node has neither incoming nor outgoing edges.