前回述べましたようにアクティビティ図はフローチャートを起源としており、セマンティクス上もフローチャートとほとんど同じように解釈されますので(特にコントロールフローにおいて)、直感的に解りやすい図です。
しかし、一点注意する必要があるのがオブジェクトノードです。
前回のトークンの説明の際、コントロールノード内ではトークンは停滞しないと述べましたが、逆に言いますとオブジェクトノード内ではトークンは停滞する事が可能です。
コンピュータの言葉で言いますと、オブジェクトノードはバッファリングの機能を持ち、1つのオブジェクトノードで複数のインスタンスを表す事が可能です。
6−2 オブジェクトノード
オブジェクトノードの理解
❑ 図A02
オブジェクトフロー
オブジェクトフロートは、オブジェクトやデータが流れることのできるエッジ(アクティビティ・エッジ)のことであり、オブジェクトノードへ向けた矢印、もしくはオブジェクトノードから発信される矢印として表現されます。
図A02の例で言いますと、注文書というオブジェクトノードの入力側および出力側エッジはともにオブジェクトフローを表しており、b図の発注と受注のピン間のエッジもオブジェクトフローです。
❑ 図 A03
オブジェクトフローはまた、選択の振る舞いを持つことが可能です。
図A03の(a)図の例では、発注後の注文書を優先度別に並べ替えて発送に回し、(b)図の例では、注文処理されたオーダーの顧客情報(Order.Customerで表示)のみを、「項客へ通知」アクションノードへ送っています。
6−2−1 オブジェクトノードの表記
❑ 図 A04
図A04(a)は、標準的なオブジェクトノードの表記であり、名前は通常オブジェクトノードのタイプを表します。また、図A04(b)はシグナルを意味するオブジェクトノードです。
また、[ ]内に、オブジェクトの状態を指定することも出来ます。(図(c))
図(d)(e)で示されるように、{ }内に制約を記述してオブジェクトノードに付加することができ、図(d)では、オブジェクトノード内の上限が2個であることを示し、図(e)では、並べ方が通常のFIFO(先入れ先出し)ではなくLIFO(後入れ先出し)であることを示しています。