COBOL プログラムを表しているアクティビティー図の妥当性検査は、ある特定の基準を満たす必要があります。
アクティビティー図は制御やデータの単一フローを表しており、それはプログラム内の単一スレッドを表しています。COBOL プログラムを表すアクティビティー図は、
以下の条件がすべて満たされる場合に有効となります。
- ノードの種類が、ActionNode、DecisionNode、MergeNode、InitialNode、および FinalNode である。
- 図に InitialNode が 1 つだけ含まれている。
- 初期ノードに発信エッジが 1 つだけ存在する。
- 図に FinalNodeが 1 つだけ含まれている。
- 最終ノードに着信エッジが少なくとも 1 つ存在する。
- 図に孤立したノード (関連する着信エッジも発信エッジもないノード) が存在しない。
- 図に「偽の最終ノード」(関連する着信エッジがなく、最終ノード以外の有効なノードであるノード) が含まれていない。
- 図に「偽の初期ノード」(関連する着信エッジがなく、初期ノード以外の有効なノードであるノード) が含まれていない。
- アクション・ノードに複数の発信エッジが存在しない。
- デシジョン・ノードにガード条件が 1 つだけ存在する (「ELSE IF」デシジョン・ノードは処理されません)。
- デシジョン・ノードが常に 2 値である (IF X ... THEN Y ... ELSE Z)。
この結果、複数の着信エッジがあるアクション・ノードは、アクティビティー図内のサイクルの最初のノードを表すか、InitialNode から複数のパスによって到達できるノードを表しています。パスの 1 つは、制御の「メイン」フローの部分と見なされ、それ以外のすべてのパスは GOTO ステートメントと見なされます。その他のトピックでは、サイクル、ループ、および
GOTO ステートメントについて説明します。