フロー

フローとは、ビジネスプロセス図における業務やメッセージの“流れ”そのものを描写するモデリング要素. Flow.

フローの概要
フローとは、2つのオブジェクト同士を接続することで、プロセス図の中でアクティビティの実行順序やプロセス関係者の間でのメッセージの送受信を表し、実際のビジネスの“流れ”そのものを描写するものである. BPMNにおいては、フローは の2つから成る.
 * シーケンスフロー(Sequence Flow)
 * メッセージフロー(Message Flow)

BPMNでは、複数のオブジェクトを接続する「接続オブジェクト(Connecting Objects)」は の3つから構成されるが、フローは「方向性をもつ」ことが前提とされているので、必ずしも方向性をもつとは限らない関連をフローに含めることはできない. 実際のビジネスにおいては、「どの」作業を「どのように」行うかということだけでなく、その作業を「どのような順序で」行うのか、「誰から誰に対して」行うのかという要素も必要である. BPMNの記法は「業務の流れ」をモデル化（ビジネスプロセス図の作成）するために考案されているがので、“流れ”そのものを表すモデリング要素であるフローが果たす役割は特に大きい. 表記に関しては、始点と終点となるオブジェクト（主に「フローオブジェクト」）を1本の矢印でつなぐ.
 * シーケンスフロー
 * メッセージフロー
 * 関連(Association)

制御シーケンスフロー(Conditional Sequence Flow)
thumb|50px| 条件式を記述しているシーケンスフロー. フロー上に定義された条件式を満たせばこのフローを通過することができる. このフローの始点の接続先が条件分岐付きのアクティビティの場合は、シーケンスフローの始点に「制御マーカー」（小さいひし形）が付けられる. 判断ゲートウェイの場合、このゲートウェイが「制御マーカー」の役割を果たすので、マーカーは不要.

デフォルトシーケンスフロー(Default Sequence Flow)
thumb|50px| デフォルトの条件式が定義されたシーケンスフロー. 他の制御シーケンスフローがすべて「偽」である場合に通過することができる. シーケンスフローの始点側にバックスラッシュ（＼）を付けて表す. 同一のフローオブジェクトから出発する制御シーケンスフローのすべての条件式が「偽」と判断されると、通過することができる制御シーケンスフローが存在しないことになり、プロセスがそこで途絶えてしまう. このような状況を回避するために必要的に使用される. デフォルトシーケンスフローは必ず制御シーケンスフローと共に用いられなければならない.

（非制御）シーケンスフロー
thumb|50px| 上の2つ以外のシーケンスフロー. プロセスの通過についてなにも評価することなく単純に後続のフローオブジェクトに流す役割を果たす.

メッセージフロー
2つのもの（人、機関、部署など）の間で行われるメッセージの送受信を表す. プール内にあるフローオブジェクトまたはプール自体と接続する. 矢印の向きに沿ってメッセージが送られていることを示す. thumb|50px|

備考
BPMNでは、シーケンスフローまたはメッセージフローとして表された線について、「制御フロー（Control Flow）」という名称は使われない. シーケンスフロー（アクティビティの順序）やメッセージフロー（メッセージの到着）もアクティビティの開始を「コントロール」する以上、単に「フロー」という名称が使われる. これは「制御シーケンスフロー」との区別のためでもある.

関連記事

 * BPMN
 * アクティビティ
 * イベント
 * ゲートウェイ

参考文献

 * BPMN1.1仕様（2008-01-17）