- 設計
業務フロー図の書き方|記号一覧・スイムレーン例とMermaidテンプレート
業務フロー図は、「誰が(レーン)」「何を(作業)」「どの順で(矢印)」「何を使って(帳票・システム)」行うかを、1枚に並べた図です。 書くときは、①目的と範囲 → ②登場人物(レーン) → ③作業 → ④順番と分岐 → ⑤帳票・システム の順に決めます。
| 図に書くもの | 書き方 | 例(受注〜請求) |
|---|---|---|
| 誰が | レーン(横または縦の帯)を担当ごとに分ける | 顧客/営業/倉庫/経理/受注管理システム |
| 何を | 処理の四角に「〜を〜する」と動詞で書く | 受注を登録する、出荷する |
| どの順で | 矢印でつなぎ、分岐はひし形で問いの形にする | 在庫はあるか → ある/ない |
| 何を使って | 書類・データベースの記号を作業の横に置く | 注文書、受注DB、在庫DB |
| どこから・どこまで | 端子(角の丸い形)で始まりと終わりを1つずつ置く | 注文する → 入金を消し込む |
確認環境:この記事の Mermaid の図は、すべて Mermaid 12.1.0(@mermaid-js/mermaid-cli 12.0.0、Linux)で SVG に描画できることを確かめました。記号の名前は JIS X 0121:1986 と OMG の BPMN 2.0.2 で確かめています(確認日 2026年10月12日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「業務フロー図の書き方|記号一覧・スイムレーン例とMermaidテンプレート」
業務フロー図とほかの図の違い
業務フロー図は「人と組織の仕事の流れ」を描く図です。 システムの中の処理の順番を描くフローチャートや、データの流れだけを描く DFD とは、見るものが違います。システム開発では、要件定義の前半で「今の業務(As-Is)」と「システム導入後の業務(To-Be)」を描くのに使います。
| 図 | 主に見るもの | 担当(誰が)を描くか | 主な読者 |
|---|---|---|---|
| 業務フロー図 | 人・部署・システムの作業の順番 | 描く(レーン) | 利用部門、発注者、開発チーム |
| フローチャート | 1つの処理の中の手順・分岐・繰り返し | 描かないことが多い | 開発者 |
| DFD | データがどこから来て、どこへ行くか | 描かない(順番も描かない) | 開発チーム |
| アクティビティ図(UML) | 振る舞いの流れ(パーティションで担当も描ける) | 描ける | 開発チーム |
| BPMN | 業務プロセスを決まった記法で描く(実行エンジン向けにも使う) | 描く(プール・レーン) | 業務改善の担当、BPM ツールの利用者 |
1つの処理の中の分岐や繰り返しは、関連記事「フローチャートの書き方と記号一覧|分岐・繰り返しの例とMermaid」で扱っています。
記号一覧(JIS X 0121・BPMN・Mermaid の対応表)
業務フロー図の記号は、JIS X 0121(流れ図の記号)か BPMN(業務プロセスの記法)のどちらかに合わせると、読み手が迷いません。 どちらにも合わせない場合は、図の端に「凡例(記号の意味の一覧)」を置きます。
JIS X 0121:1986「情報処理用流れ図・プログラム網図・システム資源図記号」は、国際規格 ISO 5807 に対応する規格です。BPMN(Business Process Model and Notation)は OMG が定めた業務プロセスの記法で、2.0.2 版は 2014年1月の公開です。
| 意味 | JIS X 0121 の記号名 | BPMN 2.0.2 の要素 | Mermaid の書き方 |
|---|---|---|---|
| 始まり・終わり | 端子 | 開始イベント・終了イベント(丸) | A([注文する]) |
| 作業 | 処理 | タスク(角の丸い四角) | A[受注を登録する] |
| 人の手で行う作業 | 手作業 | 手動タスク(Manual Task) | A@{ shape: trap-t, label: "検品する" } |
| 分岐(条件) | 判断 | 排他ゲートウェイ(ひし形) | A{在庫はあるか} |
| 同時に進める・待ち合わせる | 並列処理 | 並列ゲートウェイ | A@{ shape: fork } |
| 帳票・書類 | 書類 | データオブジェクト | A@{ shape: doc, label: "注文書" } |
| システム・DB | 記憶データ | データストア | A[(受注DB)] |
| 別の図に分けた作業 | 定義済み処理 | サブプロセス | A[[与信審査]] |
| ページをまたぐ | 結合子 | リンクイベント | A((A)) |
| 作業の順番 | 線 | シーケンスフロー(実線の矢印) | A --> B |
| 組織の外とのやり取り | 通信 | メッセージフロー(破線の矢印) | A -.-> B |
| 担当ごとの帯 | (規定なし) | プール・レーン | subgraph 営業 ... end |
| 補足の説明 | 注釈 | テキスト注釈 | %% コメント(図には出ない) |
業務フロー図でよく使うのは、上の表の「端子・処理・判断・書類・記憶データ・線」とレーンです。 ほかの記号は、必要になったときに足します。記号を増やすほど、読み手が覚えることも増えます。
- Mermaid の
A@{ shape: ... }の書き方は、Mermaid のドキュメントでは v11.3.0 から使えると書かれています。表示するサイトやツールの Mermaid が v11.3.0 より前の版だと描画されないため、そのときはA[検品する(手作業)]のように、文字で補います。 - BPMN では、同じプール(組織)の中の順番はシーケンスフロー、プールをまたぐやり取り(顧客や取引先との注文・請求)はメッセージフローで描きます。
システム開発の例:受注から出荷・請求まで
例として、通販の受注から入金の消し込みまでを、5つのレーンで描きます。 「受注管理システム」もレーンの1つにして、どの作業でシステムを使うかを点線で示しています。
flowchart TB
subgraph C["顧客"]
c1([注文する])
c9[請求書を受け取る]
end
subgraph S["営業"]
s1[受注を登録する]
s2{在庫はあるか}
s3[納期を回答する]
end
subgraph W["倉庫"]
w1[ピッキング・梱包する]
w2[出荷する]
end
subgraph A["経理"]
a1[請求書を発行する]
a2([入金を消し込む])
end
subgraph SYS["受注管理システム"]
d1[(受注DB)]
d2[(在庫DB)]
end
c1 --> s1 --> s2
s2 -- ある --> w1 --> w2 --> a1 --> c9
s2 -- ない --> s3 --> c1
a1 --> a2
s1 -.-> d1
s2 -.-> d2
w2 -.-> d2
Mermaid にはスイムレーン専用の書き方がないため、subgraph(グループ)をレーンの代わりに使っています。 置き場所は自動で決まるので、レーンがきれいな帯に並ぶとは限りません。発注者に見せる清書は、draw.io などの作図ツールや BPMN のツールで描き、Mermaid は「設計書の中で、差分を Git で追える下書き」として使う、という分け方ができます。
同じ流れを表(業務記述書)にする
図だけでは、作業の中身(入力・出力・ルール)が書ききれません。 図の番号と対応させた表を一緒に作ると、要件定義書や画面設計書に引き継ぎやすくなります。
| No. | 担当 | 作業 | 使うもの(入力→出力) | ルール・例外 |
|---|---|---|---|---|
| 1 | 顧客 | 注文する | 注文フォーム → 注文データ | 1回の注文は最大 99 品目(例) |
| 2 | 営業 | 受注を登録する | 注文データ → 受注DB | 同じ注文番号は二重に登録しない |
| 3 | 営業 | 在庫はあるか判断する | 在庫DB | 在庫不足は No.4 へ |
| 4 | 営業 | 納期を回答する | 入荷予定 → 回答メール | 回答は受注の翌営業日まで(例) |
| 5 | 倉庫 | ピッキング・梱包する | 出荷指示書 | 品目ごとに数量を照合する |
| 6 | 倉庫 | 出荷する | 送り状 → 在庫DB(引当を出荷済みに) | 15時までの受注は当日出荷(例) |
| 7 | 経理 | 請求書を発行する | 出荷データ → 請求書 | 月末締め・翌月末払い(例) |
| 8 | 経理 | 入金を消し込む | 入金明細 → 売掛金 | 金額が合わないものは確認の一覧へ |
「(例)」と書いた数値は、説明のための架空のルールです。実際の値は、ヒアリングで決めて表に書き込みます。
例外の流れを別の図に分ける
キャンセル・返品・在庫不足のような例外を1枚に全部入れると、矢印が交差して読めなくなります。 正常の流れの図には分岐の入口だけを書き、例外は「定義済み処理(サブプロセス)」として別の図に分けます。
flowchart LR
s1[受注を登録する] --> s2{与信は通るか}
s2 -- 通る --> s3[在庫を引き当てる]
s2 -- 通らない --> x1[[与信NGの対応<br>(別図 F-02)]]
s3 --> s4{全数あるか}
s4 -- ある --> s5[出荷を指示する]
s4 -- 一部ない --> x2[[分納の対応<br>(別図 F-03)]]
業務フロー図を書く手順
いきなり図を描き始めず、先に「範囲・登場人物・作業」を文字で書き出します。 文字の段階で抜けを見つけたほうが、図を描き直す手間が減ります。
| 手順 | やること | 決めておくこと |
|---|---|---|
| ① 目的と範囲 | 何のために描くかと、始まり・終わりを決める | 始まりのきっかけ(注文が届く)と終わり(入金を消し込む) |
| ② 登場人物 | 関わる人・部署・外部・システムを洗い出す | レーンの並び順(流れの順に上から、または左から) |
| ③ 作業の洗い出し | 「〜を〜する」の形で作業を並べる | 1つの作業=1人が続けて行う1回分 |
| ④ 順番と分岐 | 時系列に並べ、分岐を問いの形にする | 分岐の出口すべてにラベル(ある/ない) |
| ⑤ 帳票・システム | 各作業で使う書類・画面・DB を置く | 帳票名・画面名は設計書と同じ名前にする |
| ⑥ 確かめる | 担当者に図を見せ、例外と抜けを聞く | 「この作業の前に何を受け取りますか」と1つずつ聞く |
③の作業は、付箋や表で先に並べると速く進みます。 作業の名前は「受注」ではなく「受注を登録する」のように、目的語と動詞で書きます。名詞だけだと、誰が何をするのかが読み手によって変わります。
ヒアリングで聞く項目は、関連記事「要件ヒアリングの質問一覧60項目|シートのテンプレートと記入例」で扱っています。
粒度の決め方
粒度(1つの作業の大きさ)は、図ごとに1つの段階にそろえます。 同じ図の中に「受注業務」と「数量を入力する」が並ぶと、どこまで細かく見ればよいか分からなくなります。
| 段階 | 1つの四角の大きさ | 例 | 向く場面 |
|---|---|---|---|
| レベル0(業務の全体) | 業務のまとまり | 受注 → 出荷 → 請求 → 入金 | 経営層・発注者への説明、範囲の合意 |
| レベル1(業務) | 担当者が行う1回分の作業 | 受注を登録する、在庫を引き当てる | 要件定義の業務フロー(この記事の例) |
| レベル2(作業の手順) | 画面の操作・確認の1手順 | 得意先を検索する、数量を入力する | 操作マニュアル、画面設計 |
粒度をそろえる目安として、次の3つを確かめます。
- 担当が変わるところで四角を分ける(同じ担当が続けて行う作業は、1つにまとめられないかを考える)
- 画面・帳票が変わるところで四角を分ける(1つの四角に2つの画面が入っていたら分ける)
- 1枚に収まらないときは、細かくするのではなく図を分ける(レベル0の1つの四角を、レベル1の別の図にする)
レベル0の四角を作業に分けていく考え方は、WBS の分解と同じです。関連記事「WBSの作り方|システム開発の実例表と分解を止める判断基準」で扱っています。
よくある誤りのチェックリスト
描き終えたら、次の表で見直します。 上の行ほど、読み手が誤解しやすい誤りです。
| 確かめること | 誤りの例 | 起きること | 直し方 |
|---|---|---|---|
| 分岐の出口すべてにラベルがあるか | ひし形から矢印が2本出ているがラベルがない | どちらが「はい」か分からない | 「ある/ない」「通る/通らない」と書く |
| 行き止まりがないか | 「納期を回答する」の後に矢印がない | その後の業務が抜けている | 終わりの端子か、次の作業につなぐ |
| 作業が動詞で書かれているか | 「在庫」「請求」とだけ書いてある | 何をするのかが読み手で変わる | 「在庫を引き当てる」と目的語と動詞で書く |
| 1つの四角に担当が1人か | 「営業・倉庫で確認」 | 責任の所在が分からない | 担当ごとに四角を分け、レーンに置く |
| 粒度がそろっているか | 「受注業務」と「数量を入力する」が並ぶ | 細かさが場所によって違う | レベルを決め、細かい部分は別図にする |
| 例外の入口があるか | 在庫不足・キャンセルの分岐がない | 要件の漏れになる | 分岐を描き、中身は別図に分ける |
| 帳票・システムの名前がそろっているか | 「注文書」と「受注票」が同じものを指す | 設計書との対応が取れない | 用語集を作り、名前を1つにする |
| 矢印が逆流・交差していないか | 下から上へ戻る線が多い | 流れを追いにくい | レーンの並び順を流れの順に入れ替える |
| 始まりと終わりがはっきりしているか | 端子がない、または複数ある | 範囲の合意が取れない | 始まりのきっかけと終わりの状態を書く |
DFD・アクティビティ図・As-Is/To-Be との使い分け
「何を決めたいか」で図を選びます。 1つの図ですべてを表そうとすると、どの図も中途半端になります。
| 決めたいこと | 向く図 | 理由 |
|---|---|---|
| 誰がどの順で作業するか | 業務フロー図 | 担当(レーン)と順番を同時に見られる |
| どのデータがどこから来てどこへ行くか | DFD | データの出入りだけに絞って描ける |
| システムの振る舞いの流れ(並行処理を含む) | アクティビティ図 | UML の記法で、設計書のほかの図とそろう |
| 今の業務と導入後の業務の差 | 業務フロー図を2枚(As-Is・To-Be) | 同じ記号で並べると、変わる作業が見える |
| 夜間処理などのジョブの順番 | ジョブフロー図 | ジョブの先行関係を描く |
DFD は関連記事「DFD(データフロー図)の書き方と記号|コンテキスト図・レベル0の例」で、アクティビティ図は「アクティビティ図の書き方と記号一覧 スイムレーン例をPlantUMLで」で、ジョブフロー図は「ジョブフロー図の書き方|ジョブ一覧と先行関係をMermaidで描く例」で扱っています。As-Is と To-Be を比べて課題を整理する手順は、関連記事「As-Is/To-Be分析のやり方|業務フローと課題整理テンプレート」で扱っています。
コピペ用の Mermaid テンプレート
レーンの名前と作業を書き換えると、そのまま使えます。 subgraph の ID(L1 など)は英数字にし、表示名は ["..."] の中に書きます。
flowchart TB
%% ===== レーン(担当)=====
subgraph L1["顧客"]
start([開始のきっかけ])
end
subgraph L2["担当部署A"]
t1[作業1を行う]
q1{条件を満たすか}
t2[作業2を行う]
end
subgraph L3["担当部署B"]
t3[作業3を行う]
goal([終わりの状態])
end
subgraph L4["システム"]
db[(データベース)]
end
%% ===== 流れ =====
start --> t1 --> q1
q1 -- はい --> t3 --> goal
q1 -- いいえ --> t2 --> t1
%% ===== システムの利用(点線)=====
t1 -.-> db
t3 -.-> db
Mermaid は、設計書を Markdown で書いている場合に、図とテキストを同じファイルで管理できるのが利点です。生成AIに業務フローの下書きを Mermaid で出させる方法は、関連記事「生成AIで設計書を作るプロンプト集|要件定義から詳細設計まで」で扱っています。
よくある質問
Q. 業務フロー図は、どの工程で誰が書きますか。 A. 多くは要件定義の前半で、発注者側の業務担当と、開発側の要件定義の担当が一緒に書きます。今の業務(As-Is)は業務担当への聞き取りから、導入後の業務(To-Be)は要件を決めながら書きます。要件定義書との関係は、関連記事「要件定義書の書き方|記入例と要件ID・受け入れ基準」で扱っています。
Q. レーンは縦と横のどちらにしますか。 A. どちらでも描けます。横に長い流れ(時間が左から右)ならレーンは横の帯、A4 縦の資料に収めるならレーンは縦の帯にすることが多いです。1つのプロジェクトの中では、向きをそろえます。
Q. BPMN で書くほうがよいですか。 A. BPMN は記号の意味が決まっているので、読み手が BPMN を知っていれば誤解が減ります。一方で、記号が多く、知らない人には読みにくいこともあります。発注者の業務担当が読む図なら、この記事の表の基本の記号だけに絞り、凡例を付ける方法もあります。
Q. システムの画面操作まで書くべきですか。 A. 業務フロー図(レベル1)には「受注を登録する」までを書き、画面の操作の順番は画面設計書や画面遷移図に書くと、図の粒度がそろいます。画面の項目は、関連記事「画面設計書の書き方|項目一覧・テンプレート・記入例まとめ」で扱っています。
まとめ
- 業務フロー図は 「誰が・何を・どの順で・何を使って」 を1枚に並べた図
- 記号は JIS X 0121 か BPMN に合わせるか、凡例を付ける。よく使うのは 端子・処理・判断・書類・記憶データ・線とレーン
- 書く順番は 範囲 → 登場人物 → 作業 → 順番と分岐 → 帳票・システム → 確かめる
- 粒度は 図ごとに1つの段階にそろえ、収まらないときは 図を分ける
- Mermaid では
subgraphをレーンにして描ける。A@{ shape: doc }などは v11.3.0 以降の書き方
参考・出典
確認日はいずれも 2026年10月12日です。
- JIS X 0121:1986 情報処理用流れ図・プログラム網図・システム資源図記号(本文の記号名):https://kikakurui.com/x0/X0121-1986-01.html
- OMG「Business Process Model and Notation(BPMN)Version 2.0.2」:https://www.omg.org/spec/BPMN/2.0.2/About-BPMN
- Camunda「BPMN 2.0 Symbols - A complete guide with examples」:https://camunda.com/bpmn/reference/
- Mermaid「Flowcharts - Basic Syntax」(Expanded Node Shapes・subgraph):https://mermaid.js.org/syntax/flowchart.html
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「業務フロー図の書き方|記号一覧・スイムレーン例とMermaidテンプレート」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。