この記事では、UMLアクティビティ図の概念に焦点を当てています。UMLアクティビティ図は、システムの動的な動作をモデル化するためにUMLが使用するもう1つの一般的なツールです。アクティビティのシーケンスを記述し、あるアクティビティから別のアクティビティへの制御の流れを示します。UMLアクティビティ図は、基本的にフローチャートです。

UMLアクティビティ図の概要
UMLアクティビティ図と状態図はどちらもステートマシンの表現ですが、2つの間に本質的な違いがあります。
- UMLアクティビティ図は、あるアクティビティから別のアクティビティへの制御フローに焦点を当てています。これは、内部処理主導のフローです。
- 一方、状態図は、あるアクティビティから別のアクティビティへの制御の流れに焦点を当てています。主に外部イベントの参加を含む、ある州から別の州への流れを説明してください。
UMLアクティビティ図とフローチャートの違い
- フローチャートは、処理プロセスの説明に焦点を当てています。その主な制御構造は、シーケンス、ブランチ、およびサイクルです。各処理プロセスの間には、厳密な順序と時間の関係があります。
- UMLアクティビティ図は、オブジェクトアクティビティのシーケンス関係が続くルールを示しています。これは、システムのプロセスではなく、システムの動作に焦点を当てています。
- UMLアクティビティ図は並行アクティビティの状況を表すことができますが、フローチャートはできません。
- UMLアクティビティ図はオブジェクト指向ですが、フローチャートはプロセス指向です。
実際、基本的なアクティビティ図を使用して、同等の図と同様のフローチャートを表すことができます。

UMLアクティビティ図のグラフィック表現
UMLでは、UMLアクティビティ図は角の丸い長方形で表されます。
アクティビティ図の表記の概要
表記説明UML表記
アクティビティ— 一連のアクションを表すために使用されます

アクション— 実行するタスク

制御フロー— 実行のシーケンスを表示します

オブジェクトフロー— あるアクティビティ(またはアクション)から別のアクティビティ(またはアクション)へのオブジェクトのフローを表示します。

初期ノード— 一連のアクションまたはアクティビティの開始を表します

アクティビティ最終ノード— アクティビティ(またはアクション)内のすべての制御フローとオブジェクトフローを停止します

オブジェクトノード— 一連のオブジェクトフローに接続されているオブジェクトを表します

決定ノード— 制御フローまたはオブジェクトフローが1つのパスのみを通過することを確認するためのテスト条件を表します

ノードのマージ— 決定ノードを使用して作成されたさまざまな決定パスを元に戻します。

フォークノード— 動作をアクティビティ(またはアクション)の並列または同時フローのセットに分割します

ノードに参加— アクティビティ(またはアクション)の並列または同時フローのセットをまとめます。

スイムレーンとパーティション— アクティビティ図で同じアクターによって実行されたアクティビティをグループ化する方法、または単一のスレッドでアクティビティをグループ化する方法

その他のアクティビティ図の例
アクティビティ図—ワードプロセッサのモデリング
以下のアクティビティ図の例は、次の手順でドキュメントを作成するワードプロセスのワークフローを示しています。
- ワードプロセッシングパッケージを開きます。
- ファイルを作成します。
- ディレクトリ内に一意の名前でファイルを保存します。
- ドキュメントを入力します。
- グラフィックが必要な場合は、グラフィックパッケージを開き、グラフィックを作成して、ドキュメントに貼り付けます。
- スプレッドシートが必要な場合は、スプレッドシートパッケージを開き、スプレッドシートを作成して、スプレッドシートをドキュメントに貼り付けます。
- ファイルを保存します。
- ドキュメントのハードコピーを印刷します。
- ワードプロセッシングパッケージを終了します。

アクティビティ図の例—プロセスの順序
注文を処理するためのワークフローに関連する問題の説明を前提として、アクティビティ図を使用して視覚的な表現で説明をモデル化しましょう。
プロセスの順序—問題の説明
注文を受け取ると、アクティビティは2つの並列セットのアクティビティに分割されます。一方が注文を処理して送信し、もう一方が請求を処理します。
フィルオーダー側では、配送方法が条件付きで決定されます。状態に応じて、オーバーナイトデリバリーアクティビティまたはレギュラーデリバリーアクティビティのいずれかが実行されます。
最後に、並列アクティビティを組み合わせて注文を閉じます。
以下のアクティビティ図の例は、フローをグラフ形式で視覚化したものです。

アクティビティ図の例—学生の登録
このUMLアクティビティ図の例では、大学への学生の登録プロセスを次のように説明しています。
- 志願者は大学への入学を希望しています。
- 申請者は、記入済みの登録フォームのコピーを渡します。
- レジストラはフォームを検査します。
- レジストラは、フォームが適切に入力されていると判断します。
- レジストラは、大学の概要プレゼンテーションに参加するように学生に通知します。
- レジストラは、学生がゼミに登録するのを支援します
- レジストラは、学生に最初の授業料を支払うように依頼します。

アクティビティ図— Swinlane
スイムレーンは、アクティビティ図またはアクティビティ図で同じアクターによって実行されたアクティビティをグループ化する方法、または単一のスレッドでアクティビティをグループ化する方法です。スタッフ経費の提出をモデル化するためのスウィンレーンアクティビティ図の例を次に示します。

Swinlaneおよび非Swinlaneアクティビティ図
以下のアクティビティ図の例は、swinlaneを使用しないアクティビティ図を使用して新しいクライアントに会うためのビジネスプロセスを示しています。

次の図は、swinlaneのアクティビティ図を使用して新しいクライアントに会うためのビジネスプロセスを示しています。

UML図の詳細については?
- UMLとは何ですか?
- なぜUMLモデリングなのか?
- 14のUMLダイアグラムタイプの概要
- クラス図とは何ですか?
- コンポーネント図とは何ですか?
- 配置図とは何ですか?
- オブジェクト図とは何ですか?
- パッケージ図とは何ですか?
- 複合構造図とは何ですか?
- プロファイル図とは何ですか?
- ユースケース図とは何ですか?
- アクティビティ図とは何ですか?
- ステートマシン図とは何ですか?
- シーケンス図とは何ですか?
- コミュニケーション図とは?
- 相互作用の概要図とは何ですか?
- タイミング図とは
- UMLコラボレーション図とは何ですか?
- UMLアソシエーションvsアグリゲーションvsコンポジション
- UMLクラス図チュートリアル
- UMLで制約をモデル化する方法は?
- ステートマシン図とアクティビティ図