アクティビティ図の基本はトークンの概念です。
OCUPの資格試験では、トークンの概念を直接問うものはないようですが、アクティビティ図のベースの概念ですので、この講座では解説しておきたいと思います。
トークンの運ぶもの
アクティビティ図のセマンティックスは、トークンのフローに基づき決定されます。
そして、トークンはオブジェクト、データ、または制御ポイントを運びますが、これらは値(バリュー)とも呼ばれます。
また、値のないトークンも許されており、これをヌルトークンと呼びます。
日常会話では、値というとデータの一部を意味する言葉として使わることが多いのですが、アクティビティ図では、オブジェクトなどを含む包括的な意味で使われますので注意が必要です。
たとえば、「アクティビティが終了するケースとして、アクティビティ終了ノードに制御が到達する場合の他、アクティビティの中に値が無くなったときにも、アクティビティは終了する。」という言い方をします。
(図A01-a参照)
• ❑ Fig. A-1
要点
トークンのフローの原則:(詳細の動きについては、個々のノードの定義に依存。)
各ノードは、入力出力に関し、トークンのフローをコントロールするルールを持ち、エッジは、ソースノードからターゲットへトークンが流れる際に守るべきルールを持っている。
トークンは、ソースノード、ターゲットノード、エッジのすべてのルールが満たされたときのみ、ソースからターゲットに向って流れる。(図A01-c参照)
トークンは、コントロールノード上では、停滞しない。
UML1.Xでは、アクティビティの複数の入力フローをマージ的に扱っていたが、UML2.0では、暗黙的なジョインで扱っている。(図A01-b参照)(*注)
❑ (*注)各ノードは、基本的に、ノードの実行が可能になるまで、入力側のトークンが集まるまで待つことになります。しかし、暗黙的な表現になってしまって意味が捉えにくくなりますので、コントロールノードのマージやジョインを明示的に使用して、トークンの動きを明確に書き記すことをお勧めします。
インターミディエート試験の出題範囲
アクティビティ図に関するインターミディエート試験の範囲は、ファンダメンタル試験の範囲と重なる部分があります。
本書では、以下の順番に、インターミディエートレベルでの理解に必要な問題について解説してゆきます。
❑ 1 オブジェクトノード
❑ 2 アクションノード
❑ 3 コントロールノード
❑ 4 パーティション
❑ 5 構造化アクティビティノード