アクティビティ図とは何か

アクティビティ図アクティビティがどのように調整されて、異なる抽象レベルでサービスを提供するかを説明する。通常、イベントは特定の操作によって達成される必要がある。特に、複数の異なる目的を達成するために調整が必要な操作、または単一のユースケース内のイベントどうしの関係性を示す場合に適している。特に、アクティビティが重複し、調整が必要なユースケースにおいて特に有用である。また、複数のユースケースがどのように連携して組織のワークフローを構築するかをモデル化するのにも適している。

アクティビティ図を使うべきタイミングはいつか?

開発者は、プログラムの高レベルなフローを理解するためにアクティビティ図を使用する。また、特定のイベントをトリガーする制約や条件を特定するのにも役立つ。

  1. ビジネスワークフローを表現する
  2. ビジネスワークフローの検討を通じて候補となるユースケースを特定する
  3. ユースケースの事前条件および事後条件(文脈)を特定する
  4. ユースケース間・ユースケース内でのワークフローをモデル化する
  5. オブジェクトの操作における複雑なワークフローをモデル化する
  6. 高レベルのアクティビティ図において、複雑なアクティビティを詳細にモデル化する

アクティビティ図の基本構成要素

アクティビティ図は、基本的に1つのアクティビティから別のアクティビティへの流れを表すフローチャートである。アクティビティはシステムの操作として説明できる。アクティビティ図の基本的な目的は、システムの動的動作を捉えることである。また、オブジェクト指向のフローチャートとも呼ばれる。

アクティビティ図の表記法は、状態機械図と非常に似ている。実際、UML仕様によれば、アクティビティ図は状態機械図の一種である。

アクション

アクションは、アクティビティ内の単一の原子的なステップを表す名前付き要素であり、アクティビティ内でさらに分解されないものである。

Action

アクティビティ

アクティビティは、以下のいずれかのアクティビティノードから構成される個別の要素で構成される動作を表す:

  1. アクション
  2. オブジェクト
  3. 制御フロー

制御フロー

制御フローは、1つのアクションから別のアクションへの実行制御の移行を表す。

これは、一方の端に矢印がついた実線として描かれる。矢印は次のアクションを指している。

注文の入力」アクションが終了すると、実行制御は「注文の出荷」アクションに移行する。

Control flow

開始と終了

これらはアクティビティ内のアクション実行シーケンスの開始点と終了点を表します。開始記号と終了記号は、初期状態記号および最終状態とも呼ばれます。

  1. 開始要素は小さな実線の円として描かれます。
  2. 終了要素は、外側の円に囲まれた小さな実線の円として描かれます。

Start and final

決定

これは特定の条件を評価し、実行を継続するアクション経路を決定する決定アクションを表します。

決定記号は、一つの入力制御フローと複数の出力制御フローを持つ小さな菱形として描かれます。

各出力制御フローには、そのフローに至る条件をラベル付けする必要があります。

次のアクションの後に実行される決定アクションは注文受領在庫を確認するために実行されるアクションは、以下の図のように描くことができます:

Decision

マージ

複数の代替実行経路が合流して継続するポイントを表します。

複数の入力制御フローと一つの出力制御フローを持つ小さな菱形として描かれます。

以下の二つの経路が合流するマージポイントは注文出荷 および注文保留が合流するポイントは、以下の図のようにマージ記号として描くことができます:

Merge

フォーク

これは単一の実行フローを複数の並行実行フローに分割するフォークアクションを表します。

一つの入力制御フローが一方の側にあり、複数の出力制御フローが他方の側にある短い実線として描かれます。

次のアクションの後に実行されるフォークアクションは注文受領アクションの後に開始する注文出荷 アクションと 請求書を送信 アクションを並行して実行する場合、図のように描くことができる。

Fork

結合

複数の並行実行フローが終了するのを待つ結合アクションを表す。

複数の入力制御フローが一方の側にあり、一方の出力制御フローが他方の側にある短い実線として描かれる。

次のアクションの前に実行される結合アクション注文を完了 アクションを実行して、両方の注文を出荷 アクションと 請求書を送信 アクションが終了するのを待つ場合、図のように描くことができる。

Join

オブジェクト

アクションの入力および/または出力となるオブジェクトを表す。この場合、オブジェクトは特定の状態にあるクラスのインスタンスと見なされる。

名前を内側に配置した長方形で表される。

名前の下に括弧で囲まれた状態を記述することで、さらに限定することもできる。

注文 [完了] アクションから生成されたオブジェクト注文を入力 アクションによって消費される。このオブジェクトは、UMLアクティビティ図でオブジェクト表記として図のように描くことができる。注文を出荷 アクション。このオブジェクトは、UMLアクティビティ図でオブジェクト表記として図のように描くことができる。

Object同じ意味を持つ異なる表記法:

Object (Semantic)

信号とイベント

アクティビティの外部に信号を送信する信号アクションを表す。送信信号アクションは、信号の受信者からの応答を待たない。自身を終了し、実行制御を次のアクションに渡す。

名前を内側に配置した凸五角形として描かれる。

The 顧客に通知注文処理アクティビティ内の信号送信アクションは、以下の図に示すようにUMLアクティビティ図における信号送信記法として描くことができる。

Singal and evnet

スイムレーンとパーティション

  1. パーティションは、共通の特性を持つアクションやオブジェクトのグループを示す。
  2. パーティションは、パーティション名を一方の端とする二本の平行線として描かれる。
  3. 二本の線の間に位置するすべてのアクションやオブジェクトは、そのグループに属すると見なされる。
  4. アクションやオブジェクトが複数のパーティションの境界上にある場合、複数のグループに属すると見なされる。
  5. パーティションは入れ子にすることで、パーティションの階層を形成できる。

注文処理アクティビティ内のアクションやオブジェクトは3つのグループに分けることができる:

  1. 注文部門のアクショングループ
  2. 会計部門のアクショングループ
  3. アクションの所有権に基づく顧客アクショングループ

これらのグループは、以下の図に示すようにUMLアクティビティ図におけるパーティション記法として描くことができる。

Swimlane and partition

パラメータ化されたアクティビティ

アクティビティパラメータアクティビティは、アクティビティへの入力を受け入れたり、アクティビティからの出力を提供する。

アクティビティパラメータは境界に表示され、アクティビティ名の下に「パラメータ名: パラメータ型」としてリストされる。

以下の例は、アクティビティに対して定義された2つの入力パラメータと1つの出力パラメータを示している。

Parameterized activity

アクティビティフレーム

UMLアクティビティ図で使用され、アクティビティのすべてのアクションやオブジェクトを囲む境界を提供する。

丸みを帯びた角を持つ大きな長方形として描かれる。アクティビティ名、入力パラメータ、出力パラメータは長方形の左上付近に記載される。

入力パラメータおよび出力パラメータを表すオブジェクト記法は、長方形の辺上に配置できる。

なぜアクティビティ図を使うのか?

UMLのアクティビティ図を使用すると、エッジで接続されたノードの集合を含むアクティビティとしてイベントを作成できる。アクティビティは任意のモデル化要素に接続され、その振る舞いをモデル化できる。アクティビティ図はしばしば詳細化に使用される。

  • ユースケース
  • クラス
  • コンポーネントとサブシステム
  • ワークフローとビジネスプロセス

アクティビティ図のその他の例

Activity frame

例:アクティビティ図 – 表記法

Activity notatins explained

例:アクティビティ図 – 処理順序

Activity diagram example - Process Order

例:アクティビティ図 – 発送の作成

Activity diagram example - Create shipment

例:アクティビティ図のスイムレーン

Activity diagram example - Process Order (Swimlane)

リソース

  1. UMLでアクティビティ図を描くには? – Visual Paradigm
  2. Visual Paradigm Online – Google Workspace Marketplace
  3. Visual ParadigmにおけるUML図の紹介 – ArchiMetric
  4. Visual Paradigmのサブアクティビティ図アイコン – Stack Overflow
  5. オンラインUML図ツール
  6. アクティビティ図 – 統一モデリング言語(UML) – GeeksforGeeks
  7. UMLアクティビティ図の作成 – Microsoft サポート
  8. UMLクラス図チュートリアル
  9. ドメインモデルとアクティビティ図の違い – Stack Overflow

コメントを残す