インタラクション、コラボレーション、シーケンス図と例

インタラクション図とは何ですか?

相互作用図 UML では、オブジェクト間の通信を確立するために使用されます。 特定の通信パスに関連付けられたデータは操作されません。 対話図は主に、メッセージの受け渡しと、これらのメッセージがシステムの XNUMX つの機能をどのように構成するかに焦点を当てています。 相互作用図は、オブジェクトがシステムの特定の要件をどのように実現するかを表示するように設計されています。 インタラクション図の重要なコンポーネントはライフラインとメッセージです。

さまざまな UML 要素には通常、相互作用図があります。相互作用の詳細は、シーケンス図、タイミング図、コミュニケーション/コラボレーション図などのいくつかの表記法を使用して表示できます。相互作用図は、あらゆるシステムの動的な動作を捉えます。

相互作用図
相互作用図の表記法

UML で定義されているさまざまな種類の相互作用図を次に示します。

  • シーケンス図
  • 連携図
  • タイミング図

シーケンス図の目的 UML図 システム内のメッセージの流れを視覚化することです。 ソフトウェア エンジニアリングのシーケンス図は、XNUMX つのライフライン間の相互作用を時系列のイベント シーケンスとして示します。

UML のコラボレーション図はコミュニケーション図とも呼ばれます。 コラボレーション図の目的は、システムの構造的側面、つまりシステム内のさまざまなライフラインがどのように接続されているかを強調することです。

タイミング図は、あるオブジェクトから別のオブジェクトにメッセージが送信される瞬間に焦点を当てています。

インタラクション図の目的

インタラクション図は、システムのインタラクティブな動作を視覚化するのに役立ちます。 相互作用図は、システム内の XNUMX つ以上のオブジェクトがどのように接続し、相互に通信するかを表すために使用されます。

相互作用図は、システムの動的な動作に焦点を当てています。 相互作用図は、システム内の XNUMX つ以上のライフライン間の相互作用のコンテキストを提供します。

In UML相互作用図は次の目的で使用されます。

  • 相互作用図は、システムの動的な動作を観察するために使用されます。
  • インタラクション図は、システム内の通信とメッセージ受け渡しのシーケンスを視覚化します。
  • インタラクション モデリング図は、システム内のさまざまなオブジェクトの構造的側面を表します。
  • 相互作用図は、システム内の相互作用の順序付けされたシーケンスを表します。
  • インタラクション ダイアグラムは、UML を介してリアルタイム データを視覚化する手段を提供します。
  • UML 相互作用図は、オブジェクト指向システムまたは分散システムのアーキテクチャを説明するために使用できます。

重要な用語

相互作用図には、ライフライン、メッセージ、演算子、状態不変条件、および制約が含まれます。

ライフライン

ライフラインは、インタラクションにおける XNUMX 人の参加者を表します。 これは、特定の分類子のインスタンスがどのように対話に参加するかを説明します。

ライフラインは、分類子のインスタンスが相互作用において果たす役割を表します。ライフラインのさまざまな属性は次のとおりです。

  1. お名前
    1. 特定のインタラクション内のライフラインを参照するために使用されます。
    2. ライフラインの名前はオプションです。
  2. 種類
    1. これは、ライフラインがインスタンスを表す分類子の名前です。
  3. Selector
    1. これは、要件を満たす特定のインスタンスを選択するために使用されるブール条件です。
    2. セレクター属性もオプションです。

ライフラインの表記については、表記のセクションで説明します。

メッセージ

メッセージとは、相互作用における2つのライフライン間の特定のタイプのコミュニケーションです。メッセージには、以下のアクティビティが含まれます。

  1. 操作を呼び出すために使用される呼び出しメッセージ。
  2. インスタンスを作成するためのメッセージ。
  3. インスタンスを破棄するメッセージ。
  4. 信号を送るため。

ライフラインが呼び出しメッセージを受信すると、そのメッセージは、メッセージで指定されたものと同様のシグネチャを持つ操作を呼び出す要求として機能します。ライフラインがメッセージを実行しているとき、制御のフォーカスがあります。時間の経過とともに対話が進行するにつれて、制御のフォーカスはさまざまなライフライン間を移動します。この移動は制御のフローと呼ばれます。

システム相互作用図で使用されるメッセージは次のとおりです。

メッセージ名 意味
Syncひどいメッセージ メッセージの送信者は、受信者がメッセージの実行から制御を戻すのを待ち続けます。
非同期メッセージ 送信者は受信者からの返信を待ちません。 代わりに、次のメッセージの実行を続行します。
返信メッセージ 以前のメッセージの受信者は、制御のフォーカスを送信者に返します。
オブジェクトの作成 送信者は分類子のインスタンスを作成します。
オブジェクトの破壊 送信者は作成されたインスタンスを破棄します。
メッセージが見つかりました メッセージの送信者は対話の範囲外です。
メッセージの紛失 メッセージは宛先に到達せず、対話の中で失われます。

状態の不変条件と制約

インスタンスまたはライフラインがメッセージを受信すると、状態が変化することがあります。状態とは、オブジェクトの存続期間中に何らかの制約を満たし、何らかの操作を実行し、何らかのイベントを待機する条件または状況のことです。

相互作用図では、すべてのメッセージがインスタンスの状態を変更するわけではありません。 一部のメッセージには、一部の属性の値がありません。 オブジェクトの状態に副作用はありません。

Operaタ

演算子は、オペランドの実行方法に関する操作を指定します。UML の演算子は、分岐と反復の形式でデータに対する操作をサポートします。さまざまな演算子を使用して、UML モデルで反復と分岐を確実に使用できます。分岐操作には opt 演算子と alt 演算子を使用します。ループ演算子は、条件が繰り返し実行され、満足のいく結果が得られるまで反復操作が確実に実行されるようにします。break 演算子は、ループまたは反復操作内で使用します。break 演算子に遭遇するたびにループが終了するようにします。break 条件が指定されていない場合、ループは無限回実行され、プログラムがクラッシュします。

相互作用図で使用される演算子は次のとおりです。

Operaタ お名前 意味
オプト オプション 条件が真の場合にオペランドが実行されます。
たとえば、そうでない場合
他の Alternative 条件が真であるオペランドが実行されます。
例: スイッチ
ループ ループ 指定した期間、命令をループするために使用されます。
ブレーク ブレーク 条件が true または false の場合にループが中断され、次の命令が実行されます。
参考文献 参照 別のインタラクションを参照するために使用されます。
パー 並列シミュレーションの設定 すべてのオペランドは並列に実行されます。

繰り返し

相互作用図では、反復式を使用して反復を示すこともできます。 反復式は、反復指定子とオプションの反復句で構成されます。 UML 反復用に事前に指定された構文はありません。

反復処理では、メッセージが並列に送信されていることを示すために、並列反復指定子が使用されます。並列反復指定子は *// で示されます。UML での反復処理は、ループ演算子を使用して実現されます。

分岐

相互作用図では、メッセージにガード条件を追加することで分岐を表すことができます。ガード条件は、メッセージを転送できるかどうかを確認するために使用されます。メッセージは、ガード条件が true の場合にのみ転送されます。メッセージには複数のガード条件を設定できます。また、複数のメッセージに同じガード条件を設定できます。UML での分岐は、alt 演算子と opt 演算子を使用して実現されます。

これらのいくつかである 最も重要な UML インタラクション図で使用される用語。

相互作用図の種類と表記法

UML で定義されているさまざまな種類の相互作用図を次に示します。

  • シーケンス図
  • 連携図
  • タイミング図

相互作用の基本的な表記は、長方形のボックスの左上隅に五角形がある長方形です。

シーケンス図とは何ですか?

A シーケンス図 単にオブジェクト間の相互作用を順番に描いているだけです。 UML のシーケンス図の目的は、システム内のメッセージ フローのシーケンスを視覚化することです。 シーケンス図は、XNUMX つのライフライン間の相互作用を時系列のイベント シーケンスとして示します。

  • シーケンス図は、システム内のシナリオの実装を示します。 システム内のライフラインは、システムの実行中に関与します。
  • シーケンス図では、ライフラインは縦棒で表されます。
  • XNUMX つ以上のオブジェクト間のメッセージ フローは、ページの下部を横切る垂直の点線を使用して表されます。
  • シーケンス図では、上で説明したさまざまな種類のメッセージと演算子が使用されます。
  • シーケンス図では、反復と分岐も使用されます。
シーケンス図
シーケンス図の表記について

上記のシーケンス図には、ライフライン表記と、作成、応答、非同期メッセージなど、シーケンス図で使用されるさまざまなメッセージの表記が含まれています。

シーケンス図例

次のシーケンス図の例は、マクドナルドの注文システムを表しています。

シーケンス図
マクドナルドの注文システムのシーケンス図

特定のシーケンス図におけるイベントの順序付けされたシーケンスは次のとおりです。

  1. 注文する。
  2. 現金カウンターにお金を支払います。
  3. 注文の確認。
  4. 注文の準備。
  5. サービングを注文します。

操作の順序を変更すると、プログラムがクラッシュする可能性があります。また、不正確な結果やバグのある結果が生成される可能性もあります。上記のシーケンス図の各シーケンスは、異なるタイプのメッセージを使用して表されます。システムが複雑になるため、図内のすべての相互作用を同じタイプのメッセージで表すことはできません。

特定のインタラクションに対するメッセージの表記を選択するときは注意が必要です。 表記は図内の特定のシーケンスと一致する必要があります。

シーケンス図の利点

  • シーケンス図は、実際のアプリケーションやシステムを調べるために使用されます。
  • シーケンス図は、あるオブジェクトから別のオブジェクトへのメッセージ フローを表すために使用されます。
  • シーケンス図は保守が容易です。
  • シーケンス図の生成が簡単になります。
  • システム内の変更に応じてシーケンス図を簡単に更新できます。
  • シーケンス図では、フォワード エンジニアリングだけでなくリバース エンジニアリングも可能です。

シーケンス図の欠点

  • システムに関係するライフラインが多すぎると、シーケンス図が複雑になる可能性があります。
  • メッセージ シーケンスの順序が変更されると、誤った結果が生成されます。
  • 各シーケンスは異なるメッセージ表記を使用して表現する必要があり、少し複雑になる可能性があります。
  • メッセージのタイプによって、図内のシーケンスのタイプが決まります。

コラボレーション図とは何ですか?

コラボレーション図 ソフトウェア オブジェクト間の関係と相互作用を表します。シーケンス図のようなメッセージの流れではなく、システム内のオブジェクト アーキテクチャを理解するために使用されます。「コミュニケーション図」とも呼ばれます。

オブジェクト指向プログラミング (OOP) によると、オブジェクト エンティティにはさまざまな属性が関連付けられています。通常、オブジェクト指向システム内には複数のオブジェクトが存在し、各オブジェクトはシステム内の他のオブジェクトと関連付けることができます。コラボレーション図は、システム内のオブジェクトのアーキテクチャを調べるために使用されます。オブジェクト間のメッセージ フローは、コラボレーション図を使用して表すことができます。

コラボレーション図の利点

  • コミュニケーション図とも呼ばれます。
  • 相互作用図の構造的側面、つまりライフラインがどのように接続されるかを強調します。
  • ライフラインに末尾がないことを除いて、その構文はシーケンス図の構文に似ています。
  • シーケンスを介して渡されるメッセージは、各メッセージに階層的に番号を付けることによって示されます。
  • シーケンス図と比較すると、通信図は意味的に弱いです。
  • オブジェクト図は通信図の特殊なケースです。
  • これにより、シーケンス図で説明されているメッセージ フローではなく、要素に焦点を当てることができます。
  • コラボレーション図は表現力があまり高くないため、シーケンス図は簡単にコラボレーション図に変換できます。
  • コラボレーション図とシーケンス図をモデリングしているときに、一部の情報が失われる可能性があります。

コラボレーション図の表記法
コラボレーション図の表記法

上記のコラボレーション図の表記には、コラボレーション図で使用されるコネクタ、自己ループ、順方向および逆方向のメッセージとともにライフラインが含まれています。

コラボレーション図の欠点

  • システム内に存在するオブジェクトが多すぎると、コラボレーション図が複雑になる可能性があります。
  • システム内の各オブジェクトを探索するのは困難です。
  • コラボレーション図には時間がかかります。
  • オブジェクトはプログラムの終了後に破棄されます。
  • オブジェクトの状態は瞬間的に変化するため、システムのオブジェクト内で発生するすべての変化を追跡することが困難になります。

連携図例

次の図は、学生管理システムのシーケンスを表しています。

コラボレーション図

学生管理システムの連携図

上の連携図は学生情報管理システムを表しています。 上図の通信の流れは次のようになります。

  1. 学生はログイン システムを通じてログインを要求します。
  2. ソフトウェアの認証メカニズムがリクエストをチェックします。
  3. データベースに学生のエントリが存在する場合はアクセスが許可され、存在しない場合はエラーが返されます。

タイミング図とは何ですか?

タイミング図 は、任意の時点におけるライフラインの状態を表すために使用される波形またはグラフです。オブジェクトが 1 つの形式から別の形式に変換されることを示すために使用されます。タイミング図には、シーケンス図やコラボレーション図で必要な表記法は含まれていません。さまざまな時点におけるソフトウェア プログラム間のフローは、波形を使用して表されます。

  • これは、さまざまなオブジェクト間で送信されるメッセージの特定のタイミングに焦点を当てた対話を適切に表現したものです。
  • タイミング図は、特定のオブジェクトの詳細な時間処理を説明するために使用されます。
  • タイミング図は、オブジェクトがその存続期間内にどのように変化するかを説明するために使用されます。
  • タイミング図は主に分散システムおよび組み込みシステムで使用されます。
  • UML では、タイミング図は、左端で指定されたライフラインの名前に従って左から右に読まれます。
  • タイミング ダイアグラムは、ライフライン内で時々発生するさまざまな変化を表すために使用されます。
  • タイミング ダイアグラムは、単位時間あたりのライフラインのさまざまな状態をグラフィカルに表示するために使用されます。
  • UML には、単位時間あたりの XNUMX つのライフライン間の遷移状態を簡略化するためのさまざまな表記法が用意されています。

タイミング図の例

以下に示すタイミング図は、 ソフトウェア開発ライフサイクル.

タイミング図

タイミング図の例

上の図では、ソフトウェアはまず要件フェーズ、次に設計フェーズ、そして開発フェーズを通過します。その時点における前のフェーズの出力は、2 番目のフェーズに入力として与えられます。したがって、タイミング図は、UML で SDLC (ソフトウェア開発ライフサイクル) を記述するために使用できます。

タイミング図の利点

  • タイミング図は、特定の時点におけるオブジェクトの状態を表すために使用されます。
  • タイミング図により、フォワードエンジニアリングだけでなくリバースエンジニアリングも可能になります。
  • タイミング図を使用して、システム内のあらゆる変化を追跡できます。

タイミング図の欠点

  • タイミング図は理解するのが難しいです。
  • タイミング図を維持するのは困難です。

インタラクション図を描くにはどうすればよいですか?

インタラクション図は、システムのインタラクティブな動作を表すために使用されます。 相互作用図は、システムの動的な動作に焦点を当てています。 相互作用図は、システム内の XNUMX つ以上のライフライン間の相互作用のコンテキストを提供します。

相互作用図を描くには、まず相互作用図を描くシナリオを決定する必要があります。状況を決定したら、相互作用に関係するさまざまなライフラインを特定します。ライフラインのすべての要素を分類し、それらを調べて、考えられる接続とライフライン同士の関係を特定します。相互作用図を描くには、次のものが必要です。

  1. インタラクションの一部となるライフラインの総数
  2. システムのさまざまなオブジェクト内の一連のメッセージ フローです。
  3. 相互作用図の機能を容易にするさまざまな演算子。
  4. インタラクションをより明確かつ正確に表示するためのさまざまな種類のメッセージ。
  5. 順序付けられたメッセージのシーケンス。
  6. オブジェクトの組織と構造。
  7. オブジェクトのさまざまな時間構造。

相互作用図の使用

相互作用図は、シーケンス図、コラボレーション図、タイミング図で構成されます。相互作用図の具体的な目的は次のとおりです。

  • シーケンス図は、実際のアプリケーションやシステムを調べるために使用されます。
  • インタラクション図は、シーケンス図、コラボレーション図、タイミング図の使用法を調査および比較するために使用されます。
  • 相互作用図は、システムの動作をキャプチャするために使用されます。 システムの動的構造を表示します。
  • シーケンス図は、あるオブジェクトから別のオブジェクトへのメッセージ フローを表すために使用されます。
  • コラボレーション図は、メッセージ フローではなく、システムのオブジェクト アーキテクチャを理解するために使用されます。
  • 相互作用図は、システムを時間順のイベントのシーケンスとしてモデル化するために使用されます。
  • 相互作用図は、フォワード エンジニアリングだけでなくリバース エンジニアリングでも使用されます。
  • インタラクション図は、インタラクティブな要素の構造を整理するために使用されます。

まとめ

  • インタラクションは、分類子の動作の単なる単位です。
  • インタラクション図の重要な要素はライフラインとメッセージです。
  • インタラクション図は主にメッセージの受け渡しに重点を置いています。
  • 相互作用図は、あらゆるシステムの動的な動作をキャプチャします。
  • インタラクション図には、シーケンス図、タイミング図、通信/コラボレーション図が含まれます。
  • シーケンス UML 図は、システム内のメッセージの流れのシーケンスを視覚化するものです。
  • コラボレーション図の目的は、構造的な側面を強調することです。
  • タイミング図は、あるオブジェクトから別のオブジェクトにメッセージが送信される瞬間に焦点を当てています。