日々のつれづれ

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

UMLを練習する、アクティビティー図 ベータ版-7

アクティビティー図 その2

アクティビティー図を描いて残念だったこと

  • 行動の位置(ノード)が自動配置の反面、思った位置にいってくれない
  • 行動をつなぐ線・矢印(エッジ)がくねくねの曲線
  • 条件分岐で、ダイヤモンドの外に条件が記載され、条件を見分けにくい
  • 行動は1つだけ、2つ以上の同じ行動を使えない

もちろん、良い機能もたくさんあります。ただ、慣れてくると、贅沢になって、もっと機能が欲しくなるって気持ちです。

アクティビティー図(ベータ版)

plantUMLの公式に、アクティビティー図(ベータ版) の記述がある。どうも、アクティビティー図は過渡期のようで、新しい構文を提唱しているっぽい。

ホットケーキレシピを描きなおす ... 時間経過を破線矢印で見せる

同じように、2枚目を焼くループ処理を作る。
このとき、図を見ると「3分待ち」、「2分待ち」があって、これは while/repeat でかくほどじゃない。
矢印の装飾をつかって時間経過を表記する。

矢印はコメントの場所で指定する。

:ノードを描く;
-[ここで色、形状を指定する]-> コメントの矢印が変わる
-[dashed]-> 破線
-[doted]-> 点線
-[bold]-> 太線
-[hidden]-> 矢印なし
-[#red]-> 赤矢印
-[#blue]-> 青矢印
@startuml
title ホットケーキミックスの準備_矢印の変更
start
fork
  fork
    :ボウルにAをふるい入れる;
    :泡立て器で混ぜる;
  fork again
    :別のボウルに卵を割りほぐす;
    :別のボウルに牛乳を加える;
    :卵と牛乳を混ぜる;
  end fork
  :混ぜ合わせた卵と牛乳をAに加える;
  :泡立て器で粉っぽさがなくなるまで混ぜる;
  :生地を作る;
fork again
  fork
    :キッチンペーパーに油を染み込ませる;
    :フライパンに油を塗る;
    :フライパンを熱する;
  fork again
    :ふきんを濡らし置く;
  end fork
:ぬれたふきんの上にフライパンを置いて熱を取る;
:再び弱火にかける;
end fork
repeat
  :生地をおたま1杯とる;
  :生地を上からフライパンにの中心に落とす\n(こうすると丸い形になる);
  -[dashed]-> 3分間待つ;
  :表面を見る;
  while (プツプツと穴がでる) is (No)
    :待つ;
  end while (Yes)
  :生地を裏返す;
  -[dashed]->2分間待つ;
  :取り出す;
  :ホットケーキを器に盛る;
repeat while (焼き終わった) is (Yes)
:お好みでバターとメープルシロップをかける;
stop
@enduml

f:id:myopomme:20190714225125p:plain

ここで :生地をおたま1杯とる; のノードを fork/end fork の外(下)に移動した。
fork/end fork の中にrepeatを戻すとエラーになるようだ。