シーケンス図チュートリアル–例を含む完全ガイド
公開: 2017-01-27このシーケンス図のチュートリアルは、シーケンス図をよりよく理解するのに役立ちます。 シーケンス図の描き方から、描くときに避けるべきよくある間違いまで、知っておくべきことをすべて説明します。
相互作用図には3つのタイプがあります。 シーケンス図、通信図、およびタイミング図。 これらの図は、システム内のパーツ間の相互作用を説明するために使用されます。 3つのうち、シーケンス図は、その単純さから、開発者と読者の両方に好まれています。
このシーケンス図のチュートリアルでは、以下について学習します。
- シーケンス図とは
- シーケンス図の表記
- シーケンス図のベストプラクティス
- シーケンス図の描き方
- シーケンス図のよくある間違い
- シーケンス図のテンプレートと例
- シーケンス図SlideShareプレゼンテーション
- シーケンス図ガイドに関するフィードバック
シーケンス図とは何ですか?
開発者が一般的に使用するシーケンス図は、単一のユースケースでオブジェクト間の相互作用をモデル化します。 これらは、システムのさまざまな部分が相互作用して機能を実行する方法と、特定のユースケースが実行されたときに相互作用が発生する順序を示しています。
簡単に言うと、シーケンス図は、システムのさまざまな部分が「シーケンス」で動作して何かを実行することを示しています。
は、システムのさまざまな部分が「シーケンス」で動作して何かを実行することを示しています。
シーケンス図の表記
シーケンス図は、相互作用のシーケンスをマークするために、上部から始まり徐々に下降するタイムラインを表すように構成されています。 各オブジェクトには列があり、それらの間で交換されるメッセージは矢印で表されます。
シーケンス図のさまざまな部分の概要
ライフライン表記
シーケンス図は、これらのライフライン表記のいくつかで構成されており、図の上部に水平に配置する必要があります。 2つのライフライン表記が互いに重複してはなりません。 これらは、シーケンス中にシステム内で相互作用するさまざまなオブジェクトまたはパーツを表します。
特定のシーケンス図がユースケースによって所有されている場合は、アクター要素記号を使用したライフライン表記が使用されます。
エンティティ要素を持つライフラインは、システムデータを表します。 たとえば、顧客サービスアプリケーションでは、顧客エンティティは顧客に関連するすべてのデータを管理します。
境界要素のあるライフラインは、システム内のシステム境界/ソフトウェア要素を示します。 たとえば、ユーザーインターフェイス画面、データベースゲートウェイ、またはユーザーが操作するメニューは境界です。
また、制御要素のあるライフラインは、制御エンティティまたはマネージャーを示します。 境界とエンティティ間の相互作用を整理およびスケジュールし、それらの間の仲介役として機能します。
アクティベーションバー
アクティベーションバーは、ライフラインに配置されるボックスです。 これは、2つのオブジェクト間の相互作用中にオブジェクトがアクティブ(またはインスタンス化)であることを示すために使用されます。 長方形の長さは、オブジェクトがアクティブである期間を示します。
シーケンス図では、1つのオブジェクトが別のオブジェクトにメッセージを送信すると、2つのオブジェクト間の相互作用が発生します。 メッセージ発信者(メッセージを送信するオブジェクト)とメッセージ受信者(メッセージを受信するオブジェクト)のライフラインでアクティブ化バーを使用すると、メッセージの交換中に両方がアクティブ/インスタンス化されることが示されます。
メッセージ矢印
メッセージ発信者からメッセージ受信者への矢印は、シーケンス図でメッセージを指定します。 メッセージはどの方向にも流れる可能性があります。 左から右へ、右から左へ、またはメッセージ発信者自体に戻ります。 あるオブジェクトから別のオブジェクトに送信されるメッセージを矢印で説明できますが、さまざまな矢印を使用して、送信または受信されるメッセージのタイプを示すことができます。
メッセージの矢印には、メッセージ署名と呼ばれる説明が付いています。 このメッセージ署名の形式は次のとおりです。 message_nameを除くすべての部分はオプションです。
属性=message_name(引数):return_type
- 同期メッセージ
アクティベーションバーの例に示されているように、同期メッセージは、送信者が受信者がメッセージを処理して戻ってくるのを待ってから別のメッセージを続行するときに使用されます。 このタイプのメッセージを示すために使用される矢印は、以下のような実線の矢印です。
- 非同期メッセージ
非同期メッセージは、メッセージの呼び出し元が受信者がメッセージを処理して戻ってくるのを待たずに、システム内の他のオブジェクトに他のメッセージを送信する場合に使用されます。 このタイプのメッセージを表示するために使用される矢印は、次の例に示すような線の矢印です。
- リターンメッセージ
戻りメッセージは、メッセージ受信者がメッセージの処理を完了し、メッセージ呼び出し元に制御を戻していることを示すために使用されます。 リターンメッセージはオプションの表記です。同期メッセージによってトリガーされるアクティベーションバーは、常にリターンメッセージを意味します。
ヒント:戻り値は最初のメッセージ矢印自体で指定できるため、戻りメッセージの使用を最小限に抑えることで、図が乱雑になるのを防ぐことができます。
- 参加者作成メッセージ
オブジェクトは、一連のイベントの全期間にわたって存続する必要はありません。 送信されるメッセージに応じて、オブジェクトまたは参加者を作成できます。
ドロップされた参加者ボックスの表記は、作成呼び出しが送信されるまで特定の参加者が存在しなかったことを示す必要がある場合に使用できます。 作成された参加者が作成直後に何かを行う場合は、参加者ボックスのすぐ下にアクティベーションボックスを追加する必要があります。
- 参加者破壊メッセージ
同様に、不要になった参加者もシーケンス図から削除できます。 これは、当該参加者のライフラインの最後に「X」を追加することによって行われます。
- 反射的なメッセージ
オブジェクトがそれ自体にメッセージを送信するとき、それは再帰メッセージと呼ばれます。 以下の例に示すように、同じライフラインで開始および終了するメッセージ矢印で示されます。
コメント
UMLダイアグラムでは、通常、すべてのUMLダイアグラムタイプでコメントの注釈を付けることができます。 コメントオブジェクトは、以下に示すように、角が折りたたまれた長方形です。 コメントは、破線で関連オブジェクトにリンクできます。
ノート: シーケンス図のベストプラクティスを表示して、シーケンスフラグメントについて学習します。
シーケンス図のベストプラクティス
- シーケンスフラグメントとの複雑な相互作用を管理する
シーケンスフラグメントは、シーケンス図のオブジェクト間の相互作用のセクション(以下の例に示す)を構成するボックスとして表されます。
これは、代替フローやループなどの複雑な相互作用をより構造化された方法で示すために使用されます。 フラグメントの左上隅にオペレーターが座っています。 これ(フラグメント演算子)は、フラグメントの種類を指定します。
代替案
代替の組み合わせフラグメントは、2つ以上のメッセージシーケンスから選択する必要がある場合に使用されます。 「ifthenelse」ロジックをモデル化します。
代替フラグメントは、大きな長方形またはフレームで表されます。 これは、フレームの名前ボックス(別名フラグメント演算子)内で「alt」を指定することによって指定されます。
次に、2つ以上の選択肢を示すために、上記のシーケンス図の例に示すように、大きい方の長方形を破線を使用して、いわゆる相互作用オペランドに分割します。 各オペランドにはテスト対象のガードがあり、オペランドの左上隅に配置されます。
オプション
オプションの組み合わせフラグメントは、特定の条件下でのみ発生するシーケンスを示すために使用されます。それ以外の場合、シーケンスは発生しません。 「ifthen」ステートメントをモデル化します。
代替フラグメントと同様に、オプションフラグメントも長方形のフレームで表され、「opt」が名前ボックス内に配置されます。
代替フラグメントとは異なり、オプションフラグメントは2つ以上のオペランドに分割されません。 オプションのガードは左上隅に配置されています。
(「シーケンス図のテンプレートと例」セクションで、オプションフラグメントを含むシーケンス図の例を見つけてください)。
ループ
ループフラグメントは、反復シーケンスを表すために使用されます。 フレームの左上隅の近くにある名前ボックスとガード条件に「loop」という単語を配置します。
ブールテストに加えて、ループフラグメントのガードは、他の2つの特別な条件に対してテストすることができます。 これらは、最小の反復( minint = [数]と表記)と最大の反復(maxint = [数値]と表記)です。
最小反復ガードの場合、ループは指定された数以上実行する必要があり、最大反復ガードの場合、ループは指定された数を超えて実行してはなりません。
(以下のシーケンス図テンプレートとサンプルセクションでループフラグメントの例を見つけてください)
参照フラグメント
refフラグメントを使用して、大きなシーケンス図のサイズを管理できます。 これにより、あるシーケンス図の一部を別のシーケンス図で再利用できます。つまり、refフラグメントを使用して、別の図の図の一部を参照できます。
参照フラグメントを指定するには、フレームの名前ボックスに「ref」と、フレーム内で参照されているシーケンス図の名前を指定する必要があります。
その他のシーケンスフラグメントについては、シーケンス図の基本を超えて:パート1 、パート2 、およびパート3を参照してください。
- ユースケースの本質を捉えた小さなシーケンス図を描く
読者を混乱させるいくつかのオブジェクトやメッセージのグループでシーケンス図を乱雑にする代わりに、システムが何をするかを適切に説明するいくつかの小さなシーケンス図を描きます。 図が1ページに収まり、説明用のスペースも残されていることを確認してください。
また、数十のシーケンス図を描く代わりに、シナリオに共通するものを見つけて、それに焦点を合わせます。 また、コードが表現力豊かで自立できる場合は、最初にシーケンス図を描く必要はありません。
シーケンス図の描き方
シーケンス図は、1つのユースケースにおけるイベントのシナリオまたはフローを表します。 シーケンス図のメッセージフローは、特定のユースケースの説明に基づいています。
次に、シーケンス図の描画を開始する前、またはシーケンス図に含める必要のある相互作用を決定する前に、ユースケース図を描画し、特定のユースケースの機能の包括的な説明を準備する必要があります。
上記の「新しいオンラインライブラリアカウントの作成」のユースケース図の例から、「新しいユーザーアカウントの作成」という名前のユースケースに焦点を当てて、シーケンス図の例を描きます。
シーケンス図を描く前に、新しいユーザーアカウントの作成に関与するオブジェクトまたはアクターを特定する必要があります。 これらは次のようになります。
- 司書
- オンライン図書館管理システム
- ユーザークレデンシャルデータベース
- メールシステム
オブジェクトを特定したら、ユースケースの機能に関する詳細な説明を書くことが重要です。 この説明から、ユースケースが実行されると、上記のオブジェクト間で発生する相互作用(シーケンス図に含まれるはずです)を簡単に把握できます。
「新しいライブラリユーザーアカウントの作成」という名前のユースケースで発生する手順は次のとおりです。
- 図書館員は、新しいオンラインライブラリアカウントを作成するようにシステムに要求します
- 次に、図書館員は図書館のユーザーアカウントタイプを選択します
- 司書はユーザーの詳細を入力します
- ユーザーの詳細は、ユーザー資格情報データベースを使用してチェックされます
- 新しいライブラリユーザーアカウントが作成されます
- 次に、新しいアカウントの詳細の概要がユーザーに電子メールで送信されます
これらの各ステップから、シーケンス図のオブジェクト間で交換するメッセージを簡単に指定できます。 明確になったら、先に進んでシーケンス図の描画を開始できます。
以下のシーケンス図は、オンラインライブラリ管理システムのオブジェクトが相互に作用して「新しいライブラリユーザーアカウントの作成」機能を実行する方法を示しています。
シーケンス図のよくある間違い
シーケンス図を描くとき、設計者はこれらのよくある間違いを犯す傾向があります。 これらの間違いを回避することで、ダイアグラムの品質を確保できます。
- 詳細を追加しすぎています。 これにより、図が乱雑になり、読みにくくなります。
- システムのインターフェース、実際のアーキテクチャなどと比較した場合に関係のない、廃止された古いシーケンス図。 それらを交換または変更することを忘れないでください。
- ユースケースのテキストとメッセージの矢印の間に空白を残さないでください。 これにより、誰もが図を読むことが難しくなります。
- メッセージ矢印の出所を慎重に考慮していません。
シーケンス図ガイド:シーケンス図を描画するときに避けるべき一般的な間違いで詳細に説明されているこれらの一般的な間違いを参照してください。
シーケンス図の例とテンプレート
以下は、Createlyを使用して描画されたシーケンス図の例とテンプレートです。 Createlyのオンラインツールを使用して、オンラインでシーケンス図を作成します。 テンプレートをクリックして、エディターで開きます。
オンライン試験システムのシーケンス図
オンライン試験システム–クラス図(UML)
学校管理システムのシーケンス図の例
オプションの組み合わせフラグメントの例
ループシーケンスの例
すぐに編集できるシーケンス図のテンプレートと例をいくつか示します。
シーケンス図チュートリアル–SlideShareプレゼンテーション
シーケンス図チュートリアルに関するフィードバック
このシーケンス図のチュートリアルでは、シーケンス図とその描画について知っておく必要のあるすべてのことを説明します。 シーケンス図のチュートリアルに関する提案や質問がある場合は、コメントを残してください。
その他の図のチュートリアル
- ビジネスプロセスモデリングチュートリアル(機能を説明するBPMガイド)
- 究極のフローチャートガイド(例を含む完全なフローチャートチュートリアル)
- ユースケース図チュートリアル(例付きガイド)