UMLを練習する、アクティビティー図-2
アクティビティー図
私には、手順の記述方法でなじみがある図。
何かの操作手順を伝えるとき、行動を単位として、それを順番につなげる。
料理のレシピをイメージするとわかりやすい。
ただ、UMLにはステート図ってのがあって、アクティビティー図と似ている。(少なくとも私には難しかった)
区別としては、行動を単位に流れを描く方がアクティビティー図で、状態の変化を単位に描くのがステート図ってことで、扱う業態や業種で使い分けがあるんだろうな、って印象です。
まぁ、actibvity と state の意味そのままなんですが…
料理のレシピを考える
アクティビティー図は行動をつなぐので、料理のレシピと相性が良いと思う。そこで、ホットケーキレシピを例に作ってみた。
前回まで
味の素さんのHPから引用した。
- ボウルにAをふるい入れ、泡立て器で混ぜる。
- 別のボウルに卵を割りほぐし、牛乳を加えて混ぜる。
- 「1」のボウルに「2」を加え、泡立て器で粉っぽさがなくなるまで混ぜ、生地を作る。
- フライパンに油をしみ込ませたキッチンペーパーで油を薄く塗り、フライパンを熱する。
- ぬれたふきんの上にフライパンを置いて熱を取り、再び弱火にかけ、「3」の生地をおたま1杯、上から中心に落とす(こうすると丸い形になる)。
- 約3分焼き、表面にプツプツと穴がでてきたら裏返し、約2分弱火のまま焼き、取り出す。
- 2枚目からは油をひかずにフライパンをぬれふきんの上に置いて熱を取り、弱火にかけて同様に焼く。
- 器に盛り、お好みでバター、メープルシロップをかける。
この内容でフロー図を作ったけど、わかりにくい、直感的じゃなかった。 これは、1つのアクティビティーに複数の行動を記入してるから。
行動を描き分ける
行動を細かく切る場合、行動を特定しないと描けない。日常言葉って、行動と状態を区別せずに使っていて、話し手と受け手がそれぞれ読み替えて理解していることに気づく。
例えば、
* フライパンに油をしみ込ませたキッチンペーパーで油を薄く塗り: これはキッチンペーパーに油を染み込ませてから、フライパンに油を塗る、ってことで、「自分が油を染み込ませる」ってこと
* ぬれたふきんの上に: 上と同じで、「ふきんを濡らす」行動が隠れている
* 生地をおたま1杯、上から中心に落とす: おたまに生地をとる + 生地を上から落とす
* 表面にプツプツと穴がでてきたら裏返し: 「表面にプツプツと穴ができる」という状態。「穴ができるまで待つ」と読み替える
という感じ。
@startuml (*) --> ボウルにAをふるい入れる ボウルにAをふるい入れる --> 泡立て器で混ぜる 泡立て器で混ぜる --> 別のボウルに卵を割りほぐす 別のボウルに卵を割りほぐす --> 別のボウルに牛乳を加える 別のボウルに牛乳を加える --> 卵と牛乳を混ぜる 卵と牛乳を混ぜる --> 混ぜ合わせた卵と牛乳をAに加える 混ぜ合わせた卵と牛乳をAに加える --> 泡立て器で粉っぽさがなくなるまで混ぜる 泡立て器で粉っぽさがなくなるまで混ぜる --> 生地を作る 生地を作る --> キッチンペーパーに油を染み込ませる キッチンペーパーに油を染み込ませる --> フライパンに油を塗る フライパンに油を塗る --> フライパンを熱する フライパンを熱する --> ふきんを濡らし置く ふきんを濡らし置く --> ぬれたふきんの上にフライパンを置いて熱を取る ぬれたふきんの上にフライパンを置いて熱を取る --> 再び弱火にかける 再び弱火にかける --> 生地をおたま1杯とる 生地をおたま1杯とる --> "生地を上からフライパンにの中心に落とす(こうすると丸い形になる)" "生地を上からフライパンにの中心に落とす(こうすると丸い形になる)" --> 約3分焼く 約3分焼く --> 表面にプツプツと穴がでるまで待つ 表面にプツプツと穴がでるまで待つ --> 生地を裏返す 生地を裏返す --> 約2分弱火のまま焼く 約2分弱火のまま焼く --> 取り出す 取り出す --> 2枚目からは油をひかずにフライパンをぬれふきんの上に置く 2枚目からは油をひかずにフライパンをぬれふきんの上に置く --> 熱を取る 熱を取る --> 弱火にかける 弱火にかける --> 同様に焼く 同様に焼く --> ホットケーキを器に盛る ホットケーキを器に盛る --> お好みでバターとメープルシロップをかける お好みでバターとメープルシロップをかける --> (*) @enduml
8ステップのレシピと思ったら、結構な行動ですよね。たかがホットケーキ、じゃないですよ。大変です。
こんな感じで、plantUMLのアクティビティー図を使うと、簡単に手順を図示できる。
エクセルやパワーポイントで使った時間はなんだったの?ってくらい簡単。