日々のつれづれ

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

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

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

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

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

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

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

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

ホットケーキレシピを描きなおす...調理ステップを分ける、パーティション

ベータ版もフロー図をパーティションで分けられる。

partition構文 は囲みたい範囲の上下で次のように記載する。

partition パーティションの名前 {
  ここに
  囲みたい
  ノードを
  書く
}
@startuml
title ホットケーキミックスの準備_partition構文
start
fork
  partition ホットケーキミックスの準備 {
    fork
      :ボウルにAをふるい入れる;
      :泡立て器で混ぜる;
    fork again
      :別のボウルに卵を割りほぐす;
      :別のボウルに牛乳を加える;
      :卵と牛乳を混ぜる;
    end fork
    :混ぜ合わせた卵と牛乳をAに加える;
    :泡立て器で粉っぽさがなくなるまで混ぜる;
    :生地を作る;
  }
fork again
  partition フライパンの準備 {
  fork
    :キッチンペーパーに油を染み込ませる;
    :フライパンに油を塗る;
    :フライパンを熱する;
  fork again
    :ふきんを濡らし置く;
  end fork
  :ぬれたふきんの上にフライパンを置いて熱を取る;
  :再び弱火にかける;
  }
end fork
partition ホットケーキを焼く {
  repeat
    :生地をおたま1杯とる;
    :生地を上からフライパンにの中心に落とす\n(こうすると丸い形になる);
    -[dashed]-> 3分間待つ;
    :表面を見る;
    while (プツプツと穴がでる) is (No)
      :待つ;
    end while (Yes)
    :生地を裏返す;
    -[dashed]->2分間待つ;
    :取り出す;
    :ホットケーキを器に盛る;
  repeat while (焼き終わった) is (Yes)
}
:お好みでバターとメープルシロップをかける;
stop
@enduml

f:id:myopomme:20190714225541p:plain

こんな感じですね。

β版になって、現行で気になることが解消されました。個人的にはGraphvizパッケージを使わない点が気に入っています。GraphvizパッケージってRでも使っていて、とても便利なんです。でも、plantUMLだと自動配置にすることが逆に働いて思うようにノードとエッジを持っていけなかった。特にループ処理。
β版はループ処理が見慣れた折れ線になってくれて、気持ちがいいです。

いくつか仕様が変わって、コーディングも変わりました。慣れは要るけど、こっちに切り替えた方が正解、って気がします。
足りないところは次のアップデートに期待です。