LoginSignup
3
6

More than 1 year has passed since last update.

PlantUMLでシーケンス図の書き方・サンプル

Last updated at Posted at 2023-03-15

はじめに

転職してから設計でUMLを書くのにplantumlを初めて使ったが、手探りでネットの情報からサンプルをよく探していたので、今の最適解をまとめておく。

作れるシーケンス図

今回紹介のコードを使うと、こんなシーケンス図が作れる。(最後にサンプルコードあり)

使ったコード

設定系

ファイルの最初と最後のおまじない

ファイル名に合わせる。

@startuml シーケンス図_サンプル
title シーケンス図_サンプル


@enduml

コメント

1行分と複数行の書き方。

/'
複数行の
コメント
'/

' 1行のコメント

シーケンスの区切り

イベントの最初につけて、区切りを分かりやすくする。

== 区切りを意味する ==

自動採番

処理に番号を自動で付与。
イベントの初めに定義すればそこから番号を採番できる。

autonumber

フッター隠し

ファイル先頭につけておくと、アクターなどヘッダーと重複した内容が
フッターに表示されるのを防ぐことができる。

hide footbox

ノート

処理にコメントをつける。API名や一言メモに利用する。

note right
    履歴データの取得
end note

処理系

アクター

actorで人型、ParticipantでサーバとかAPIなどユーザ以外を定義。
asで別名を定義、処理の中で利用できる。

actor user
Participant frontend as FE

処理の向き先

処理の流れを記載。コメントをつけられる。

user -> FE : 登録開始

処理の開始と終了

アクター単位で、処理がどのタイミングから始まり、どのタイミングで終了するのかを定義する。

activate BE

deactivate BE

今回使用したコードの例

以下の通り。PlantUMLの環境構築して、ファイルに貼り付けて、
プレビューすれば、作り始めやすい。

@startuml シーケンス図_サンプル
title シーケンス図_サンプル

/'
シーケンス図サンプル
ここではサンプルを記載します
'/

' フッターを隠せる
hide footbox

' actorで人型、Participantでボックスを定義
' asで別名を定義、処理の中で利用できる
actor user
Participant frontend as FE
Participant backend as BE
Participant database as DB
Participant 外部API as API

' ==でイベントごとにシーケンスを分割
== 初期表示 ==
' autonumber:処理に番号を自動でつけられる、
' イベントの初めに定義すればそこから番号を付与
autonumber

user -> FE : 処理開始
' activate、deactivateで処理の開始終了を意味
activate FE

    FE -> BE : request(GET: ID、年月)
    activate BE

        BE -> DB :request(in : ID、年月)
        ' note でAPI名や一言メモを残す
        note right
            履歴データの取得
        end note

        activate DB
        DB -> BE :response(out: 履歴データ)
        deactivate DB
        
        BE -> API : request(GET: ID、年月)
        note right
            外部APIデータの取得
        end note

        activate API
        API -> BE : response(外部データ)
        deactivate API

        BE -> BE : チェック処理
        note right
            スプレッドシート参照
        end note
    BE -> FE : response
    deactivate BE

FE -> user : 処理終了
deactivate FE


== 登録処理 ==
autonumber

user -> FE : 登録開始
activate FE

    FE -> BE : request(GET: ID、年月、データ)
    activate BE

        BE -> DB : request(in :ID、年月、データ)
        activate DB
        DB -> BE : response
        deactivate DB

    BE -> FE : response
    deactivate BE
FE -> user : 登録終了
deactivate FE

@enduml

後書き

慣れてしまえばコードを書くだけで、UML書けるので今後もお世話になリマス。
またGitで管理することも可能。

ただ気になる点としては、自由に書けてしまうが故、ソースが見辛くなりがち。
ぱっと見文字の羅列で、修正しようにもどこを直せばいいか迷子になる。
今はなんとなくでやっているが、インデントルールとか、
明確に決めて取り掛かった方がいいかもしれない。

参考文献

編集履歴

2023/3/15 図の貼り付けから、qiitaのコードブロックでPlantUMLを表示するよう反映(thx!)

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6