メインコンテンツへスキップ

シーケンス図の基本

🎬 はじめに

本記事では、シーケンス図(Sequence Diagram)の基本概念と、PlantUMLによる記述方法を紹介します。シーケンス図は、システム内のオブジェクト間でのメッセージのやり取りを時系列で表現するUML(統一モデリング言語)の一種です。

特に、以下のような場面で役立ちます:

  • APIのリクエスト〜レスポンスの流れの可視化

  • ユーザーアクションによる内部処理の流れの理解

  • マイクロサービス間の相互作用のドキュメント化

PlantUMLを使えば、テキストで手軽に描画できるのも嬉しいポイントです。


📐 シーケンス図とは?

シーケンス図は、以下のような要素で構成されます:

要素 説明
アクター / オブジェクト 矢印の送受信者。上部に水平に並ぶ。
ライフライン 垂直線。時間軸を表し、オブジェクトの生存期間を示す。
メッセージ 矢印で表され、同期呼び出し・非同期・戻り値などがある。
アクティベーションバー 処理実行中の期間。細い長方形で表現される。

🛠️ 基本的なPlantUMLコード

以下は、ユーザーがシステムにログインするシンプルな例です。

image.pngimage.png

@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 を使って明示的に制御できます。

🔁 ループ・条件・破棄の書き方

🔄 ループ処理

image.png

loop Retry up to 3 times
  Login -> Auth: Verify credentials
  Auth --> Login: Fail
end

❓ 条件分岐

image.png

 

alt Success
  Auth --> Login: OK
else Failure
  Auth --> Login: NG
end

❌ オブジェクトの破棄

image.png

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)を通じて簡単に描画できます。