日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

UMLを練習する、シーケンス図-4

簡単な業務フロー図

こんな流れがあったとして、これに手を加えてみる。
のつづき

ここまで作った

修正があるときのopt
作成者の成長にあわせてalt/else
事務処理を同時にするpar 実行中を示すactivate/deactivate 部署をまとめるbox/end box

@startuml
title:業務フロー
box 部署A
participant 作成者 as A
participant 先輩 as B
participant 上司 as C
end box
box 部署B
participant 関係部署 as D
end box
box 事務部
participant 事務 as E
end box
activate A
alt 新人の場合
A -> B:草案を提出
activate B
B -> A:内容を確認して返却
opt 指摘あり
A -> B:修正して提出
end
deactivate B
else 経験者の場合
A -> C:最終原案を提出
activate C
C -> A:内容を確認して返却
deactivate C
end
A -> C:承認を申請
activate C
C -> A:承認して返却
deactivate C
A -> E:承認済原本を提出
deactivate A
activate E
par
E -> E:保管
else
E -> D:複写を配布
end
deactivate E
@enduml

f:id:myopomme:20190630232339p:plain

書き換えてみる

ライフラインが複雑になってきたので、少し変えてみる。
return 構文は直前のライフラインからの返答を記述する。
返答メッセージなので、破線になる。

@startuml
title:業務フロー
box 部署A
participant 作成者 as A
participant 先輩 as B
participant 上司 as C
end box
box 部署B
participant 関係部署 as D
end box
box 事務部
participant 事務 as E
end box
activate A
alt 新人の場合
A -> B:草案を提出
activate B
B --> A:内容を確認して返却
opt 指摘あり
A -> B:修正して提出
end
deactivate B
else 経験者の場合
A -> C:最終原案を提出
activate C
return:内容を確認して返却
deactivate C
end
A -> C:承認を申請
activate C
return:承認して返却
deactivate C
A -> E:承認済原本を提出
deactivate A
activate E
par
E -> E:保管
else
E --> D:複写を配布
end
deactivate E
@enduml

f:id:myopomme:20190707101450p:plain

関係部署や事務の登場をずらす

関係部署と事務は手続きの前半に関わってない。
登場をずらして、印象付けることもできる。
このとき、create 構文で関係部署、事務の分類子をずらす

@startuml
title:業務フロー
box 部署A
participant 作成者 as A
participant 先輩 as B
participant 上司 as C
end box
box 部署B
participant 関係部署 as D
end box
box 事務部
participant 事務 as E
end box
activate A
alt 新人の場合
A -> B:草案を提出
activate B
B --> A:内容を確認して返却
opt 指摘あり
A -> B:修正して提出
end
deactivate B
else 経験者の場合
A -> C:最終原案を提出
activate C
return:内容を確認して返却
deactivate C
end
A -> C:承認を申請
activate C
return:承認して返却
deactivate C
create E
A -> E:承認済原本を提出
deactivate A
par
activate E
E -> E:保管
else
create D
E --> D:複写を配布
end
deactivate E
@enduml

f:id:myopomme:20190707101527p:plain

いろいろな構文とか

他の構文。

構文 意味 内容
opt option 条件を満たしたときに実行
par/else parallel 同時に処理する
alt/else alternative 条件で処理が変わる
activate/deactivate ライフライン(縦の破線)の実行 実行中を示す
box/end box box ライフラインを囲む
return return 直前のactivateに対して返信を描く
create create ライフラインを定義する分類子を矢印がつながる直前に出す
break break 処理の中断
loop loop 繰り返し処理
ref reference 別の処理がある
critical critical 排他処理
group assert assert 処理を実行するための条件
group ignore ignore 無効の処理や重要でない処理
group neg negation 本来、生じない処理
group consider consider 重要な処理