シーケンス図とは何か

両方のシーケンス図とコラボレーション図は、インタラクション図の種類です。インタラクション図はシステムの動的ビューに焦点を当てます。シーケンス図は、メッセージの時間的順序に重点を置いたインタラクション図です。シナリオに関与するオブジェクトやクラス、およびシナリオの機能を実行するために必要なオブジェクト間で交換されるメッセージの順序を示します。通常、1つのシーケンス図でユースケースの主なフローを指定し、その変形版でユースケースの例外的なフローを指定します。
Sequence Diagram, UML Diagrams Example: Break Communication Fragment - Visual Paradigm Community Circle

シーケンス図の構成要素

オブジェクト

UMLでは、シーケンス図内のオブジェクトは、その名前が下線を引かれた矩形として描かれます。オブジェクトの名前は以下の3つの方法のいずれかで指定できます:オブジェクト名、オブジェクト名とそのクラス名、または単なるクラス名(匿名オブジェクト)。オブジェクトの名前の3つの方法は以下の図に示されています。

ライフライン

コラボレーション(シナリオ)の参加者のエンティティは、図の上部に水平に記述されます。ライフラインは、各オブジェクトの下に描かれた点線の垂直線で表されます。これらはオブジェクトの存在を示しています。

Lifelines

オブジェクト名は特定のもの(例:myAccount)である場合もあれば、一般的なもの(例:myAccount :Account)である場合もあります。多くの場合、クラス内の任意のオブジェクトを表すために匿名オブジェクト(:Account)が使用されます。各オブジェクトには、その下に点線で表されたタイムラインがあります。オブジェクト間のメッセージは、送信元オブジェクトから受信元オブジェクトへ向かう矢印で表されます。

オブジェクト指向システムにおけるすべての処理は、オブジェクトによって行われます。オブジェクトは、データの管理、システム内のデータの移動、問い合わせへの対応、システムの保護などの責任を担います。オブジェクトは、互いに通信または相互作用することで協働します。

メッセージ

メッセージは、操作の呼び出しを水平方向に示します。送信元から受信元へと描かれます。順序は垂直方向の位置によって示され、最初のメッセージは図の上部に、最後のメッセージは図の下部に表示されます。その結果、シーケンス番号は省略可能です。

線の種類と矢印の先端の種類は、使用されているメッセージの種類を示します:

  1. ある同期メッセージ(通常は操作呼び出し)は、実線と塗りつぶされた矢印頭で表されます。送信者と受信者間の通常の通信に使用される通常のメッセージ呼び出しです。
    Lifelines with synchronous message
  2. ある戻りメッセージは、点線と開放された矢印頭を使用します。
    Lifelines with return message
  3. ある非同期メッセージは、実線と開放された矢印頭を持ちます。シグナルは、返信のない非同期メッセージです。
    Lifelines with asynchronous

生成と破棄メッセージ

参加者は、シーケンス図のインタラクションの全期間にわたって存在する必要はありません。参加者は、送信されているメッセージに応じて生成されたり破棄されたりします。

あるコンストラクタメッセージはその受信者を生成します。インタラクションの開始時点で既に存在する送信者は、図の上部に配置されます。コンストラクタ呼び出しによってインタラクション中に生成されるターゲットは、自動的に図の下部に配置されます。

Lifelines with constructorA

破棄メッセージ受信者を破棄する。相互作用中にターゲットが破棄されることを示す他の方法もある。ターゲットの破棄が「破棄メッセージの後」に設定されている場合にのみ、破棄メッセージを使用する必要がある。

Lifelines with destructor

非即時メッセージ

メッセージはしばしば即時的であると見なされるため、受信者に到達するまでの時間は無視できる。メッセージは水平の矢印で描かれる。受信者が実際にメッセージを受け取るまでに一定の時間がかかる場合を示すために、斜めの矢印が使用される.

Lifelines with instantaneous message

制御の焦点

制御の焦点は、要素が処理を実行している期間を表す。矩形の上端と下端はそれぞれ開始時刻と完了時刻に合わせて配置される

反復記法

反復記法複数の受信オブジェクトに何度もメッセージが送信されることを表す。コレクションを反復処理する場合に起こる。反復の根拠を括弧内に示すことができる。たとえば *[すべての注文行について] など。

例:注文の作成

この例は、3つの参加オブジェクト(顧客、注文、在庫)を含むシーケンス図を示している。正式な記法を知らなくても、何が起こっているか大まかに理解できるだろう。

  1. ステップ1と2:顧客が注文を作成する。
  2. ステップ3:顧客が注文に商品を追加する。
  3. ステップ4、5:各商品について在庫の有無が確認される。
  4. ステップ6、7、8:商品が在庫にある場合、注文に追加される。
  5. ステップ9:戻り
  6. ステップ10、11:注文を保存して破棄する

Sequence Diagram example

シーケンス断片

UMLシーケンス図では、結合断片を使用してループ、分岐、その他の選択肢を表示できる。結合断片は1つ以上の相互作用オペランドから構成され、それぞれが1つ以上のメッセージ、相互作用の使用、または結合断片を含む。

シーケンス断片は、結合断片と呼ばれるボックスとして表され、シーケンス図内の一部の相互作用を囲む。断片演算子(左上隅に位置)は断片の種類を示す。断片の種類には、ref、assert、loop、break、alt、opt、neg、ref、sdがある。

シーケンス図記法の要約

演算子 意味
alt 複数の断片の選択肢:条件が真であるものだけが実行される。
opt オプション: フラグメントは、提供された条件が真である場合にのみ実行されます。1つのトレースを持つaltと同等です。
並列 並列: 各フラグメントは並列で実行されます。
ループ ループ: フラグメントは複数回実行される可能性があり、ガードは反復の基準を示します。
クリティカル領域 クリティカル領域: フラグメントは一度に1つのスレッドのみが実行できます。
否定 否定: フラグメントは無効な相互作用を示します。
参照 参照: 他の図で定義された相互作用を参照します。フレームは、相互作用に関与するライフラインをカバーするように描かれます。パラメータと戻り値を定義できます。
順序図 順序図: 全ての順序図を囲むために使用されます。

例 – 注文のシナリオ

オンラインで注文したい船の会員。注文された商品は、会員のステータス(VIP、通常会員)に応じて、宅配便または通常の郵便で送られます。会員が注文時に通知オプションを選択した場合、店舗は会員に確認通知を送信する可能性があります。

Sequence Diagram example

Visual Paradigmは順序図およびその他のUML図タイプをサポートしています。順序図を使用してシステムの動的動作をモデル化するためのすべてのツールがそろっています。

クイック動画 – 順序図を描く5つのステップ

概要

順序図は、オブジェクトの協働を時間順序に基づいてモデル化したものです。特定のユースケースシナリオにおけるオブジェクト同士の相互作用を示します。高度な視覚的モデリング機能により、数クリックで複雑な順序図を作成できます。さらに、Visual Paradigmは、ユースケース記述で定義したイベントの流れに基づいて順序図を生成できます。

 

参考文献

コメントを残す