C# スクリプトから puml のクラス図 を自動生成する

すでに生成されているC#スクリプトからPlantUMLのクラス図を自動生成してみた.

事前準備(PlantUML)

PlantUML(.puml)を表示するために事前準備が必要.
自分はVScodeEclipseで表示してます.

VSCodeでの表示の仕方は下記のqiitaが詳しいので参照.

qiita.com

PlantUmlCallDiagramGenerator

github.com

pierre3.hatenablog.com

puml自動生成のために,こちらを利用した.
こちらのジェネレーターを利用するためにはまず,.NET Core SDK 2.1 以上が必要.
今だと Core 3.1 かな.下のサイトからDLする.

dotnet.microsoft.com

その後,cmdで適当なディレクトリで以下のように叩く.

dotnet tool install --global PlantUmlClassDiagramGenerator --version 1.2.0

するとジェネレーターがインストールされる.

使い方

cmdで以下のように叩く.

puml-gen InputPath [OutputPath] [-dir] [-public | -ignore IgnoreAccessibilities] [-excludePaths ExcludePathList] [-createAssociation]

InputPath : 入力するファイル/ディレクトリパス
OutputPath : 出力先ファイル/ディレクトリパス
-dir : パスがディレクトリなら記入する
-public : publicメンバだけ出力する
-ignore : 無視するメンバを書く.複数ある場合はカンマ区切りで書く.
-exclutivePath : 除外したいファイル/ディレクトリパス
-createAssociation : オブジェクト間の関連を、プロパティ、フィールドの参照から作るようにする
-allInOne : include.puml にファイルの参照ではなくファイルの中身をそのまま書き込まれるようになる

ディレクトリ単位で変換すると,すべての出力ファイルを参照した include.pumlをInputPath内に出力するようになってる.

CSharp to PlantUML

ちなみにこの機能はVSCode拡張機能にもある!

marketplace.visualstudio.com

使い方はCtrl + Shift + PF1でコマンドパレットを開いて, CShart to PlantUMLを選択したら,
plantumlというフォルダにpumlが生成されます.
こっちのほうがcmdでジェネレーターを叩くより出力が早い!
InputPath,OutputPathとかを設定したい場合は,ctrl + ,で設定を開いて,
csharp2plantumlで検索すると,拡張設定が出てくるので,好みに設定します.

f:id:xrdnk:20200513234955p:plain

PlantUMLの使い方

公式に使い方のPDFが載っている.日本語もある.

ダウンロードのページ

シーケンス図,ユースケース図,クラス図,コンポーネント図,ステートマシン図…など
最近だとガントチャートとかWBS図も描けるようになっててビビる.