シーケンス図で実行仕様(Execution Specification)を使ってみる。
侍エンジニアブログにあった記事のシーケンス図をPlantUMLで作って勉強してみる。
次のような場合を考える。
「Object A」から「Object B」へメッセージを送り、そのメッセージをきっかけに「Object B」が「Object C」へ複数回メッセージを送る。
次のようなシーケンス図を作る。
@startuml
skinparam defaultFontName メイリオ
mainframe sd Hello World
participant "Object A" as A
participant "Object B" as B
participant "Object C" as C
A -> B : Synchronous Message
B -> C : Synchronous Message
B -> C : Synchronous Message
B <<-- C : Reply Message
@enduml
C:\PlantUML>java -jar -DPLANTUML_LIMIT_SIZE=8192 plantuml.jar test/004.txt -charset UTF-8
C:\PlantUML>
この場合、「Object A」のメッセージがきっかけなのか、「Object B」が自発的に送ったメッセージなのかが分かりづらい。
このような場合に実行仕様(Execution Specification)を使う。
@startuml
skinparam defaultFontName メイリオ
mainframe sd Hello World
participant "Object A" as A
participant "Object B" as B
participant "Object C" as C
A -> B : Synchronous Message
activate B
B -> C : Synchronous Message
B -> C : Synchronous Message
B <<-- C : Reply Message
deactivate B
@enduml
白いボックスを加えることで、メッセージのまとまりが一連の処理であることを表現可能。実行指定(ExecutionSpecification)は省略可能だが、実行指定(ExecutionSpecification)があると分かりやすいシーケンス図になる。
【基礎を覚えよう!】シーケンス図の使い方まとめ | 侍エンジニアブログ (sejuku.net) ExternalLink