作図にExcelでなくPlantUMLを使う

Ryohei Tsuda
Sep 21, 2018 · 6 min read

Yes, I did in fact survive on a deserted planet by farming in my own shit.

— Odyssey (2015)

Excelは素晴らしいソフトウェアだ。

多種多様な関数を用いた表計算だけでなく、単なる表や方眼紙として使ったり、お絵かきもできる。経理や監査の仕事で帳票作成に使うこともある。また、マクロやVBAを使って定型的な作業を自動化したり、ODBC等を通じてRDBMSのクライアントとして使うこともできる。同僚に過去にExcelをどう使ったか聞いてみるといい。あなたはExcelの可能性に驚くだろう。

中にはExcelで図を書く人もいる。誰しも一度はこういうフローチャートをExcelで作ったことがあるかもしれない。

Excelで作ったフローチャートの例

Excelは事務作業をしたことがあれば誰しも使った経験があるし直感的に操作できるので、Excelで何かの資料を作るという人は多いと思う。一方で、Excelを使って複雑な図を作ったり図のレイアウトを揃えたり差分の管理をするのは面倒で時間がかかる。

そこでお勧めしたいのが、テキストからUMLの図を書くことができるPlantUMLだ。

UMLについて

UMLはUnified Modeling Language(統一モデリング言語)の略で、ソフトウェアの構造や振る舞いを統一的な記法で表現できる。

UMLの一種であるシーケンス図(Wikipedia

UMLはもともとソフトウェア工学から生まれた技術だが、ソフトウェアの設計だけでなく、業務マニュアルやビジネスモデルの記述に使われることもあるそうだ。例えば日本の上場会社では、内部統制(J-SOXやITGC)の対応に際しビジネスプロセスを図に表した上でリスクや対応についてどうコントロールしていくか議論するが、その際にも使えそうだと感じた。私の会社ではExcelを使っていたが…。

PlantUMLについて

PlantUMLはUMLのダイアグラムを作成するテキストベースの言語で、テキストから下記のようなUML図を描画することができる。

ドラえもんのシーケンス図

これはシーケンス図と呼ばれるUMLの記法の一つで、登場人物間でのメッセージの順番や方向、生成や消滅のタイミングなどを時系列で表現することができる。

上記の図を描くためのPlantUMLのテキストは下記の通り。

@startumlhide footboxactor takeshi as "ジャイアン"
actor nobita as "のび太"
actor dora as "ドラえもん"
takeshi -> nobita: いじめる
nobita -> dora: 助けを求める
dora -> nobita : ひみつ道具を与える
nobita -> takeshi : 仕返しをする
nobita -> nobita : 調子に乗って痛い目に合う
nobita -> dora : 助けを求める
dora -> nobita : ひみつ道具を止める
@enduml

PlantUMLの便利/面倒なところ

PlantUMLの便利なところは…

  • 勝手に描画してくれる(誰が書いても同じ図になる)
  • テキストなので差分管理が簡単

PlantUMLの面倒なところは…

Javaをインストールしたり、環境の整備が面倒というデメリットはあるものの、それを補って余りあるメリットがあるのでぜひ使ってみてほしい。サクッと試したい人には環境構築不要のPlantUML Web Serverがお勧め。

実際の利用例

書き方は「PlantUML + やりたいこと」とかでGoogle検索すれば幾らでも出てくるが、実際に図を見るとイメージが湧いてくると思うので、いくつか役に立ちそうな例を挙げたい。図とその後にPlantUMLのテキストを書いており、コピペしてPlantUMLで描画すれば全く同じ図を作れる。

タイミング図を描く

タイミング図は登場人物の相互作用内にある要素の状態遷移やメッセージ送信のタイミングを時系列で表現するUMLの記法で、システムやオペレーションが時間によってどう変わっていくかを表現するのに向いている。

@startumlrobust "PS4" as PS
concise "ユーザ" as PU
@0
PU is アイドル
PS is スタンバイ
@5
PU -> PS : 電源を入れる
PS is ホーム画面
PU is 画面を見る
@15
PU -> PS : 遊ぶゲームを選ぶ
PS is ゲーム画面
PU is ゲームを遊ぶ
@45
PU -> PS : ゲーム終了
PS is ホーム画面
PU is 画面を見る
@55
PU -> PS : 電源を切る
PS is スタンバイ
PU is アイドル
@enduml

アクティビティ図を描く

アクティビティ図は一連の手続や処理の流れを表現するUMLの記法で、一般的なフローチャートによく似た図を描くことができる。

@startuml(*) --> "レストランで気になるメニューを注文する""レストランで気になるメニューを注文する" --> "食べる"if "感想" then
--> [美味しい] "レシピを調べる"
--> "材料を買ってくる"
--> "料理する"
else
--> [美味しくない] "とりあえず食べる"
--> "レストランで気になるメニューを注文する"
@enduml

結論

UMLはもともとソフトウェアのモデル化を行うために発達した仕組みだが、シンプルで分かりやすいのでソフトウェア開発以外にも応用できる。PlantUMLはUMLをより使いやすい形で提供してくれるので、誰でも簡単に使い始めることが出来る。もし仕事や趣味でフローチャートやタイムラインを描く機会がある際は、Excelを辞めてPlantUMLを使い始めてはどうだろうか。

Ryohei Tsuda

Written by

Tokyo, Japan / Accounting / Fluent in 日本語 / Learning English

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade