2020/05/03

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

背景


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

記事の目的


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

アクティビティ図


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

アクティビティ図とは

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

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

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

まとめ


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

参考文献



変更履歴


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

0 件のコメント:

コメントを投稿

MQTTの導入

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