んだ日記

ndaDayoの技術日記です

ユースケース図をvsCodeで書いてみた

こんにちわ、んだです。

今回は「ユースケース図をvsCodeで書いて管理を楽にしたいんだ」というタイトルでお届けします。

ユースケース図、ロバストネス分析の修正コストについて

これまでいくつかの案件でユースケース図を用いて開発を進めてきました。

ユースケース図を書き、各ユースケースごとにロバストネス分析をするという、いわゆるICONIXプロセスで進めていったのですが、 ICONIXプロセスで進めると実装のイメージはしやすくなるし、ドメインに対する理解も深まるしで、ICONIXプロセス僕お気に入りです。

案件では、主に見やすさと操作性の観点から、デザインツールのmiroを使用してユースケース図の作成を進めました。 draw.ioを使用したこともありますが、miroで作成した方がかなり見やすくなったので、miroで書き始めた当初は気分よく書けてました。

ただ、しばらく経つとちょっとした問題が出てきました

その問題とは「ユースケース図、ロバストネス図自体の修正が手間&後手になる」

ユースケース図もロバストネス図も、クライアントとのMTGや社内で要件定義の中でどんどん改善していくものなので 当然のことながら修正は必ずあります。

修正があったときに、さらっと修正できればよいのですが、普段デザインツールを触らないちょっと修正が次第に億劫になってくる という問題がありました。

PlantUMLを使ってみる

PlantUML公式: シンプルなテキストファイルで UML が書ける、オープンソースのツール

テキスト言語ベースでユースケース図とロバストネス図を書けるツールがありますた。

では、早速使ってみます。

※導入方法については、他の方の記事をご覧ください

PlantUMLでユースケース図を書いてみる

記述はかなりシンプルですぐにマスターできますし、公式のマニュアルに大概のことは書いてあります。

f:id:nda_desu:20220305001302p:plain

@startuml
left to right direction
actor Admin

package User {
  usecase "ユーザー登録" as UC1
  usecase "ユーザー編集" as UC2
  usecase "ユーザー削除" as UC3
  usecase "権限付与" as UC4
}

Admin --> UC1
Admin --> UC2
Admin --> UC3
Admin --> UC4

@enduml

秒です。

ユースケース図に即時反映されますし、画像として書き出すことも可能です。

さらに良いことに、これならgitでバージョン管理しておけるわけです。

さらにさらに、境界ごとにディレクトリをきちんと整理しておけば、 ユースケース図のディレクトリ構成をそのままプロダクションコードに持っていけるのではないか?とも思っている

f:id:nda_desu:20220305001832p:plain

僕から以上でした。