UMLを練習する、アクティビティー図-1
アクティビティー図
私には、手順の記述方法でなじみがある図。
何かの操作手順を伝えるとき、行動を単位として、それを順番につなげる。
料理のレシピをイメージするとわかりやすい。
ただ、UMLにはステート図ってのがあって、アクティビティー図と似ている。(少なくとも私には難しかった)
区別としては、行動を単位に流れを描く方がアクティビティー図で、状態の変化を単位に描くのがステート図ってことで、扱う業態や業種で使い分けがあるんだろうな、って印象です。
まぁ、actibvity と state の意味そのままなんですが…
料理のレシピを考える
アクティビティー図は行動をつなぐので、料理のレシピと相性が良いと思う。そこで、レシピを例に作ってみた。
ホットケーキを作る
子供から大人までみんな大好き、もちろん私も大好きなホットケーキのレシピを描こう。
何が一般的かわからないけど、味の素さんのHPから引用した。
こんな感じ
味の素HPの内容
材料(3枚分)
材料 | 分量 |
---|---|
A薄力粉 | 150g |
Aベーキングパウダー | 小さじ2 |
A砂糖 | 40g |
卵 | 1個 |
牛乳 | 130ml |
「AJINOMOTO サラダ油」 | 少々 |
- 分量は直径13cm、3枚分です。厚めにふんわりと仕上げたいときは牛乳を120mlに調整してください。
つくり方
- ボウルにAをふるい入れ、泡立て器で混ぜる。
- 別のボウルに卵を割りほぐし、牛乳を加えて混ぜる。
- 「1」のボウルに「2」を加え、泡立て器で粉っぽさがなくなるまで混ぜ、生地を作る。
- フライパンに油をしみ込ませたキッチンペーパーで油を薄く塗り、フライパンを熱する。
- ぬれたふきんの上にフライパンを置いて熱を取り、再び弱火にかけ、「3」の生地をおたま1杯、上から中心に落とす(こうすると丸い形になる)。
- 約3分焼き、表面にプツプツと穴がでてきたら裏返し、約2分弱火のまま焼き、取り出す。
- 2枚目からは油をひかずにフライパンをぬれふきんの上に置いて熱を取り、弱火にかけて同様に焼く。
器に盛り、お好みでバター、メープルシロップをかける。
ベーキングパウダー入りの生地はすぐに焼かないとふくらみが悪くなるので、 混ぜたらすぐに焼きましょう。
plantUMLで描く
(*)で開始または終了するとアクティビティー図と認識して、アクティビティー同士を "-->" でつなぐと流れができる。
記号(.とか)空白があると描けないので "..." とダブルクオートで囲む。長い文章は改行コード(\n)を入れる。
@startuml title ホットケーキのつくり方 (*) --> "1. ボウルにAをふるい入れ、泡立て器で混ぜる" "1. ボウルにAをふるい入れ、泡立て器で混ぜる" --> "2. 別のボウルに卵を割りほぐし、牛乳を加えて混ぜる" "2. 別のボウルに卵を割りほぐし、牛乳を加えて混ぜる" --> "3. 「1」のボウルに「2」を加え、泡立て器で粉っぽさがなくなるまで混ぜ、生地を作る" "3. 「1」のボウルに「2」を加え、泡立て器で粉っぽさがなくなるまで混ぜ、生地を作る" --> "4. フライパンに油をしみ込ませたキッチンペーパーで油を薄く塗り、フライパンを熱する" "4. フライパンに油をしみ込ませたキッチンペーパーで油を薄く塗り、フライパンを熱する" --> "5. ぬれたふきんの上にフライパンを置いて熱を取り、再び弱火にかけ、\n「3」の生地をおたま1杯、上から中心に落とす(こうすると丸い形になる)" "5. ぬれたふきんの上にフライパンを置いて熱を取り、再び弱火にかけ、\n「3」の生地をおたま1杯、上から中心に落とす(こうすると丸い形になる)" --> "6. 約3分焼き、表面にプツプツと穴がでてきたら裏返し、約2分弱火のまま焼き、取り出す" "6. 約3分焼き、表面にプツプツと穴がでてきたら裏返し、約2分弱火のまま焼き、取り出す" --> "7. 2枚目からは油をひかずにフライパンをぬれふきんの上に置いて熱を取り、弱火にかけて同様に焼く" "7. 2枚目からは油をひかずにフライパンをぬれふきんの上に置いて熱を取り、弱火にかけて同様に焼く" --> "8. 器に盛り、お好みでバター、メープルシロップをかける" "8. 器に盛り、お好みでバター、メープルシロップをかける" --> (*) @enduml
こんな感じ。
こんな感じで、plantUMLのアクティビティー図を使うと、簡単に手順を図示できる。
エクセルやパワーポイントで使った時間はなんだったの?ってくらい簡単。
でも、わかりにくい、直感的じゃない。
これは、1つのアクティビティーに複数の行動を記入してるから。
書き換えを通して、アクティビティー図を理解してみる。