PlantUMLでシーケンス図を作成する方法

一、要素

1.参加者とライフライン

@startuml
actor 利用者 as user1
participant システム as sys1
database データベース as db1
@enduml

ライフラインとは各参加者の垂直破線のことで、オブジェクトが時間軸上に存在することを示します。

2.メッセージの送信

-> 一つの横棒は実線で、同期メッセージを表します

--> 二つの横棒は破線で、戻りメッセージを表します

->> 二つの矢印の実線は非同期メッセージを表します

-->> 二つの矢印の破線は非同期戻りメッセージを表します

@startuml
participant クライアント
participant サーバー
クライアント -> サーバー: 同期呼び出し
サーバー --> クライアント: レスポンス
クライアント ->> サーバー: 非同期リクエスト
サーバー -->> クライアント: コールバック
@enduml

3.アクティベーションボックス

ライフライン上の長方形で、オブジェクトがメッセージを処理または操作を実行している時間帯を示します。

++ 開始を表し、-- 終了を表します

@startuml
ユーザー -> 注文サービス ++: 注文作成
注文サービス -> 決済サービス ++: 決済処理
決済サービス --> 注文サービス --: 決済完了
注文サービス --> ユーザー --: 注文完了
@enduml

4.コメント

参加者とメッセージの両方にコメントを追加できます。

@startuml
note left of ユーザー: これはコメントです
note over ユーザー,注文サービス: 複数オブジェクトにまたがるコメント
ユーザー->注文サービス:
note right: メッセージに関するコメント
@enduml

5.区切り線

== を使用してシーケンス図の異なる段階やモジュールを区切ります。

@startuml
ユーザー -> システム: 注文提出
システム -> 決済ゲートウェイ: 決済リクエスト送信
決済ゲートウェイ --> システム: 決済成功
== 注文処理フェーズ ==
システム -> 物流システム: 配送指示作成
物流システム --> システム: 配送指示完了
== 通知フェーズ ==
システム -> ユーザー: 注文確認通知送信
システム -> 顧客サービス: 注文情報記録
@enduml

6.遅延マーカー

... ネットワーク遅延 ... は不確実な待機時間や遅延を表します

@startuml
クライアント -> サーバー: リクエスト送信
... ネットワーク遅延 ...
サーバー -> データベース: データ照会
データベース --> サーバー: 結果返却
... 処理時間 ...
サーバー --> クライアント: レスポンス返却
@enduml

7.自動番号付け

autonumber はメッセージに自動で番号を付けます

autonumber stop 次のメッセージに番号を付けません

autonumber resume 次のメッセージから番号付けを再開します

@startuml
autonumber
ユーザー -> システム: ログインリクエスト
システム -> データベース: ユーザー認証
autonumber stop
データベース --> システム: 認証結果
autonumber resume
システム --> ユーザー: ログインレスポンス
@enduml

8.オブジェクトの作成と削除

  • 作成:create participant "新しいオブジェクト名" as 別名 または メッセージ送信時に別名の後に**を追加
  • 削除:destroy 別名 または メッセージ送信時に別名の後に!!を追加
@startuml
participant "クライアントA" as ClientA
create participant "新規オブジェクトX" as NewObjX
ClientA -> NewObjX : 作成
NewObjX --> ClientA : 新しいインスタンス返却
ClientA -> NewObjX : 削除
destroy NewObjX
NewObjX --> ClientA : 削除成功
participant "クライアントB" as ClientB
participant "新規オブジェクトY" as NewObjY
ClientB-> NewObjY** : 作成
return 新しいインスタンス返却
ClientB -> NewObjY!! : 削除
return 削除成功
@enduml

二、制御フロー

1.条件分岐

alt + else + end を使用して条件判断を表現します

@startuml
alt 条件が真の場合
  A -> B: 操作1
else 条件が偽の場合
  A -> B: 操作2
end
@enduml

2.オプショナルステップ

opt + end を使用して任意の操作を表現します

@startuml
opt 任意操作
  A -> B: 実行()
end
@enduml

3.ループ

loop + end を使用して繰り返し操作を表現します

@startuml
loop 3回リトライ
  ユーザー -> システム: データリクエスト
  システム --> ユーザー: データ表示
  alt データ有効?
    システム -> ユーザー: 処理成功
  else データ無効?
    システム -> ユーザー: リトライ中...
  end
end
@enduml

4.並列処理

par + end を使用して並列処理を表現します

@startuml
par 並列処理
  A -> B: タスク1
  A -> C: タスク2
end
@enduml

5.中断

break + end を使用して中断を表現します

@startuml
クライアント -> サーバー: データリクエスト
break データ不存在
  サーバー --> クライアント: エラー返却
end
サーバー --> クライアント: データ返却
@enduml

タグ: PlantUML シーケンス図 UML 図表作成 テクニカルドキュメント

6月20日 20:01 投稿