シーケンス図の基本
🎬 はじめに
本記事では、シーケンス図(Sequence Diagram)の基本概念と、PlantUMLによる記述方法を紹介します。シーケンス図は、システム内のオブジェクト間でのメッセージのやり取りを時系列で表現するUML(統一モデリング言語)の一種です。
特に、以下のような場面で役立ちます:
-
APIのリクエスト〜レスポンスの流れの可視化
-
ユーザーアクションによる内部処理の流れの理解
-
マイクロサービス間の相互作用のドキュメント化
PlantUMLを使えば、テキストで手軽に描画できるのも嬉しいポイントです。
📐 シーケンス図とは?
シーケンス図は、以下のような要素で構成されます:
要素 | 説明 |
---|---|
アクター / オブジェクト | 矢印の送受信者。上部に水平に並ぶ。 |
ライフライン | 垂直線。時間軸を表し、オブジェクトの生存期間を示す。 |
メッセージ | 矢印で表され、同期呼び出し・非同期・戻り値などがある。 |
アクティベーションバー | 処理実行中の期間。細い長方形で表現される。 |
🛠️ 基本的なPlantUMLコード
以下は、ユーザーがシステムにログインするシンプルな例です。
@startuml
actor User
participant "Login Page" as Login
participant "Auth Server" as Auth
User -> Login: Open login page
User -> Login: Enter ID & Password
activate Login
Login -> Auth: Verify credentials
activate Auth
Auth --> Login: Auth result
deactivate Auth
Login --> User: Show result
deactivate Login
@enduml
🔍 補足解説
-
actor
は人間や外部システムを表します -
participant
はオブジェクトやクラス、システムなど -
->
は通常のメッセージ(同期)を表します -
-->
は戻り値などを表す非アクティブな返答です - アクティベーションバー(処理中を表す縦の長方形)は、
activate
/deactivate
を使って明示的に制御できます。
🔁 ループ・条件・破棄の書き方
🔄 ループ処理
loop Retry up to 3 times
Login -> Auth: Verify credentials
Auth --> Login: Fail
end
❓ 条件分岐
alt Success
Auth --> Login: OK
else Failure
Auth --> Login: NG
end
❌ オブジェクトの破棄
Login -> Auth: Logout
destroy Auth
📌 よく使うPlantUMLの構文一覧
記法 | 説明 |
---|---|
actor |
外部アクターの定義 |
participant |
オブジェクトやサービスの定義 |
-> / --> |
メッセージ送信/返信 |
activate |
明示的なアクティベーション |
deactivate |
アクティベーションの終了 |
alt , else , end |
条件分岐 |
loop , end |
繰り返し処理の定義 |
destroy |
オブジェクトの破棄 |
🎁 おわりに
シーケンス図は、プロセスの理解や設計レビューにおいて強力なツールです。PlantUMLを使えば、バージョン管理可能なテキストベースの図表として扱えるため、ドキュメントの自動化やCI/CDとの相性も抜群です。
次回は、**より複雑なユースケース(マイクロサービス間連携や非同期処理)**のシーケンス図にも挑戦してみましょう!
PlantUMLはVS Code拡張やWebサービス(PlantUML Online Server)を通じて簡単に描画できます。