2020/05/03

PlantUMLでアクティビティ図作成

背景


システムの詳細設計でアクティビティ図を作成する必要があり、Gitで差分管理が可能なクラス図作成ツールを調査した。

記事の目的


PlantUMLでアクティビティ図を作成する

アクティビティ図


アクティビティ図について記載する。

アクティビティ図とは

アクティビティ図は、ある事象の開始から終了までの機能を実行される順序にしたがって記述したものである。

アクティビティ図の描き方

  • 初期ノードと最終ノード
    1. @startuml
    2. start
    3. end
    4. @enduml
    スコープ内の開始と終了を表す。
  • アクションノード
    1. @startuml
    2. start
    3. : Action;
    4. end
    5. @enduml
    制御を表す。
  • デシジョンノードとマージノード
    1. @startuml
    2. start
    3. if (i == 0 || i ==3) then (true)
    4. :Fizz Buzz;
    5. : i++;
    6. else if (i == 1) then (true)
    7. :Fizz;
    8. : i++;
    9. else if (i == 2) then (true)
    10. :Buzz;
    11. : i++;
    12. else (false)
    13. : i++;
    14. endif
    15. end
    16. @enduml
    条件によるフロー分岐(デシジョンノード)もしくは、複数のフローの合流(マージノード)を表す。
  • フォークノードとジョインノード
    1. @startuml
    2. start
    3. fork
    4. : Process A;
    5. fork again
    6. : Process B;
    7. : Process C;
    8. endfork
    9. end
    10. @enduml
    複数のフローが非同期に実行される(フォークノード)、もしくは、複数の非同期処理が終了する(ジョインノード)ことを表す。
  • 最終制御
    1. @startuml
    2. start
    3. if (command == exit) then (true)
    4. stop
    5. endif
    6. end
    7. @enduml
    それまでの制御で使用されたトークンを全て破棄することを表す。
  • オブジェクト
    1. @startuml
    2. start
    3. :Open the door>
    4. :Door(Object)]
    5. end
    6. @enduml
    制御のターゲットとなるオブジェクトを表す。
  • パーティション
    1. @startuml
    2. start
    3. partition Client {
    4. :Select;
    5. }
    6. partition Server {
    7. if (Type) then (A)
    8. :Process A;
    9. else (B)
    10. :Process B;
    11. endif
    12. }
    13. end
    14. @enduml
    1. @startuml
    2. |Client|
    3. start
    4. :Select;
    5. if (Type) then (A)
    6. |Server|
    7. :Process A;
    8. else (B)
    9. |Server|
    10. :Process B;
    11. endif
    12. end
    13. @enduml
    制御がどの領域に属するかを表すための領域分けとして使用される。
  • 送信とアクション
    1. @startuml
    2. start
    3. : Emit >
    4. end
    5. @enduml
    オブジェクトにシグナルを送信する制御を表す。
  • 受信
    1. @startuml
    2. |Client|
    3. start
    4. : Emit>
    5. |Server|
    6. : Receive<
    7. end
    8. @enduml
    シグナル、またはイベントの発生の待機を表す。
  • 繰り返し
    1. @startuml
    2. start
    3. :i=0;
    4. while (i<10) is (true)
    5. :i++;
    6. endwhile (false)
    7. end
    8. @enduml
    1. @startuml
    2. start
    3. :i=0;
    4. repeat :Process A;
    5. :Process B;
    6. backward:i++;
    7. repeat while (i<10) is (true)
    8. end
    9. @enduml
    繰り返し処理を表す。

まとめ


  • PlantUMLでアクティビティ図を作成する方法を調査、記載した

参考文献



変更履歴


  1. 2020/05/03: 新規作成

0 件のコメント:

コメントを投稿

MQTTの導入

背景 IoTデバイスの接続環境構築のため、MQTT(mosquitto)の導入を行った。 記事の目的 MQTT(mosquitto)をUbuntuに導入する mosquitto ここではmosquittoについて記載する。 MQTT MQTT(Message Qu...