アクティビティー図でサイクルが検出されると、サイクルの本体がこれらのノードから構成されることが分かります。しかし、このサイクルが COBOL ループを表していることを述べるには十分ではありません。言い換えると、サイクルはループと同等ではありません。
ここでは、UML から COBOL へのプロセスのサイクルを変換する操作について、詳しく説明します。変換プロセスの理論的な根拠を理解しておくと、アクティビティー図の上手な設計に役立つ場合があります。
例えば、図 1 は無限ループ (WHILE TRUE) を示しています。
この図には、「Read resource」ノード、デシジョン・ノード、および「WriteResource2」ノードが含まれるループがあります。デシジョン・ノードの 2 番目のブランチ (END ノードに進むもの) は、変換プロセスによって考慮される必要があります。test はループの一部であり、そのすべてのブランチも同様です。ループ内にあるデシジョン・ノードのすべてのブランチを考慮に入れ、対応するコードをループの内部に配置する必要があります。
図 2 には、UNTIL ループが示されています。
この図では、Read Resource ノードとデシジョン・ノードの間にループがあります。これは、ループの一方の端がデシジョン・ノードであるケースを示しており、until ループとして解釈されます。ここでは、デシジョン・ノードはループに留まるかループを出るための条件を定義しています。