UMLシーケンス図は、システム内での操作の実行方法を詳細に示す重要な相互作用図です。協働の文脈におけるオブジェクト間の相互作用を捉えることで、メッセージの交換順序を具体的に示す時間の視覚的表現を提供します。
この包括的なガイドは、基本的な定義から複雑な結合断片までをカバーしており、相互作用の挙動を効果的にモデル化するのに役立ちます。
シーケンス図(別名:順序図)はUMLの相互作用図です。複数のオブジェクト間でメッセージが送信される時間的順序を記述することで、それらの動的協働を示します。他のUML図とは異なり、シーケンス図は相互作用の挙動の時系列順序に特に注目し、並行処理のプロセスを視覚的に表現します。
複雑なシーケンス図を手動で作成するのは時間のかかる作業であり、ライフラインの正確な配置と、すべてのメッセージタイプに対する正確な表記が求められます。Visual Paradigm AIこのプロセスを変革し、自然言語によるプロンプトでプロフェッショナルなUMLシーケンス図を生成できるようにします。
複雑なシナリオに取り組む前に、シーケンス図を構成する基盤となる要素を理解することが不可欠です。
エクターは、システムと相互作用するエンティティが果たす役割を表します。たとえば人間のユーザー、機械、外部システムなどが該当します。エクターは必ずしも特定の物理的エンティティを表すわけではなく、単に特定の役割を表すことに注意してください。一人の人物が複数のエクターの役割を果たすこともあり、逆に、一つのエクターの役割を複数の人物が果たすことも可能です。
オブジェクトは、オブジェクト名を含む長方形で表されます。UMLではオブジェクトの名前付けに3つの標準的な方法があります:
オブジェクト:クラス).:コース).講師).ヒント:頻繁に相互作用するオブジェクトは近くに配置してください。相互作用を開始するオブジェクトは通常、左端に配置されます。
オブジェクトアイコンから下に延びる破線は、オブジェクトの存在期間を示します。この縦軸は時間を表します。
ライフライン上に細い長方形で表されるコントロールの焦点(またはアクティベーション期間)は、要素が処理を実行している時間帯を示します。長方形の上端は処理の開始時刻と一致し、下端は処理の完了時刻と一致します。
メッセージはライフライン間の通信を定義します。送信者は制御または信号を受信者に渡します。
参加者は常に図の全期間にわたって存在するわけではありません。コンストラクタメッセージは受信者を作成します(新しいオブジェクトを図の下部に配置します)。デストラクタメッセージは受信者を破壊し、そのライフラインを終了します。
ループ、分岐、代替などの複雑な論理をモデル化するため、UMLは結合断片を使用します。これらは相互作用の一部を囲む長方形の枠です。
| 演算子 | 意味 |
|---|---|
| alt | 複数のフラグメントの選択肢;条件が真であるものだけが実行される(if..elseと同等)。 |
| opt | オプション;条件が真のときのみフラグメントが実行される。 |
| loop | フラグメントはガード条件に基づいて複数回実行される。 |
| break | ガードが真になったときに、囲まれたループを脱出できる(例外処理にしばしば使用される)。 |
| par | 並列;各フラグメントが同時に実行される。 |
| critical | 臨界領域;一度に一つのスレッドしかこのフラグメントを実行できない。 |
| ref | 参照;別の図で定義された相互作用を指す。 |
顧客が注文オブジェクトと在庫オブジェクトとやり取りするシナリオを考える。流れは以下の通りである:
このシナリオでは、注文の作成は作成メッセージ、在庫の確認は同期メッセージ、注文の保存はセルフメッセージまたはデータベースオブジェクトへの呼び出しです。
「Break」フラグメントを使用すると、エラーをモデル化するのに最適です。たとえば、銀行取引の場合:
残高 < 金額.addDebitTransactionメッセージが続行されます。図が準拠しており、読みやすいことを確認するため、以下の簡単な記法チェックリストをご参照ください: