PlantUML でシーケンス図を書いたがめっちゃ良かった
PlantUML
シンプルなテキストファイルで UML を作ることのできる、オープンソースのツール
今までは astah とかでユースケース図とかシーケンス図書いてたんだけど、 GUI で書くの辛いなと思って PlantUML というのを使ってみた。
コードで UML を書ける、今回はシーケンス図を書いたけどユースケース図やフローチャートなども書ける。
環境構築
Web のエディタだと PlantUML Editor というのがある。
けどローカルでやりたかったので VSCode の拡張を入れた。
これを入れるだけ、シンタックスも効くようになって良い。
Java
, Graphviz
などを入れておけとあるけど、特に何もせず使えているので別アプリケーション経由でインストールされてたのかもしれない。
拡張子は .pu, .plantuml, .wsd などあるっぽいが .pu にしている。
書いてみる
記法
今回自分が使ったやつだけ。
シーケンス図の構文と機能 に網羅的に書いてあるけど多すぎて使いこなせていない。
- 登場人物の宣言
- 表示形式や表示順などを最初に定義できる
- 例
- actor Hoge
- database Fuga
- 矢印
- -> は直線、 --> は破線
- 例
- Hoge -> Fuga: description
- Fuga --> Huga
- 動作中を示す表示
- activate, deactivate で動作中を示せる
- 例
- activate Hoge
- deactivate Fuga
- メモ
- タイトル
- == で文字を囲むとタイトルになる
- 例
- == タイトル ==
- 例
- == で文字を囲むとタイトルになる
この 5 つの要素を覚えるだけでいいシーケンス図がかけた。
サンプル
@startuml actor GameManager database Application database Database actor User == マスタデータ更新 == GameManager -> Application: データ登録 activate GameManager activate Application note over GameManager: 処理中は画面操作できない Application -> Database: Insert activate Database Database --> Application: Success deactivate Database Application -> Application: データ加工 note right of Application #aqua 攻撃力↑↑ end note Application -> Database: Insert activate Database Database --> Application: Success deactivate Database Application --> GameManager: Complete deactivate Application deactivate GameManager == データ表示 == User -> Application: データ取得 activate User activate Application hnote over User : 読み込み待ち Application -> Database: select * from item activate Database Database --> Application: result deactivate Database Application -> Application: jsonize Application --> User: render json deactivate User deactivate Application @enduml