【しーけんすず】

シーケンス図 とは?

最終更新:
💡 「誰が誰にいつ何を頼んだか」を時間軸で描く

オブジェクト間のメッセージのやり取りを時系列で表現するUMLダイアグラム。処理の流れを可視化する。

📌 このページのポイント
参加者間のメッセージを読む クライアント サーバー DB リクエスト 問い合わせ 結果の応答 レスポンス 実線:同期呼び出し / 破線:応答 上から下へ読む。間隔は秒数ではない
クライアント・サーバー・DBのやり取りの例。応答の矢じりには塗りつぶしも使える。
ひよこ ひよこ
シーケンス図の基本要素は?
ペンギン先生 ペンギン先生
参加者を示す頭部と縦の線がライフラインで、矢印が参加者間のメッセージだよ。ライフライン上の細い四角は、処理を実行している区間を表す実行指定。応答は破線の矢印で表し、戻り値などを書くこともできるんだ。
ひよこ ひよこ
どんな場面で使う?
ペンギン先生 ペンギン先生
APIの呼び出し、認証、データベースへの問い合わせなど、複数の部品がやり取りする場面だよ。「誰が誰に何を送り、どう応答するか」を図で共有すると、設計やレビューで流れを確認しやすいんだ。
ひよこ ひよこ
PlantUMLで描くのが楽?
ペンギン先生 ペンギン先生
PlantUMLでは「Browser -> Server: GET /api/users」のようなテキストから描けるよ。Mermaidにもシーケンス図の構文があり、GitHubのMarkdownではMermaidのコードブロックを使えるんだ。記法や描画結果はツールの仕様を確認しよう。
ひよこ ひよこ
同期と非同期の矢印は何が違うの?
ペンギン先生 ペンギン先生
UMLでは、同期呼び出しは塗りつぶした矢じり、非同期メッセージは開いた矢じりで表すよ。同期は呼び出しの完了を待つやり取り、非同期は送信後にその完了を待たず先へ進めるやり取りを表す。応答の破線矢印とは区別して読もう。
もっと詳しく知りたい人へ

縦の間隔は、実際にかかった時間ですか?

通常は違います。ライフライン上では基本的に上から下へ出来事の順序を読みますが、縦の距離がそのまま秒数を表すわけではありません。また、別のライフライン上の出来事すべてに共通の時刻順序が決まるわけでもありません。メッセージの送信と受信など、図が示す順序関係を読み取ります。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「シーケンス図」って出てきたら「オブジェクト間の処理の流れを時系列で描く図」と思えればだいたいOK!
📖 おまけ:英語の意味
「Sequence Diagram」 = シーケンス図
💬 Sequence(順序)の名前の通り、メッセージの送受信を時間順に並べて描くUMLの図だよ

参考資料

← 用語集にもどる