現場の困りごとから、47ユースケース・57エンティティへ。
「配車計画が特定の担当者の手作業に依存している」「市販の配送管理ソフトでは、自社の荷物のまとめ方に対応できない」「担当者が替わっても同じ品質で配車を組めるようにしたい」という現場の課題でした。これを業務要件に展開し、単一の真実源(SSoT)から、アクティビティ図24・ユースケース47・クラス図(9パッケージ)・状態遷移図12・シーケンス図47を生成しました。パッケージは5つのマイクロサービス(受注・配車・運行・収支・マスタ)に対応しています。モデル検証は エラー0(品質スコア97.7)です。
各パッケージの詳細なクラス図です。クリックすると原寸で開きます(数字はエンティティ数)。
本ページは、業務要件からのモデル駆動開発の概要と、生成したアプリケーションの操作マニュアルをまとめたものです。画面名・ボタン名は実装に準拠しています。画面ショットはすべて「テストラン」で作成した架空のデータです(社名・人名・住所・車番・金額は実在しません)。
- 対象システム: 荷物集約に対応する輸配送管理システム(自社トラックによる特定顧客への配送)
- 構成: フロントエンド(React + TypeScript + Tailwind)+ API Gateway と5つのマイクロサービス(Express REST API)
- 設計トレース: 業務要件 → 業務シナリオ → アクティビティ図 / ユースケース図 / クラス図 / 状態遷移図 / シーケンス図 → 実装
01要件からの生成
入力は、配車をまだシステムで管理していない運送事業者からの短い要望です。荷物をまとめて積載効率を高め、乗務員の労働時間に配慮しながら、配車を担う管理者の負担を軽くできる輸配送管理システムが求められました。
・受注から出荷までを扱える
・行き先が近い荷物をまとめ、車格に合わせて自動で車両に割り付け、積載効率を高められる(会社ごとの配車の決まりを柔軟に設定できること)
・配送経路・運行時間・積載率を自動で算出できる
・乗務員の労働時間の上限を自動で確認し、2024年問題に備えられる
・担当者の経験に頼らず、引き継いだ人でも迷わず配車を組める
・点呼との連携、CO2 排出量の算出と集計、日報・集計など事務作業の省力化
これを「受注・マスタとルール・配車・運行と労務・環境と集計・収支と会計・統制」の業務要件に展開し、SSoT に落としてから uml-workflow-v3 のステップで設計・実装までを生成しました。設計の過程で、受注は本システムで直接入力し、受注とマスタの正とする方針に整理しています(BR-001)。売上・請求額を照合する「並行稼働の照合」機能も備えています。
| 成果物 | 数量 |
|---|---|
| ユースケース | 47 |
| エンティティ(全データの一覧・詳細画面) | 57 |
| 状態遷移図 | 12 |
| ビジネスルール | 67 |
| アクティビティ図 / シーケンス図 | 24 / 47 |
| 帳票(PDF・Excel・CSV) | 14種類 |
| サービス | API Gateway+5サービス |
1.1 マイクロサービス構成
| プロセス | ポート | 担当 |
|---|---|---|
| API Gateway | 4000 | 画面からの要求を各サービスへ中継、サービス間のイベント配信、テストラン |
| order-service | 4101 | 受注・荷物 |
| dispatch-service | 4102 | 自動配車・運行・制約チェック・配車ルール |
| operation-service | 4103 | 点呼・運行イベント・日報・労働時間・CO2 |
| finance-service | 4104 | 売上・請求・入金・経費・仕訳・会計期間 |
| master-service | 4105 | マスタ・利用者・設定変更の承認・監査ログ |
02はじめに
最大の特徴は、方面・積載・混載可否・配送先の受入条件・乗務員の労働時間に加え、配車担当者の経験(「この配送先は構内が狭い」「この車両はこの乗務員が慣れている」など)を目的付きの配車ルールとして登録し、荷物を自動で集約して配車することです。
| 区分 | 主な機能 |
|---|---|
| 受注 | 受注入力(入力中チェック・前回コピー・繰り返し受注)、受注の変更・キャンセル、受注台帳 |
| 配車 | 自動配車(3つの方針で配車案を作成)、配車案の比較・採用、計画ボードでの手修正、制約チェック、確定・運行指示、当日変更 |
| 配車ルール | 目的付きのルール登録、過去データでの試行、管理職の承認、手修正の繰り返しからのルール候補 |
| 運行 | 点呼(アルコール検知)、運行状況とアラート、乗務員アプリでの打刻、運転日報の承認、配送集計 |
| 労務・環境 | 拘束時間の見込み(2024年問題)、所要時間の標準値の見直し、CO2排出量と集約による削減量 |
| 収支・会計 | 売上確定(運賃表・附帯料金・混載の按分)、請求の締め・発行・送付、入金消込、督促、赤黒訂正、経費、仕訳帳・試算表、月次締め |
| 帳票 | 運行指示書・配車表・運転日報・請求書など14種類を PDF・Excel・CSV で出力。様式はテンプレートとして設定で変更(承認制) |
| ロール | 主な担当 |
|---|---|
| 運行管理者 | 配車の確定、点呼、運行管理、日報の承認、配車ルールの登録・申請 |
| 受注担当者 | 受注の入力・変更・キャンセル |
| 配車補助者 | 自動配車の実行と配車案の作成・照会(確定はできない) |
| 経理担当者 | 売上確定、請求、入金消込、経費、仕訳、月次締め |
| 管理職 | 設定変更(配車ルール・運賃表など)の承認 |
| システム管理者 | マスタ・利用者の管理 |
| 乗務員 | 自分の運行の確認・打刻・日報の確認(スマートフォン) |
03起動と画面構成
# ① バックエンド(API Gateway ポート 4000 + マイクロサービス 4101〜4105)
cd app/server
npm install # 初回のみ
npm run dev
# ② フロントエンド(画面 / ポート 5173)
cd app/frontend
npm install # 初回のみ
npm run dev
ブラウザで http://localhost:5173/ を開きます。バックエンドの起動後、テストランのデータ準備(過去2週間分の業務の再現)が自動で行われます(約10秒)。
- サイドバー — 業務(受注・配車・配車ルール・運行・労務・CO2)/収支・会計/帳票/その他(乗務員画面・テストラン)/データ:○○ のグループで並びます。業務画面のタブは URL と連動します。
- 操作者の切り替え — 画面右上の「操作者」で利用者を選びます。ロールによって実行できる操作と金額の表示が変わり、すべての登録・変更は操作者の名前で監査ログに記録されます。
- 共通の表示 — 業務ルールに反する操作は、理由と業務ルール番号(例:
BR-029)を表示して拒否します。参照先は ID ではなく識別名で表示し、クリックで詳細へ移動できます。
04ダッシュボード
当日の運行状況と、配車・労務・収支の要点をひと目で確認します。本日の運行、配車待ちの荷物、平均積載率、承認待ち、アラート(到着遅れ・帰庫の予定超過・点呼の不合格)、直近7日の運行実績、配送先の待機時間、労働時間の上限に近い乗務員、CO2排出量、収支(金額を参照できるロールのみ)を表示します。
05受注
5.1 受注入力(UC-001 / UC-002)
- 得意先を選ぶと、その得意先の配送先だけが選択肢に表示されます(BR-002)。
- 出荷元・受付方法・出荷日・納品指定時刻を入力します。
- 受注明細で製品と数量を入力すると、荷姿と重量が自動で計算されます(BR-007)。
- 入力中に自動でチェックが行われます。✕(赤)エラーは登録不可、!(黄)注意(1台に積み切れない重量、配送先にタンク受入設備がない など)は確認すれば登録できます。
- 「登録して確定」で受注が確定し、荷物(配車単位)が「配車待ち」になります。
「前回の受注をコピー」や、期間を指定して該当曜日の受注をまとめて作る「繰り返し受注」で、少ない操作で入力できます(配送先の休業日と重複は作成しません)。
5.2 受注の変更・キャンセルと受注台帳(UC-003 / UC-004)
変更・キャンセルは理由が必須で、配車済の荷物に影響がある場合は影響を受ける荷物が表示され、運行管理者に当日変更として通知されます(BR-005)。受注台帳では受注数量・納品済数量・受注残を確認できます。
06自動配車・計画ボード
6.1 自動配車と配車案の比較(UC-005 / UC-006)
- 配車日と配車方針(台数優先/走行距離優先/乗務員負荷平準化優先)を選び、「自動配車を実行」を押します。
- 配車待ちの荷物を、方面・積載(重量・容積・床面・タンク槽)・混載可否・配送先の受入条件・乗務員の労働時間・配車ルールを守って車両に集約し、3つの配車案を作成します。
- 案ごとの台数・便数・平均積載率・走行距離・空車回送・運行時間・違反・注意・CO2見込み・評価点を比べ、「この案を採用」で仮配車にします。評価点が最も小さい案に「おすすめ」が付きます。
割り当てられなかった荷物には、荷物ごとに理由(例: 「乗務員の拘束時間の上限内で2便目を組めません(BR-033)」)が表示されます。
6.2 計画ボード(UC-007)
車両 × 便の形で運行を表示します。各便のカードに方面・出庫〜帰庫の時刻・乗務員・配送先数・重量・走行距離・積載率のバー・状態を表示し、違反のある便は赤、理由未入力の注意がある便は黄色になります。
6.3 運行の詳細と制約チェック(UC-007 / UC-009)
| 区画 | 内容 |
|---|---|
| 上部の指標 | 出庫〜帰庫、走行距離・空車回送、積載率(重量・容積・床面・タンク)、拘束時間・運転・休憩、違反・注意の件数 |
| この組み合わせにした理由 | 自動配車の根拠(集約した方面、車種を選んだ理由、配送順、適用した配車ルール) |
| 制約チェック結果 | 判定(違反/注意)・区分・内容。注意は「確定する理由」を入力して記録 |
| 配送順・積付 | 積込 → 荷卸 → 帰庫の順と予定時刻、積込順と位置(パレット枚目)/タンク槽。積込順は荷卸の逆順 |
| 手修正 | 修正理由(必須)を入力し、車両・乗務員の変更、荷物の移動、便の固定 |
6.4 確定・運行指示と当日変更(UC-010 / UC-011 / UC-020)
「仮配車を確定」で、その日の仮配車がすべて確定し、乗務員へ運行指示が送られます。配車補助者は確定できません(BR-047)。確定後に乗務前点呼でアルコールを検知した場合などは、理由を入力して乗務員を差し替えます。
「当日変更」タブでは、車両故障・乗務員の欠勤・追加出荷・キャンセルを登録すると影響を受ける運行が表示され、「影響範囲だけ再配車」で、固定した運行と影響のない運行はそのままにして組み直します(BR-030, BR-031)。
07配車ルールと設定変更の承認
配車ルールは「条件」「効果」「目的」「登録者」「適用期間」「優先順位」を持つ設定です。プログラムを変更せずに、自社固有の配車の決まりを追加・改定できます(BR-021)。
| 区分 | 意味 |
|---|---|
| 必須(違反) | 守らない運行は確定できない(例: 狭小構内の配送先に大型車を入れない) |
| 推奨(注意) | 守らない場合は注意となり、理由を入力すれば確定できる(例: 山田さんは1号車を優先) |
| 集約方針 | 集約の考え方(例: 同一配送先の荷物は分割しない、端数は隣接方面と組む) |
7.1 新しいルールの登録(UC-012)
ルールの種類(配送先に大型車を入れない/2つの製品を同じ便にしない/前荷の後に洗浄なしで積まない/配送先に指定時刻までに届ける/1便あたりの配送先数の上限 など)と対象を選び、ルール名と目的(なぜ必要か)を入力します。目的のないルールは登録できません(BR-022)。
7.2 試行・申請・承認(UC-013 / UC-014)
ルールは 下書き → 試行 → 申請 → 承認 → 適用中 の順で有効になります(BR-023, BR-045)。「試行」では過去の出荷データでルールあり/なしの配車を比べ、台数・積載率・該当件数の増減を表示します。承認・却下は管理職のみが行え、申請者本人は承認できません。
7.3 ルール候補(手修正の繰り返しから / UC-015)
計画ボードで同じ直し方の手修正が3回以上あったパターンを表示します。目的を入力して「採用」すると、条件を推定した下書きのルールが作成されます。配車担当者の暗黙知を、本人が意識しなくてもルールとして蓄積できます。
08当日運行・点呼・日報
8.1 点呼(UC-016)
乗務員・点呼の種類・方法(対面/IT点呼/自動点呼)・アルコール検知値・健康状態・伝達した指示事項を記録します。アルコール検知値が 0.00 以外、または健康状態が不良の場合は不合格となり、その乗務員の運行は乗務員を差し替えるまで出庫できません(BR-037)。
8.2 運行状況(UC-017)
便ごとの状態、乗務前点呼の結果、配送の進捗、次の配送先と予定時刻、遅れ(15分超は赤字)、待機時間を確認し、遅延・予定超過・点呼不合格などのアラートを表示します。
8.3 運転日報の承認と配送集計(UC-018 / UC-026)
運転日報はデジタコと乗務員アプリの打刻から自動で作成されます。乗務員が確認・提出した日報を運行管理者が承認すると、運行実績・労働時間・CO2・売上候補に反映されます(BR-052)。承認済の日報は上書きせず、訂正は履歴として追加します(BR-040)。
09乗務員画面(スマートフォン)
当日の運行と配送順・積付(積込順・危険物等の表示)を確認し、「運行指示を確認した」で既読を記録します。大きな青いボタンで、次の打刻(出庫 → 積込 → 配送先ごとの到着・荷卸 → 帰庫)をボタン1つで記録し、帰庫後は日報の下書きに給油量と異常・特記事項を入力して提出します。
10労務管理(2024年問題 / UC-022〜025, 027)
乗務員ごとに、実績、見込み(実績 + 確定済みの配車予定)、月の上限、上限に対する割合(80%以上は黄、90%以上は赤)、残り、本日の拘束時間と1日の上限を表示します。1日の拘束時間が上限の90%に達する配車は「注意」、上限を超える配車は「違反」として確定できません(BR-033)。労働時間は「始業から24時間」・2日平均・2週平均など、告示の計算単位で計算します(BR-034)。
「所要時間の標準値の見直し」では、実績と標準値の差が大きい配送先の荷卸・待機時間を提示し、更新すると次回の自動配車から時刻と労働時間の見込みに反映されます。
11CO2排出量(UC-028〜030)
対象月の排出量、運行1分あたりの排出量、推計値の割合(給油実績のない運行は燃費法で推計)と、集約による削減量(荷物を配送先ごとに個別に運んだ場合との走行距離の差から算定)を表示します。車両別・方面別・製品別・配送先別・日別に集計し、荷主別の CO2 排出量報告を PDF/Excel/CSV で出力できます。
12売上・請求・入金(UC-031〜036)
12.1 売上確定
日報が承認されて実績が確定した運行について、運賃表・附帯料金規則から売上候補が自動で計算されます(BR-052)。「内訳」で、適用した運賃表、運行1便の運賃、混載便の按分(重量比)、附帯料金(待機料・燃料サーチャージ など)を確認して確定すると、売上仕訳が計上されます。
12.2 請求の締め・発行・入金
- 締め前チェックで、未確定の売上・売上のない運行・請求先未設定の得意先を確認し(BR-056)、「締める」で請求先ごとの請求を作成します。
- 請求書(発行者の登録番号・税区分別の消費税を記載)を確認し、「発行」→「送付」します。締め済の請求の誤りは赤黒訂正で直します(BR-059)。
- 入金の消込では、入金額と振込手数料の合計に一致する請求を支払期日の古い順に候補表示し、入金仕訳と支払手数料の仕訳を計上します。期日を過ぎた請求は「売掛金・督促」で管理します。
13経費・仕訳・月次締め(UC-037〜041)
売上・請求・入金・経費の仕訳は、業務操作から自動で計上されます(手入力は訂正仕訳のみ)。
| タブ | 内容 |
|---|---|
| 経費の入力 | 乗務員が日報に入力した給油量 × 単価から作成した燃料費の下書きを計上 |
| 仕訳帳 | 帳票のほか、会計ソフトに取り込める形式の CSV を出力 |
| 試算表・月次締め | 勘定科目別の借方・貸方・残高と貸借一致の確認、会計期間の締め |
| 訂正仕訳 | 逆仕訳と正しい仕訳で訂正。貸借が一致しない仕訳は登録できない(BR-063) |
| 並行稼働の照合 | 同じ月の売上・請求額を、移行前のシステムと比較 |
14帳票(テンプレート方式・PDF/Excel/CSV)
帳票はテンプレート方式で、様式(タイトル・見出し項目・明細の列・合計・押印欄・注記・用紙の向き)を設定で変更できます。14種類すべてを PDF・Excel・CSV で出力できます。
| 分類 | 帳票 |
|---|---|
| 配車・運行 | 配車表 / 運行指示書 / 積付計画 / 運転日報 |
| 労務・安全 | 労働時間集計表 / 点呼記録簿 |
| 集計・環境・受注 | 配送集計 / CO2排出量報告 / 受注台帳 |
| 収支・会計(金額) | 請求書・請求明細 / 売掛金一覧 / 仕訳帳 / 総勘定元帳 / 試算表 |
PDF は日本語フォントを埋め込んだ A4 で、明細が複数ページになるときは見出し行を繰り返します。Excel は数値・日付をセルの値として出力し、CSV は Excel で開いても文字化けしない UTF-8(BOM 付き)です。
14.1 様式の改訂と承認
様式は適用中の版を直接書き換えず、改訂案(下書き)→ 適用を申請 → 管理職の承認 → 適用開始日から有効の順で変更します(BR-045)。編集画面では列の追加・削除・並び順・見出し名・幅・合計、押印欄、注記を変更でき、右側のプレビューに実データで即座に反映されます。
15データ画面と権限
サイドバーの「データ:○○」から、すべてのデータ(57種類)の一覧・詳細を開けます。詳細画面では所属(親)へのリンクと、子データへのドリルダウン(例: 配送先 → その配送先の受注・荷物・所要時間標準値)を表示します。受注・運行・日報・売上・請求・仕訳などの業務の記録は、データ画面からは作成・変更できません(BR-041)。
| 操作 | 運行管理者 | 受注担当者 | 配車補助者 | 経理担当者 | 管理職 | 乗務員 |
|---|---|---|---|---|---|---|
| 受注の入力・変更 | ○ | ○ | - | - | - | - |
| 自動配車・配車案の作成 | ○ | - | ○ | - | - | - |
| 運行の確定・当日変更・点呼・日報の承認 | ○ | - | - | - | - | - |
| 配車ルールの登録・試行・申請 | ○ | - | - | - | - | - |
| 設定変更の承認 | - | - | - | - | ○(本人の申請を除く) | - |
| 売上・請求・入金・経費・仕訳・月次締め | - | - | - | ○ | - | - |
| 金額の参照・金額を含む帳票の出力 | ○ | - | - | ○ | ○ | - |
| 自分の運行の打刻・日報の確認 | - | - | - | - | - | ○ |
金額を参照できないロールで収支・会計の画面を開くと、金額は表示されず案内が表示されます(BR-066)。
16業務ルールと状態遷移
16.1 運行の状態遷移
自動配車案 ──採用──▶ 仮配車 ──確定──▶ 確定 ──運行指示──▶ 指示済 ──出庫──▶ 出庫
▲ │ 手修正 │ │
│ ▼ │ 当日変更 │
└── 仮配車 ◀───再配車──────┴──────────────┘
出庫 ──積込完了──▶ 積込完了 ──配送開始──▶ 配送中 ──帰庫──▶ 帰庫 ──日報承認──▶ 実績確定
16.2 配車ルールの状態遷移
下書き ──(試行)──▶ 下書き ──適用を申請──▶ 承認待ち ──承認──▶ 適用中 ──廃止──▶ 廃止
│
└──却下──▶ 却下 ──改定──▶ 下書き
16.3 売上・請求の状態遷移
売上: 候補 ──確定──▶ 確定 ──請求の締め──▶ 請求済 ──赤黒訂正──▶ 赤黒取消
請求: 締め済 ──発行──▶ 発行済 ──送付──▶ 送付済 ──入金(一部)──▶ 一部入金 ──入金──▶ 入金済
16.4 主な業務ルール
| ID | 内容 | システムでの挙動 |
|---|---|---|
| BR-001 | 受注は本システムで直接入力し、受注とマスタの正とする | 受注入力画面で入力 |
| BR-002 | 少ない操作で受注を入力できるようにする | 配送先の絞り込み、前回コピー、繰り返し受注 |
| BR-012 | 積載は重量・容積・床面・タンク槽を同時に判定する | 制約チェック(積載)。安全マージン超えは注意 |
| BR-021〜023 | 配車ルールは目的付きの設定として定義し、試行と承認を経て適用する | 配車ルール画面・設定変更の承認 |
| BR-028 | 配車の確定・変更は、すべて単一の制約チェックを経由する | 自動配車・手修正・当日変更・積み残しの追加で同じチェック |
| BR-029 | 違反は確定不可、注意は理由を入力すれば確定可 | 「仮配車を確定」で該当の運行と理由を表示して拒否 |
| BR-030 / 031 | 手で直した割当は保持し、当日変更は影響範囲だけ再配車する | 手修正した便は固定。「影響範囲だけ再配車」 |
| BR-033 / 034 | 労働時間は実績+予定の見込みで判定し、上限超えは違反とする | 労務管理画面、制約チェック(労働時間) |
| BR-037 | 点呼未実施・アルコール検知の乗務員は差し替えるまで出庫させない | 運行に違反を表示、出庫の打刻を拒否 |
| BR-045 | 設定変更は承認付き・履歴付き・適用開始日付きで行う(自己承認の禁止) | 配車ルール・帳票テンプレートなどは管理職の承認制 |
| BR-052 | 売上候補は、日報の承認で実績が確定した運行についてのみ作成し、根拠を保持する | 売上確定画面の「内訳」 |
| BR-059 | 締め済の請求は書き換えず、赤黒で訂正する | 金額の直接変更は拒否 |
| BR-063 / 064 | 仕訳は貸借一致、締め済の会計期間は変更しない | 貸借不一致の仕訳は登録不可、締め後は翌月に計上 |
| BR-066 | 金額情報は経理担当者・運行管理者・管理職にのみ表示する | 他のロールでは金額を表示せず、金額を含む帳票も出力不可 |
(上表は画面操作に関係する主なものを抜粋しています。)
17テストラン
架空のデータで業務の流れを再現し、業務ルールが守られていることを確認する画面です(開発・検証環境のみ)。
- データを作り直す — 過去2週間分の受注・自動配車・手修正・確定・点呼・運行・日報・売上・請求・入金・経費・月次締めを自動で作成します。当日は運行の途中まで(1名はアルコール検知)を再現します。
- 1ステップ進める — 運行中の各便の次の打刻を1つずつ進めます。
- 業務ルール違反の操作を試す — 積載超過・アルコール検知・点呼未実施での出庫・自己承認・貸借不一致の仕訳・締め済の請求の書き換えを実行し、拒否されることを確認します。
18制約事項
- データはメモリ上に保持しています。バックエンドを再起動すると、テストランのデータ(初期状態)に戻ります。
- ログイン認証はありません。画面右上の「操作者」で利用者を切り替えます。本番では設計書に従い認証基盤(JWT・API Gateway での認可)を導入する前提です。
- 地図・経路は簡易計算です(直線距離 × 1.3、危険物は迂回分を加算、平均時速 38km)。
- デジタコ・点呼システム・銀行の入金明細・会計ソフトとの連携は、API(取込口・CSV 出力)までを実装しています。
- 帳票の様式は項目・列・押印欄・注記などの設定で変更します。罫線の位置や社印画像の配置など、自由なレイアウトのデザインには対応していません。
- 本番運用では、各マイクロサービスの永続化層をデータベース(PostgreSQL 等)へ、サービス間のイベント配信をメッセージブローカー(Kafka 等)へ差し替えることを想定しています。








