日々のつれづれ

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

UMLを練習する、アクティビティー図-3

アクティビティー

私には、手順の記述方法でなじみがある図。
何かの操作手順を伝えるとき、行動を単位として、それを順番につなげる。
料理のレシピをイメージするとわかりやすい。

ただ、UMLにはステート図ってのがあって、アクティビティー図と似ている。(少なくとも私には難しかった)
区別としては、行動を単位に流れを描く方がアクティビティー図で、状態の変化を単位に描くのがステート図ってことで、扱う業態や業種で使い分けがあるんだろうな、って印象です。
まぁ、actibvity と state の意味そのままなんですが…

料理のレシピを考える

アクティビティー図は行動をつなぐので、料理のレシピと相性が良いと思う。そこで、ホットケーキレシピを例に作ってみた。

前回まで

味の素さんのHPから引用した。
行動を描き分けて、より具体的に記述した。

けど、ステップが多くなって冗長なレシピになってしまった。これは本末転倒。

並列処理にする

調理って、何でもタンデムじゃなくて、いろんなことを同時にしてる。手際がいい、ってそういうこと。
ホットケーキもそうだよね。
アクティビティー図は同じ行動につなぐと並列処理になる。

@startuml
title ホットケーキレシピを並列処理で描き分ける
(*) --> ボウルにAをふるい入れる
ボウルにAをふるい入れる --> 泡立て器で混ぜる
泡立て器で混ぜる --> 混ぜ合わせた卵と牛乳をAに加える
(*) --> 別のボウルに卵を割りほぐす
別のボウルに卵を割りほぐす --> 別のボウルに牛乳を加える
別のボウルに牛乳を加える --> 卵と牛乳を混ぜる
卵と牛乳を混ぜる --> 混ぜ合わせた卵と牛乳をAに加える
混ぜ合わせた卵と牛乳をAに加える --> 泡立て器で粉っぽさがなくなるまで混ぜる
泡立て器で粉っぽさがなくなるまで混ぜる --> 生地を作る
生地を作る --> 生地をおたま1杯とる
(*) --> キッチンペーパーに油を染み込ませる
キッチンペーパーに油を染み込ませる --> フライパンに油を塗る
フライパンに油を塗る --> フライパンを熱する
フライパンを熱する --> ぬれたふきんの上にフライパンを置いて熱を取る
(*) --> ふきんを濡らし置く
ふきんを濡らし置く --> ぬれたふきんの上にフライパンを置いて熱を取る
ぬれたふきんの上にフライパンを置いて熱を取る --> 再び弱火にかける
再び弱火にかける --> 生地をおたま1杯とる
生地をおたま1杯とる --> "生地を上からフライパンにの中心に落とす(こうすると丸い形になる)"
"生地を上からフライパンにの中心に落とす(こうすると丸い形になる)" --> 約3分焼く
約3分焼く --> 表面にプツプツと穴がでるまで待つ
表面にプツプツと穴がでるまで待つ --> 生地を裏返す
生地を裏返す --> 約2分弱火のまま焼く
約2分弱火のまま焼く --> 取り出す
取り出す --> 2枚目からは油をひかずにフライパンをぬれふきんの上に置く
2枚目からは油をひかずにフライパンをぬれふきんの上に置く --> 熱を取る
熱を取る --> 弱火にかける
弱火にかける --> 同様に焼く
同様に焼く --> ホットケーキを器に盛る
ホットケーキを器に盛る --> お好みでバターとメープルシロップをかける
お好みでバターとメープルシロップをかける --> (*)
@enduml

f:id:myopomme:20190706235427p:plain

こんな感じで、plantUMLのアクティビティー図を使うと、簡単に手順を図示できる。
エクセルやパワーポイントで使った時間はなんだったの?ってくらい簡単。