PlantUMLと俺と彼女の危険なシーケンス図


シーケンス図とは

UMLの中で一番利用頻度が高い図(俺調べ)。

wikipedia シーケンス図

オブジェクト間のメッセージの流れを時系列的に表現する。イベントの発生順序やオブジェクトの生存(ライフライン、lifeline)、メッセージ(message)、イベントオカレンス(event occurrence)、実行オカレンス(execution occurrence)、相互作用オカレンス(interaction occurrence)などの記述によって、もっぱら時系列にもとづいたシステム分析・設計に使用する。

オブジェクト間のメッセージの流れを時系列に表現できるのが大変便利で設計の際には欠かせないが、描くのが大変面倒くさいという欠点がある。しょぼいツールで描くと、脳内の整理を行いながら設計をするのが目的なのか、納品物として誰も読まないキレイな図を後仕様として書くのが目的なのか分からなくなる事態に陥る事がある。

賢明な読者諸兄にはそのような不毛な作業ではなく、有益な設計作業に集中してもらいたいのでPlantUMLをオススメしたい。

シーケンス図の大変面倒くさいところ

シーケンス図はその性質上、検討しながら作成を行うと大きな修正が発生することが多い。この無駄作業工数とストレスからシーケンスを書くのをやめる人間も多いのではないかと推察する。

品質を上げるために最も重要な事は試行錯誤が容易にできること、つまりは大きな修正を苦もなくできることと常々思っているが、PlantUMLではその試行錯誤が大変容易にできるのである。

PlantUML

VS codePlantUML を利用すると大変面倒くさいシーケンス図が大変簡単に書ける。
astah* を使うと普通に書けるし、お金があれば Visio を使って少しだけ面倒くさくなく書くこともできるし Excel 方眼紙で楽しく書くこともできるが、PlantUMLを利用すると大変簡単に書ける。

俺と彼女の危険なシステム図

UMLには興味があるしPlantUMLも使ってみたいが、シーケンス図を書くテーマが見つからない。そんな時には身近な題材を扱うとよいだろう。

身近な題材の例として、ある日の俺と彼女の危険なシーケンス図1を示す。PlantUMLの文法は特に説明しないが読めばすぐに理解できると思う。

@startuml

hide footbox

title 危険なシステム

actor 俺 as me
participant TV as tv
participant 飯 as food
participant ソシャゲ as game
actor 彼女 as gf

me <<- gf :LINE
activate me
me -> tv : つける
activate tv
me -> food : 食う
me -> tv : 見る
me -->> gf : スタンプ
me <<- gf :LINE
me -> food : 食う
me -> tv : 見る
me -> game : ログイン
activate game
me <-- game : ログボ
me -> food : 食う
me -> tv : 見る
me -> food : 食う
me <- game : 広告
me -->> gf : スタンプ
me <<- gf :LINE
me -> me : 既読
me -> tv : 見る
me -> food : 食う
me <- game : リワード
me -> game : ガチャ
me <-- game : N
me -> game : やめる
deactivate game

@enduml

このソースコードで危険なシーケンス図が自動生成される。VS code であれば、ライブプレビューを表示しながら描ける。

そうこうしながら完成したシーケンス図は以下の様になった。

まとめ

VS codePlantUML を利用すると大変面倒くさいシーケンス図が大変簡単に書ける。
今すぐVS code と PlantUMLをダウンロードしてシーケンス図を書いてみてはいかがだろうか。


  1. フィクションですよ