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