技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

PlantUMLの紹介

PlantUMLは、テキストからUMLの図を生成することができるツールです。
UMLをPlantUMLで書くことで、Gitでの管理が容易になり、差分比較もできるようになる、というメリットがあります。
 
下記のページにアクセスするだけで、すぐに使うことができます。
図の書き方(文法)についても説明されています。
https://plantuml.com/ja/
 
オンライン上で図を生成することが可能で、上記ページ中で試しに作ることができる他、「オンラインサーバ(https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000)」のページにアクセスすることで大きな画面で作ることができるようになります。
 
セキュリティや作業効率等の問題でオンライン上で図を生成したくない場合は、ローカル上で図を生成することもできます。
ローカル上で図を生成する方法は、「クイックスタートガイド(https://plantuml.com/ja/starting)」に書いてあります。
 
以下、試しに、シーケンス図を書いてみたものです。
javaでのスレッド制御(joinとsynchronized)(https://cyzennt.co.jp/blog/2019/12/07/java%e3%81%a7%e3%81%ae%e3%82%b9%e3%83%ac%e3%83%83%e3%83%89%e5%88%b6%e5%be%a1%ef%bc%88join%e3%81%a8synchronized%ef%bc%89/)」の「①のコメントアウトを外した場合(join)」のケースについて書いています。
 
【サンプルコード】
@startuml
participant ThreadMain as tm
participant ThreadBody_1 as tb1
participant ThreadBody_2 as tb2
participant ThreadCounter as tc
tm -> tb1 : スレッド起動
tb1 -> tc : カウントアップ
tc -> tc : カウント表示
rnote over tc
 ThreadBody_1による
 カウントアップ指示が
 あと4回繰り返される
endrnote
tm -> tb2 : スレッド起動
tb2 -> tc : カウントアップ
tc -> tc : カウント表示
rnote over tc
 ThreadBody_2による
 カウントアップ指示が
 あと4回繰り返される
endrnote
@enduml
 
【生成結果】

f:id:akira2kun:20220211211529p:plain