UMLとは処理の流れや関係性を図示するためのモデリング手法で、エンジニアでなくとも使うことがあると思います。
例えばユースケース図、シーケンス図、アクティビティ図、クラス図などです。
基本的には画像になるのでchatGPTに作図してもらうのは出来ないんじゃないか、となるかもしれませんが・・・
それPlantUMLなら出来ます!
PlantUMLとは
詳細は省きますが、UMLをテキストデータで作図する方法です。
公式サイトが広告だらけなのでいまいちオフィシャル感がないのですが
テキストでUMLを作図する仕様としてはデファクトスタンダードであると思います。
テキストで書くことにより、バージョン管理ソフトなどで差分管理することが可能となりメンテナンス性があがります。
また、記法が直観的なので習熟コストも低いです。
例えば以下のような形です。
@startuml
Alice -> Bob: 認証リクエスト
Bob --> Alice: 認証返答
Alice -> Bob: 他の認証リクエスト
Alice <-- Bob: 他の認証返答
@enduml
テキストから画像への変換ソフト/プラグインも充実しており、実際このQiitaのマークダウンも画像化に対応しています。(上記は画像貼り付けではなく、markdownにテキストを記載)
VSCodeでの設定方法は他の方の記事を参照(多分今はPlantUMLプラグイン入れるだけでGraphvizは勝手に入るんじゃないかな)
https://qiita.com/couzie/items/9dedb834c5aff09ea7b2
chatGPTで作図
いよいよ本番です。ここまで言えば、もうなんとなくわかっていると思いますが・・・
以下の様なプロンプトを要求するだけです。
車修理会社と保険会社、車の所有者、警察など
車の事故が発生した際の処理の流れをシーケンス図でpuml形式で記載してください。
と以下の様な返答が帰ってきます。
以下に車の事故が発生した際の処理の流れを示すPlantUMLのシーケンス図のコードを示します。シーケンス図は、参加者間のメッセージの交換を時間順に描画することで、プロセスのフローを視覚化します。
puml
Copy code
@startuml
participant "車の所有者" as A
participant "警察" as B
participant "保険会社" as C
participant "車修理会社" as D
A -> B: 事故報告
activate B
B -> A: 事故情報を取り、報告書を作成
deactivate B
A -> C: 保険申請と警察の報告書を提出
activate C
C -> A: 保険申請の確認
C -> D: 修理の承認を通知
deactivate C
activate D
D -> A: 車を修理
D -> C: 修理の請求書を送る
deactivate D
activate C
C -> A: 保険申請の決済(請求書の支払いまたは請求書への異議申し立て)
deactivate C
@enduml
このシーケンス図では、以下のような処理の流れを示しています:
車の所有者が警察に事故を報告します。
警察は事故の報告を受け、事故報告書を作成します。
車の所有者は保険会社に対して保険申請と警察の報告書を提出します。
保険会社は保険申請を確認し、修理の承認を車修理会社に通知します。
車修理会社は車を修理し、修理の請求書を保険会社に送ります。
保険会社は保険申請の決済を行います(請求書を支払うか、請求書に異議を申し立てます)。
このコードをPlantUMLでレンダリングすることで、シーケンス図を作成できます。
これをPlantUMLに画像化できるソフトに入力する形になります。
(私はVSCodeのPlantUMLプラグインを使用しています。)
他にもPlantUMLで作図可能なものはなんでもいけます。以下はユースケース図です。
車修理会社と保険会社、車の所有者、警察など
車の事故が発生した際の関連をユースケース図で表してください