接続オブジェクト
はじめに
BPMN 2.0では、接続オブジェクトを使用してプロセスモデル内の異なる要素間の関係と情報の流れを定義します。これらはアクティビティ、イベント、ゲートウェイを接続し、プロセスの流れを導いたり、データやメッセージを伝達したりします。主な接続オブジェクトには、シーケンスフロー、メッセージフロー、アソシエーションがあります。
シーケンスフロー
シーケンスフローは、プロセス内でアクティビティ、イベント、ゲートウェイが実行される順序を定義します。タスクの論理的な進行を一歩一歩示します。
これは、タスクが実行されるべき順序を示し、矢じり付きの直線で表されます。条件付きまたはデフォルトのパスウェイを示すことがあります。
- 例: シーケンスフローは、「アプリケーションの提出」タスクを「アプリケーションのレビュー」タスクに接続し、提出後にレビューが行われることを示しています。
- シーケンスフローの種類:
- 通常のシーケンスフロー: アクティビティ間のデフォルトの流れ。
- 条件付きシーケンスフロー: 特定の条件が満たされた場合のみ進行するシーケンスフロー(小さなダイヤモンドで示されます)。
- デフォルトシーケンスフロー: 条件が満たされない場合のフォールバックフロー(開始点での斜線で示されます)。
- ユースケース: プロセスのステップバイステップの進行を案内し、アクティビティが特定の順序で実行されることを保証するためにシーケンスフローを使用します。
メッセージフロー
メッセージフローは、異なる参加者またはプロセス間のコミュニケーションを表し、通常は異なるプールの一部である場合に使用されます。独立して動作するプロセス間で情報の交換を示すために使用されます。
メッセージフローコネクタは、異なるプール間や部門などの組織境界を越えたコミュニケーションを示します。同じプール内でイベントやアクティビティをリンクするためのものではありません。このコネクタは、サークルから始まり、矢じりで終わる破線として表されます。
- 例: メッセージフローは、1つのプール(サプライヤーを表す)内の「請求書送信」タスクを、別のプール(顧客を表す)内の「請求書受信」タスクに接続し、請求書が彼らの間で送信されることを示しています。
- ユースケース: メッセージフローは、異なるエンティティやビジネス参加者(別々のプールとして表される)間のコミュニケーションを描写するために使用されます。例えば、一つの会社が別の会社に注文リクエストを送信する場合など。
アソシエーション
アソシエーションは、アーティファクト(データオブジェクトやテキスト注釈、グループなど)をフローオブジェクト(アクティビティ、イベント、ゲートウェイ)に接続して、要素間の関係を明確にします。アソシエーションはプロセスのシーケンスに影響を与えませんが、文書化や詳細情報に使用されます。
この要素は、矢じりやサークルを持たない点線として描写され、イベント、アクティビティ、またはゲートウェイをアーティファクトとリンクします。
- 例: アソシエーションは、「レポート生成」タスクを「レポートドキュメント」(データオブジェクト)に接続し、このタスクがドキュメントを生成することを示します。
- アソシエーションの種類:
- 通常のアソシエーション: タスクやデータオブジェクト、注釈などを接続します。
- 方向性のあるアソシエーション: タスクからまたはタスクへのデータの流れを示します(矢印で示されます)。
- 双方向アソシエーション: 要素間の双方向の関係を示します(2つの矢じりで示されます)。
- ユースケース: プロセスフローに影響を与えずに追加情報(例:データオブジェクト、テキスト注釈)をタスクやイベントにリンクしたい場合にアソシエーションを使用します。
接続オブジェクトの重要ポイント
- シーケンスフロー: 単一のプロセス内のタスクやイベントの順序を定義します(1つのプール内)。アクティビティ、条件、および決定の流れを指定するために使用されます。
- メッセージフロー: 異なる参加者やプロセス間(異なるプールを越えて)のコミュニケーションを表します。プロセスが情報を交換したり、別のプロセスでアクションをトリガーする際に使用されます。
- アソシエーション: データ、ドキュメント、注釈などの追加情報をアクティビティにリンクし、文脈や説明を提供しますが、プロセスフローを制御しません。
例
顧客注文を管理するプロセスを想像してください:
- シーケンスフロー: 注文を受け取った後、システムは注文を処理し、それを配送用に送信します。各ステップ(受信、処理、配送)はシーケンスフローで接続されています。
- メッセージフロー: 注文が処理された後、配送を担当する外部の配送会社にメッセージが送信されます。この通信は2つのエンティティ間でのメッセージフローで表されます。
- アソシエーション: 「顧客注文」データオブジェクトは「注文を受け取る」タスクに関連付けられ、このタスクが注文データを扱うことを示しています。
まとめ
- シーケンスフロー: 単一プロセス内のアクティビティの順序を管理します。
- メッセージフロー: 異なるエンティティやプール間のコミュニケーションを促進します。
- アソシエーション: データや注釈などのアーティファクトをフロー要素にリンクし、追加の文脈を提供します。
これらの接続オブジェクトは、タスクとイベントがどのようにリンクされ、データがプロセスを通じてどのように移動し、BPMNモデル内でプロセスがどのように相互作用するかを定義するための基盤です。