Table of Contents
図を書くのに苦労してますか?じゃPlantUML might be for youです
PlantUMLはテキストでUMLの図を作成できるツールです。こんな感じです。
個人的にPossibly the best tool of my lifeなので紹介します。
使うかどうかの判断材料にしてください。
UMLってなに?
Unified Modeling Languageです。
ソフトウェアの設計を表現できる図なので開発時のコミュニケーションやドキュメントを残すときに役立ちます。
ビジネスとの仕様確認に下記の様な情報で認識の違いを防げます。
- 機能とその機能を使う人(Use Case Diagram)
- 状態がどう変わるのか(State Machine Diagram)
- システムのフロー(Activity Diagram)
下記のようなシステムのドキュメントを残しておくとメンテするときに開発者は楽になります。
- アプリの構成(Deployment Diagram)
- 処理の順序とオブジェクトの関係(Sequence Diagram)
- オブジェクトの関係性(Class Diagram)
PlantUMLでどんな感じな図ができるの?
PlantUMLでよく作る図を紹介していきます。
Use case diagram
システムの機能とその機能を使う人の関係を表します。全体像を表すのに使ってます。
State machine diagram
状態がどんなアクションでどう変わるのかを表します。
Activity diagram
アクションや分岐を入れてフローを表すことができます。個人的にこれを一番使ってます。
Swimlaneを使ったら誰が何をやってるのかも表現できます。
Deployment diagram
いろんな図を表現できます。僕はインフラなどを表した図に使います。
Sequence diagram
処理の順序とオブジェクト同士の関係を表せます。開発者にとってはこの図はわかりやすいのでほとんどの場合開発への説明に使ってます。
Class diagram
OOPのオブジェクトを表すことができます。
- クラスの関係性
- どんなField、Methodがあるのか
- Field、Methodのアクセスレベル (public, privateとか)
- クラスの種類 (Abstract, Interfaceとか)
これは技術書などにたまに出てきますね。同じ記述でER図も書けます。個人的にはクラス図よりもER図によく使いますね。
PlanUMLの良いところ・悪いところ
良いところ
- UMLの作成が早い
- マウス操作が不要ですべてキーボード完結
- レイアウトなど気にしないで良いので楽
- テキストだから扱いやすい
- gitなどのVersionControlに含めることができる
- 更新が楽にできる
- 色々なIntegrationがある
- GitLabでPlantUMLを書いたら勝手にイメージに変換してくれる
- IntelliJやVSCodeでPlantUMLを書いたらRealtimeでイメージのプレビューをしてくれる
悪いところ
- 学習コスト:言語なのでSyntaxを習う必要がある
- レイアウトの修正は不可能、または難しい
- 複雑な図は向いてない、または書けない
Try it out!
僕は開発をするときはほぼすべてのプルリクにPlantUMLを添えてコードレビューしてもらってます。指摘があるときに図があると説明のしやすさが段違いです。
個人的にはすごく役立っていて、手放せないツールとなっているのでおすすめです。