オブジェクトがフロー内のポイントを通過できるかどうかを制御フローに決定させたい。コントロールとオブジェクトフローについての私の理解から、オブジェクトとコントロールフローが未定義のものに結合されているため、これは私が行った方法では機能しません。これを行う正しい方法はどのようになりますか?
編集:
私はいくつかの調査を行い、UML仕様でこれを偶然見つけました。
図15.59は、DataStoreNodeの使用例です。採用した従業員のレコードは、人事データベースに保持されます。従業員に割り当てがない場合、割り当ては従業員を使用して行われます。年に1回、すべての従業員がパフォーマンスのレビューを受けます。 JoinNodeは、AcceptEventAction(サブセクション16.10を参照)が「1年に1回」トリガーされた場合を除き、Review Employeeへのトークンのフローをブロックします。 AcceptEventActionが毎年の制御トークンを生成すると、これはJoinNodeの結合条件を満たします。人事データベースからの発信エッジには「{weight = *}」があるため、すべてのオブジェクトトークンのオブジェクトトークンが永続化された従業員レコードは、Review Employeeに流れます。
これは、未定義の結合の場合とまったく同じではありませんか?
どちらの場合も、JoinNodeの出力EdgeはObjectFlowであり、「未定義のもの」ではありません。
ML仕様 句によると、15.3.3.4結合ノード:
JoinNodeの着信エッジのいずれかがObjectFlowsである場合、発信エッジはObjectFlowになります。それ以外の場合、発信エッジはControlFlowです。
ご了承ください:
結合ノードには、結合がトークンを発行する条件を決定するjoinSpecがある場合があります。
デフォルトでは、JoinNodeは次のように動作します。
着信エッジで提供されるトークンの一部が制御トークンであり、他のトークンがオブジェクトトークンである場合、オブジェクトトークンのみが発信エッジで提供されます。トークンは、結合に提供されたのと同じ順序で発信Edgeに提供されます