BUSINESS PROCESS × UML MODELING
UMLアクティビティ図の読み方・描き方|分岐・並行処理・同期を業務フローで理解する
「審査が通ったら契約登録と通知準備を同時に進め、両方終わってから利用開始する」。こうした実務の処理順・条件分岐・並行作業・同期を、関係者が同じ意味で読める図にする方法を解説します。
01業務フローで図が必要な理由
担当者から「申込み後に審査して、承認されたらアカウントを作る」と聞いても、通知は審査前後のどこで実行するのか、差戻しは誰が行うのか、失敗したときにやり直すのか、という疑問は残ります。文章だけでは処理順や並列関係が曖昧になりやすいため、処理の流れを合意する視覚的なモデルが役立ちます。
アクティビティ図は、画面遷移だけでなく、人による承認、バッチ処理、API呼び出し、通知、外部委託の作業まで、業務のまとまりをアクションとして表せます。
02UMLアクティビティ図の役割
UML(Unified Modeling Language)はシステムの構造や振る舞いを表す標準的なモデリング言語です。その中のアクティビティ図は、アクション同士の制御・データの流れを表現します。とくに処理順、分岐、並行実行と待ち合わせに向いています。
03主要記法を図で確認
| 記号 | 意味 | 例 |
|---|---|---|
| ● 初期ノード | 制御の開始点 | 申込みの受付開始 |
| 角丸長方形(アクション) | 実行する処理 | 契約情報の保存 |
| ひし形(判断) | ガード条件を評価し経路を選ぶ | [承認] と [差戻し] |
| ひし形(マージ) | 別経路から来た制御を合流させる | 現金/カード決済後の共通処理 |
| 太い棒(フォーク) | 処理を複数経路へ並列分岐 | 書類準備と通知準備 |
| 太い棒(ジョイン) | 並行経路の制御を同期 | 両方完了後に有効化 |
| 二重丸(活動終端) | 活動全体を終了 | 申込み処理が完了 |
判断・マージは同じひし形、フォーク・ジョインは同じ太い棒を使います。入力矢印と出力矢印の数、前後の文脈で働きを読み分けます。
04SaaS申込み業務の具体例
例として、自社SaaSの法人申込みを考えます。申込みを受け付け、不備があれば差戻し、不備がなければ審査を承認します。承認後は契約登録と通知の準備を並行実行し、両方終えてから利用開始します。
この図ではアクションを技術処理だけに限定しません。現場が行う「審査を承認」も、システムが行う「契約を登録」も同じフロー上で扱えます。実際の要件定義では、失敗時の連絡先・期限・再試行方針を追加します。
05判断とマージの区別
判断(Decision)は1つの流れを条件で振り分けます。出力側の矢印に[審査OK]と[差戻し]のようなガード条件を記載します。条件が互いに排他的で、想定する入力を網羅しているか確認しましょう。
マージ(Merge)は分岐した経路がその後同じ処理を行う場合の合流です。一般に、フォークした並列作業がすべて終わるのを待つためのものではありません。ここを取り違えると、未完了の処理を残したまま次工程に進む図になります。
06フォークとジョインの区別
フォーク(Fork)は1本の制御を複数の並列経路へ分けます。ジョイン(Join)は並列経路の完了を同期して次へ進めます。例えば契約の記録と請求先の確認を同時に進めても、初回請求を確定するには両方の結果が必要です。
| 構造 | 次に進む条件 | よくある誤り |
|---|---|---|
| 判断 → マージ | 選ばれた経路の結果が到着する | マージが全経路の完了を待つと思う |
| フォーク → ジョイン | 必要な入力経路からトークンがそろう | 一方だけ終われば通過すると思う |
| 条件付き並列 | 並列の有効化条件・合流条件を個別に設計 | 条件分岐とフォークを不用意に混ぜる |
07トークンと同期の考え方
UMLアクティビティの意味を理解するときは、処理の実行可能性を伝えるトークンをイメージすると分かりやすくなります。初期ノードから制御トークンが流れ、アクションが実行されると次のノードへ進みます。フォークは複数の経路に制御を供給し、ジョインは必要な入力を待ち合わせます。
ジョインの具体的な可否はUMLの規則やジョイン仕様に従います。本記事とラボでは、標準的な「2つの作業が両方完了したら次へ進む」場面に絞って説明します。
08スイムレーンと責任分担
スイムレーン(Activity Partition)を設けると、営業・審査担当・システム・経理のどこが実行する処理か整理できます。業務要件定義では、業務手順と責任の所在を同時に確認できる点が利点です。
| 担当 | アクション | 確認事項 |
|---|---|---|
| 営業 | 申込み情報を確認 | 顧客への確認期限は? |
| 審査部門 | 与信・契約条件を判断 | 誰が承認権限を持つ? |
| システム | 契約を登録・通知生成 | 失敗時はどうリトライする? |
| 顧客 | 内容を確認・再提出 | 期限超過時はどう扱う? |
レーンは責任の議論に役立ちますが、それだけで権限設計やRACIが完成するわけではありません。認可、承認履歴、例外時の責任まで別途定義します。
09例外・差戻し・ループ
実務では正常系だけの図は十分ではありません。入力不備・審査否決・外部API停止・承認期限切れ・処理中の取消しなどを洗い出し、各例外がどこへ戻るか、誰に通知されるか、二重処理が起きないかを検討します。
例えば通知が失敗しても契約登録を取り消す必要がない業務なら、同期条件を見直すことがあります。反対に、必要書類が未完成のまま利用開始できない業務なら、完了確認を必須にします。図の形より先に、業務ルールを明確にすることが大切です。
10業務要件定義での描き方
初めに現場から開始条件・完了条件・登場人物・入力/出力を聞き取ります。次に正常系だけを描き、分岐条件や並行できる処理を足し、最後に例外と責任分担を確認します。業務担当には図を使って「この順番で困らないか」と聞き、開発担当には「実装可能な境界か」と確認します。
| 段階 | 成果物 | 合意したいこと |
|---|---|---|
| 現状把握(As-Is) | 現行のアクティビティ図 | 待ち時間・手戻り・二重入力 |
| 改善案(To-Be) | 新しいアクティビティ図 | 廃止・自動化・並行化する工程 |
| 要求事項への落とし込み | 業務ルール・機能要件・例外一覧 | 何をどこまで実装・検証するか |
| 受入テスト | 経路別テストケース | 承認・差戻し・障害時の期待結果 |
11アクティビティ図と他のUML図
| 図の種類 | 主に表現するもの | 適した問い |
|---|---|---|
| アクティビティ図 | 処理フロー・分岐・並行・同期 | 業務はどんな順番で進む? |
| クラス図 | クラスの属性・操作・関連などの構造 | 会員と契約はどう関係する? |
| 状態マシン図 | 特定の対象の状態と遷移 | 注文はいつ確定・取消状態になる? |
| ユースケース図 | アクターとシステムが提供する機能 | 誰が何をできる必要がある? |
12BPMN・一般的なフローチャート
一般的なフローチャートは順序と分岐をシンプルに伝えられる一方、描き手によって並列処理の意味が曖昧になることがあります。UMLアクティビティ図は、並列処理・同期などの意味を共通記法で表現できるのが強みです。
BPMNは業務プロセス向けに、イベント、タスク、ゲートウェイ、メッセージフローなどを詳細に表現する記法です。業務プロセスを部門・組織間で標準的にモデル化したい場合はBPMN、ソフトウェア設計と整合した制御フローを描きたい場合はUMLアクティビティ図が使いやすいことがあります。どちらが常に優れているという関係ではありません。
13曖昧な図を避けるレビュー
レビュー時は、すべての分岐に条件があるか、並列化したタスクの終了待ちを表せているか、ループの脱出条件があるか、取消し・例外時の出口があるかを確認します。また「確認する」という一語だけで、何を検証し、誰が責任を負うか不明になっていないかも重要です。
図の矢印は、時間経過の長短やデータ整合性まで保証しません。必要なら待機時間、タイムアウト、ログ記録、権限などを補足文書に分けて定義します。
14性能・運用要件への展開
業務フローができたら、処理時間と待ち時間、外部API依存、ピーク時の同時申込み、データ保持期間、監査証跡などを洗い出せます。例えば契約登録と通知準備を並行化すると時間を短縮できる可能性がありますが、片方の失敗が後続に及ぼす影響も考える必要があります。
実装ではジョブキュー、非同期イベント、ワークフローエンジンなどを採用する場合があります。ただしアクティビティ図は要求される振る舞いを表すモデルであり、特定の実装技術を自動的に決めるものではありません。
15操作ラボ
INTERACTIVE LAB 01
申込み業務のトークンを進める
承認・差戻しを切り替え、アクティビティ図の制御フローを再生します。並列作業は両方完了しないとジョインに進めません。
- 1. 受付
- 2. 検証
- 3. 分岐
- 4. フォーク
- 5. 契約 / 通知
- 6. ジョイン
- 7. 完了
現在のノード
申込み受付
処理順に沿って進みます。
教育用の簡略化モデルです。厳密なUMLトークン意味論、割込み領域、オブジェクトフロー等の全仕様を実装したものではありません。
INTERACTIVE LAB 02
目的に合うUML図を選ぶ
ケース 1 / 4
複数の担当者が行う承認・登録・通知の流れを描きたい
まず承認経路で並列作業を片方しか終わらせない状態を試し、なぜ同期できないか確認してください。次に差戻し経路で、並列処理自体が実行されないことを確かめます。2つ目のラボでは、目的から適したUML図を判断します。
16現場導入の進め方
小規模SaaS企業でも、申込み審査・課金・解約・障害報告など、部門をまたぐ重要フローから描くのが実用的です。大規模な設計書を最初から作らず、問題が起きやすい1つの業務を題材に、担当者と30分程度で現状を確認し、次の改善案を合意する使い方から始められます。
変更後も図を放置せず、実装された処理・運用手順・テストケースと一致するように保守します。開発と業務の共通言語として機能させることが最も重要です。
17要点の整理
アクティビティ図は、「何を、どの順番で、どの条件で、並行して行うか」を可視化します。判断とマージ、フォークとジョインを使い分け、業務フローの漏れや思い込みを発見できます。
クラス図は構造、状態マシン図は状態遷移、ユースケース図はユーザーから見た機能を中心に扱います。目的に合った図を選び、必要に応じて組み合わせることで、業務担当と開発担当の認識差を減らせます。