Uml-interaction-diagram

提供:Dev Guides
移動先:案内検索

UML-相互作用図

相互作用という用語から、ダイアグラムがモデル内のさまざまな要素間の相互作用のあるタイプを記述するために使用されていることは明らかです。 この相互作用は、システムの動的な動作の一部です。

このインタラクティブな動作は、UMLでは*シーケンス図*および*コラボレーション図*と呼ばれる2つの図で表されます。 両方の図の基本的な目的は似ています。

シーケンス図は、メッセージの時系列を強調し、コラボレーション図は、メッセージを送受信するオブジェクトの構造的編成を強調します。

相互作用図の目的

相互作用図の目的は、システムのインタラクティブな動作を視覚化することです。 相互作用を視覚化するのは難しい作業です。 したがって、解決策は、さまざまなタイプのモデルを使用して、相互作用のさまざまな側面をキャプチャすることです。

シーケンス図とコラボレーション図は、動的な性質を異なる角度からキャプチャするために使用されます。

相互作用図の目的は-

  • システムの動的な動作をキャプチャします。
  • システム内のメッセージフローを記述します。
  • オブジェクトの構造編成を記述するため。
  • オブジェクト間の相互作用を記述するため。

相互作用図の作成方法

すでに説明したように、相互作用図の目的は、システムの動的な側面をキャプチャすることです。 そのため、動的な側面をキャプチャするには、動的な側面とは何か、どのように視覚化されるかを理解する必要があります。 動的な側面は、特定の瞬間に実行中のシステムのスナップショットとして定義できます

UMLには2種類の相互作用図があります。 1つはシーケンス図で、もう1つはコラボレーション図です。 シーケンス図は、あるオブジェクトから別のオブジェクトへのメッセージフローの時系列をキャプチャし、コラボレーション図は、メッセージフローに参加するシステム内のオブジェクトの編成を説明します。

相互作用図を描く前に、次のことを明確に識別する必要があります

  • 相互作用に参加するオブジェクト。
  • オブジェクト間でメッセージが流れます。
  • メッセージが流れる順序。
  • オブジェクト編成。

以下は、注文管理システムをモデル化する2つの相互作用図です。 最初の図はシーケンス図で、2番目はコラボレーション図です

シーケンス図

シーケンス図には、4つのオブジェクト(Customer、Order、SpecialOrder、およびNormalOrder)があります。

次の図は、_SpecialOrder_オブジェクトのメッセージシーケンスを示しており、_NormalOrder_オブジェクトの場合にも同じことが使用できます。 メッセージフローの時系列を理解することが重要です。 メッセージフローは、オブジェクトのメソッド呼び出しに他なりません。

最初の呼び出しは、_Order object_のメソッドである_sendOrder()_です。 次の呼び出しは、_SpecialOrder_オブジェクトのメソッドである_confirm()_です。最後の呼び出しは、_SpecialOrder_オブジェクトのメソッドである_Dispatch()_です。 次の図は、1つのオブジェクトから別のオブジェクトへのメソッド呼び出しを主に説明しています。これは、システムが実行されているときの実際のシナリオでもあります。

UMLシーケンス図

コラボレーション図

2番目の相互作用図はコラボレーション図です。 次の図に示すように、オブジェクトの構成を示しています。 コラボレーション図では、メソッド呼び出しシーケンスは番号付け手法によって示されます。 番号は、メソッドが次々に呼び出される方法を示します。 同じ注文管理システムを使用して、コラボレーション図を説明しました。

メソッド呼び出しは、シーケンス図の呼び出しに似ています。 ただし、シーケンス図であるという違いはオブジェクト編成を説明するものではありませんが、コラボレーション図はオブジェクト編成を示しています。

これら2つの図から選択するために、要件のタイプに重点が置かれています。 時系列が重要な場合は、シーケンス図が使用されます。 組織が必要な場合は、コラボレーション図が使用されます。

UMLコラボレーション図

相互作用図の使用場所

システムの動的な性質を説明するために相互作用図が使用されることはすでに説明しました。 次に、これらの図が使用される実際のシナリオを調べます。 実用的なアプリケーションを理解するには、シーケンス図とコラボレーション図の基本的な性質を理解する必要があります。

両方の図の主な目的は、システムの動的な動作をキャプチャするために使用されるため、似ています。 ただし、明確に理解するためには、特定の目的がより重要です。

シーケンス図は、あるオブジェクトから別のオブジェクトに流れるメッセージの順序をキャプチャするために使用されます。 コラボレーション図は、相互作用に参加するオブジェクトの構造的編成を記述するために使用されます。 システム全体の動的な側面を説明するには、単一のダイアグラムでは不十分であるため、一連のダイアグラムを使用して全体をキャプチャします。

相互作用図は、メッセージフローと構造的な組織を理解するときに使用されます。 メッセージフローとは、あるオブジェクトから別のオブジェクトへの制御フローのシーケンスを意味します。 構造的編成とは、システム内の要素の視覚的編成を意味します。

相互作用図を使用することができます-

  • 制御の流れを時系列でモデル化する。
  • 構造組織による制御の流れをモデル化する。
  • フォワードエンジニアリング用。
  • リバースエンジニアリング用。