- 目次 -
Part 1: UML相互作用図の基本
1.1 UML相互作用図とは
UML相互作用図またUMLインタラクション図は、システを高いレベルで抽象化した行動図です。行動図の形が変更された図で、オブジェクト間のインタラクション(相互的なやり取り)やインタラクションの大まかな指令の流れに着目しています。複数の図の間で発生するアクティビティの流れを表すこともあります。インタラクション図のノードは、相互的なやり取り、あるいは相互作用のオカレンスです。
UML相互作用図とは、システムにおいて、ある目的で指定されたタスクを達成する際にオブジェクトやアクタ間で相互に交わされる一連のメッセージのことを指します。UML相互作用図では、メッセージやライフラインなどのインタラクションが欠かすことのできない要素となります
UML相互作用図では、メッセージの交換により、オブジェクト間のインタラクションが開始されます。UML相互作用図では、システムに存在する、さまざまなオブジェクト間の関係と、これらのオブジェクトが互いにやり取りするメッセージが表されます。
1.2 UML相互作用図の目的と利点
相互作用図は、システムでやり取りされる相互的な動作を詳しく表す際に役立ちます。また、システムのさまざまなオブジェクトの繋がりや互いのやり取りの仕方も表します。
相互作用図は、システムの動的な動きを表します。また、どのようにシステムのライフライン間のコミュニケーション(対話)が発生するのかを示します。
UMLで、相互作用図は以下の目的で利用されます。
1. 相互作用図は、システムの動的な動きを確認する際に役立ちます。
2. 相互作用図は、システムにおけるコミュニケーションとメッセージの一連のシーケンスを視覚的に理解する際に役立ちます。
3. 相互作用図は、システム内のインタラクションが順序立てられたシーケンスとさまざまなオブジェクトの構造面を表します。
4. 相互作用図は、UMLにより、リアルタイムなデータを視覚的に理解できるすばらしいツールです。
5. また、オブジェクト指向のシステムや分散システムの構造を説明する際にも役立ちます。
Part 2: 相互作用図の種類
システムには2種類のメッセージがあります。オブジェクト間で情報をやり取りする際に使用するメッセージと、ある情報を要求するメッセージがあります。相互作用図は、表すメッセージの種類に応じて数種に分類されます。そのうちに、シーケンス図、コラボレーション図、タイミング図があります。
2.1 シーケンス図
シーケンス図は、時間的な順序があるイベントのシークエンスです。システム内のメッセージの流れの順序と2つのライフライン間のコミュニケーションを表します。
2.2 コラボレーション図
コラボレーション図は、コミュニケーション図としても知られています。コラボレーション図の目的は、システムの構造面や、どのようにシステムのさまざまなライフラインが繋がっているのかに着目することです。
2.3 タイミング図
タイミング図では、メッセージが、あるオブジェクトから別のオブジェクトに送られるインスタンスに着目します。つまり、タイミング図は時間的な理由に着目しながらインタラクションを示します。
Part 3: 相互作用図の記号
相互作用図で使われる基本的な用語と記号を以下に示します。
3.1 ライフライン
ライフラインは、あるインタラクションの1つのオブジェクトを示します。インタラクションでどのようにオブジェクトが存在し、機能するのかを表します。
ライフラインの属性を以下に示します。
● 名称:オプションで、特定のインタラクションのライフラインを表します。
● 種類:クラシファイア(分類子)の名前を付けます。
● セレクタ(選択子):ブーリアン(Boolean)など、要求を満たす特定のインスタンスを選択する際の決定を要するノードのような場合に使われます。
3.2 メッセージ
メッセージは、インタラクションにある2つのライフライン間のコミュニケーションの種類を指します。情報の交換、動作の呼び出しのようなイベントの呼び出し、オブジェクトの作成/破棄、信号の送信に使います。
インタラクション図で使用されるメッセージは、以下のように分類できます。
●同期メッセージ:この種類のメッセージの場合、送信者は、メッセージの実行から受信者が指令を返すのを待っています。
●非同期メッセージ:送信者が次のメッセージの実行を繰り返し、受信者から指令の返信を待ちません。
●返信メッセージ:メッセージの受信者が送信者に指令そのものを返します。
●オブジェクトの作成:送信者がクラシファイアのインスタンスを作成します。
●オブジェクトの破棄:送信者が作成したインスタンスを破棄します。
●検出されたメッセージ:送信者がインタラクションの範囲外にあります。
●無くなったメッセージ:プロセスの間にメッセージが無くなってしまい、受信元に届くことはありません。
3.3 オペレータ(演算子)
オペレータ(演算子)は操作の中で、どのようにメッセージがオペランド(被演算子)を実行するかを表します。また、ブランチングやイテレーションのデータ上の操作にも対応します。
インタラクションのオペレータの形式を以下に示します。
●Opt (オプション): 状態が正の場合、オペランドが働きます。
●Alt (オルタナティブ): 正の状態が実行される場合のオペランドです。
●Loop (ループ): このオペレータは、特定の期間、ループの指示を維持します。
●Break (ブレイク): 次の指示を実行するため、ループを破棄します。
●Ref (レファレンス): ほかのインタラクションを参照します。
●Par (パラレル): オペランドのすべてが平行して実行されます
3.4 ブランチング
決定付けをするアーティファクトに似ています。ブランチングでは、ガード状況が個別メッセージとともに送られます。このガード状況により、メッセージを転送できるかどうか確認されます。メッセージのガード状況が正の場合、転送されるでしょうか。メッセージは数値のガード状況でよいので、数字を使ったメッセージは同じ状況で働きます。
3.5 イテレーション
イテレーション(反復)は、インタラクション、スペシファイア(指定子)とイテレーション構文で構成されています。 パラレル・イテレーションのスペシファイアはパラレルメッセージを示す際に使われます。「*//」を使って表します。UMLでは、イテレーションはループオペレータにより働きます。
3.6 ステートの不変状態と制約
ステートは、オブジェクトのライフタイム期間中の状況や状態を表します。制約を満たしたり、さまざまな操作を実行したり、イベントを待ったりするために使われます。メッセージがステートの変更を呼び出したりするのがその例です。
Part 4: EdrawMaxでインタラクション図を作成する手順
手順1:EdrawMaxを起動します。[新規作成]>[ソフトウェア開発]>[UMLモデリング] を順にクリックします。
相互作用図から必要な相互作用図のテンプレートを選択できます。適宜、変更を加えてください。
手順2:まったく新しく図を描きたい場合は、[+] 記号をクリックしてください。広いグラウンドを思わせる空白のキャンバスが表示されます。左側のペイン(領域)から利用できる記号や形(シェイプ)を使って図を作成します。左側のメニューにあるライブラリをインポートしてUML相互作用図をカスタマイズすることもできます。
手順3:作成した図を保存します。EdrawMaxでは、画像、PDF、編集可能なMS Officeファイル、SVGや Visioファイルなど、さまざまなフォーマットでファイルをエクスポートすることもできます。
Part 4: インタラクション図の作成におけるヒントと実例
相互作用図に必要な事項を以下に示します。作図の際は、以下の点を十分留意してください。
1. システムの組織と構造をレイアウトします。
2. コミュニケーションに関わるライフラインの合計数を出します。
3. 次に、システム内の複数の実体間にあるメッセージの流れのシーケンスを確認します。
4. 厳密で透明性を重視する上では、異なるメッセージが複数あり、インタラクションを表すことがあります。
5. オブジェクトのコンストラクタ(構成子)の合計数を決定します。
上図:EdrawMaxで作成したインタラクション図
これはオンラインショッピングのインタラクション図の例です。エンドユーザーが商品の検索や閲覧をお⒦なったり、ショッピングカートに商品を追加/削除したり、会計を行ったりします。
Part 5: まとめ
EdrawMaxはUML図を作成するためのオールインワンの作図成ツールであり、UMLインタラクション図やその他のタイプのダイアグラムを簡単に作成できます。また、複数の形式でエクスポートし、他の人と共有することもできます。 ぜひEdrawMaxをダンロードして、UMLインタラクション図を作成してみてください!