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

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

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

通常、さまざまな UML 要素が相互作用図を所有します。でtails インタラクションの様子は、シーケンス図、タイミング図、通信/コラボレーション図などのいくつかの表記法を使用して示すことができます。相互作用図は、あらゆるシステムの動的な動作をキャプチャします。

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

Following UML で定義されるさまざまなタイプの対話図は次のとおりです。

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

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

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

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

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

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

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

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

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

重要な用語

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

ライフライン

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

ライフラインは、分類子のインスタンスが対話において果たす役割を表します。 フォロwing ライフラインのさまざまな属性、

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

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

メッセージ

メッセージは、インタラクションにおける XNUMX つのライフライン間の特定のタイプの通信です。 メッセージには以下が含まれますwing 活動、

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

ライフラインが呼び出しメッセージを受信すると、メッセージで指定されているのと同様の署名を持つ操作を呼び出すリクエストとして機能します。 ライフラインがメッセージを実行しているとき、ライフラインには制御の焦点があります。 インタラクションが時間の経過とともに進行するにつれて、制御の焦点はさまざまなライフライン間で移動します。 この動きを制御の流れといいます。

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

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

状態の不変条件と制約

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

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

演算子

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

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

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

繰り返し

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

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

分岐

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

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

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

Following UML で定義されるさまざまなタイプの対話図は次のとおりです。

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

インタラクションの基本的な表記法は、長方形の左上隅に五角形がある長方形です。 box.

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

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

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

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

シーケンス図例

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

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

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

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

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

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

シーケンス図の利点

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

シーケンス図の欠点

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

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

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

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

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

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

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

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

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

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

連携図例

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

コラボレーション図

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

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

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

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

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

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

タイミング図の例

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

タイミング図

タイミング図の例

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

タイミング図の利点

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

タイミング図の欠点

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

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

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

相互作用図を描画するには、まず相互作用図を描画する必要があるシナリオを決定する必要があります。 状況を判断したら、相互作用に関与するさまざまなライフラインを特定します。 すべてのライフライン要素を分類し、それらを調査して、考えられる接続とライフラインが互いにどのように関連しているかを特定します。 相互作用図を描くには、次のようにします。wing 必要なもの:

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

相互作用図の使用

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

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

まとめ

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