テキストファイルでUML図が描ける、PlantUML が便利そうなのでインストールします。
ここでは、PlantUMLをmacOSにインストールして使用します。
またVisual Studio Code(以下VSCode)に拡張をインストールして使用できるようにします。
インストール
1、VSCodeをインストールします
3、Graphvizをインストールします
http://www.graphviz.org/download/
Graphviz をインストールする方法はいくつかありますが、
Homebrewからインストールすると良いと思うので、Homebrewをインストールしていない場合はインストールします。
3−1、Xcode をインストールします
Homebrew のインストールにはXcode(App Storeからインストールできます)が必要なので、インストールします。
※ Xcodeは大きい(5GBくらい?)ので、インストールには時間がかかると思います。
続いて Command Line Tools for Xcode をインストールします。
$ xcode-select --install xcode-select: note: install requested for command line developer tools
3−2、Homebrew をインストールします。
Homebrew のサイトにインストール用のスクリプトが載っているので、コピーしてターミナルで実行します。
The missing package manager for macOS — The missing package manager for macOS
4、VSCode の PlantUML の拡張をインストールします。
※VSCode の PlantUML の拡張をインストールすると、PlantUMLも自動的にインストールされます。

- 検索窓にてPlantUML を検索します。ここではjebbs さんが作成されたものを使用します。

- いちど、VSCode を再起動します。
以上でPlantUML がインストールされました。
PlantUML の使い方
1、はじめに、テキストファイルでUMLを定義します。
2、ファイルの拡張子
ファイルには以下の拡張子をつけると、PlantUMLのファイルであると認識されます。
.wsd .pu .puml .plantuml .iuml
4、作成したUML図のエクスポート/保存
- fn + F1キー、 または shift + command + pキー を押すと、コマンドパレットが表示されます。
- 「PlantUML:] カーソル位置のダイアグラムをエクスポート
(「PlantUML: Export Current Diagram」)」 と入力し、クリックします。(補完が効きます)

- 保存したいファイルタイプをクリックします。
【試しに作成したUML定義ファイルのサンプル】
@startuml
left to right direction
package "予定調整くん" as schedule-arranger {
entity "ユーザー:user" as user {
+ userId:数値:GitHubのユーザーID [主キー]
--
username:文字列:GitHubのユーザー名
}
entity "予定:schedule" as schedule {
+ scheduleId:UUID:予定ID [主キー]
--
scheduleName:文字列:予定名
memo:文字列:メモ
# createdBy:数値:作成者、ユーザーID [INDEX] [外部キー]
updatedAt:日時:更新日時
}
entity "候補日:candidate" as candidate {
+ candidateId:数値:候補日程ID [主キー]
--
candidateName:文字列:候補日程名
scheduleId:UUID:関連する予定ID [INDEX]
}
entity "出欠:availability" as availability {
+ candidateId:数値:候補日程ID [主キー] [外部キー]
+ userId:数値:GitHubのユーザーID [主キー] [外部キー]
--
availability:数値:出欠ID
scheduleId:UUID:関連する予定ID [INDEX]
}
entity "コメント:comment" as comment {
+ scheduleId:UUID:関連する予定ID [主キー]
+ userId:数値:GitHubのユーザーID [主キー] [外部キー]
--
comment:文字列:コメント
}
}
user ----o{ schedule : 1 to 0...*
user ----o{ comment : 1 to 0...*
user ----o{ availability : 1 to 0...*
candidate ----|{ availability : 1 to 1...*
schedule ----|{ candidate : 1 to 1...*
schedule ----o{ comment : 1 to 0...*
@enduml【作成されるUML図】

