PlantUMLを使ってみる
PlantUMLを使ってみる
ドキュメントを作るとき、図も文章やコードと同じようにGitで差分管理できると嬉しいなぁ、と思っていました。
そこへテキストベースで各種UML図が作成できる、PlantUMLなるものがあると後輩に教えてもらったので、少し試してみることにしました。
(UMLも勉強したことなかったので、ちょうどいいやと)
目次[非表示]
環境
VSCodeにPlantUML Extensionを導入
VSCodeから、PlantUMLのExtensionをインストールします。
これだけだと動作しないので、追加でツールのインストールが必要です。
Windowsの場合、ExtensionのQuick Install for Windows
の項目に書いてある通り、ChocolateyでPlantUMLのパッケージをインストールするのが簡単でした。
試してみたこと
今回は「カレーをつくる」ことをざっくり他の誰かに説明したい、という場合を考えました。
説明に必要な要素はこんな感じだと思います。
- どんな道具や設備があるのか
- 1.で何をするのか
- 2.によって何が得られるのか
- 1-3をどのような手順で行うのか
シーケンス図を使えば説明できそうですが、
- 道具や設備をいつから片付けられそうか
- 道具や設備でやることのすべて
は「ざっくり」という今回の目的からすると不要な気がしたので、もう少し見やすい(見やすそうな)コミュニケーション図を使ってみることにします。
コミュニケーション図(?)を描いてみる
自分はチキンラーメンにお湯を注ぐくらいしか料理できないですが、自分の想像を説明する体で作ってみました。
PlantUMLのコードは以下の通りです。
@startuml
title カレーをつくる
'要素
actor Me
agent 冷蔵庫
agent シンク
agent コンロ
agent 炊飯器
'要素間のコミュニケーション
Me -up->> 炊飯器 : 1. ご飯を炊く
炊飯器 .down.>> Me : ご飯
Me -left-> 冷蔵庫 : 2. 肉と野菜取り出し
冷蔵庫 .right.> Me : 肉と野菜
Me -down-> シンク : 3. 野菜を洗う \n 4. 肉と野菜を切る
シンク .up.> Me : 切った肉と野菜
Me -down->コンロ : 5. 肉と野菜を炒める \n 6. ルーと水を加えて煮込む
コンロ .up.> Me : カレールー
Me --> Me : 7. 盛り付け
@enduml
厳密なコミュニケーション図としてはおかしなところがあるかもしれません。
ドキュメントから使う
Markdownドキュメントに埋め込む
ここまででGitでの管理が可能な形で図の作成ができたので、当初の目的は達成されています。
しかし、ドキュメントから使う場合には、一回画像に変換して、その画像を入れ込む必要があります。
ファイル名を同じにしておけばMarkdown側は修正の必要がないものの、画像データはあまりGitで管理したくないのが正直なところです。
GitHub上で表示
Chromeで使える拡張機能Pegmatiteを使えば、GitHub上のMarkdownに埋め込まれたPlantUMLコードを画像として表示できるということで、試してみました。
※初期設定では外部のPlantUML Serverにデータを送信するため、業務で使用する場合には注意が必要です。
Pegmatite導入前
Pegmatite導入後
Written with StackEdit.
コメント
コメントを投稿