業務シナリオから、57ユースケース・54エンティティへ。
組立・加工工場の業務シナリオを出発点に、アクティビティ図(17プロセス)・ユースケース57・クラス図(10パッケージ)・状態遷移図30(遷移201)・シーケンス図57を生成しました。モデルは版を重ねて改訂し、そのたびに設計・実装・テスト・トレーサビリティを作り直しています。最新の v1.4 のモデル検証は Critical 0・Major 0 です。
各パッケージの詳細なクラス図です。クリックすると原寸で開きます(数字はエンティティ数)。
本ページは、業務シナリオからのモデル駆動開発の概要と、生成したアプリケーション(domain model v1.4)の操作マニュアルをまとめたものです。画面・ボタンの名前は実装のとおりで、画面ショットはデモデータで撮影しています。
- 対象システム: 生産管理システム(組立・加工工場向け。見込生産と受注生産)
- 構成: フロントエンド(React + TypeScript)+ バックエンド(Express REST API)
- 設計トレース: 業務シナリオ → アクティビティ図 / ユースケース図 / クラス図 / 状態遷移図 / シーケンス図 → 実装(UC-01〜UC-57、BR-001〜BR-031 は設計書と共通)
01シナリオからの生成と改訂
入力は、組立・加工工場の業務を「誰が・どんなときに・何をして・どうなるか」の手順で書いた業務シナリオです。設計担当の品目・BOM 登録から、生産計画・MRP・購買・製造・検査・在庫・原価・工場 KPI まで、品質(Q)・原価(C)・数量と納期(D)を守るための一連の業務を記述しています。
| 成果物 | 数量 |
|---|---|
| 業務シナリオ(手順) | 63 |
| アクティビティ(業務プロセス) | 17プロセス・112アクティビティ |
| ユースケース(API と画面を実装) | 57 |
| エンティティ / 列挙型 | 54 / 56 |
| 状態遷移図 / 遷移 | 30 / 201 |
| ビジネスルール | 31 |
| シーケンス図 | 57 |
| ロール / 権限マトリクスのエンドポイント | 13 / 132 |
| テスト(バックエンド・フロントエンド・ブラウザ E2E) | 2,786 / 38 / 18(全件合格) |
1.1 モデルを改訂して作り直す
このシステムは一度で作り切ったものではありません。モデルを版で管理し、改訂のたびに uml-workflow-v3 で設計・実装・テスト・トレーサビリティまでを作り直しています。生成物を直接直すのではなく、モデルを直して再生成するのが原則です。
| 版 | 主な内容 |
|---|---|
| v1.1 | 業務シナリオから最初のモデルとアプリを生成(UC-01〜UC-32) |
| v1.2 | コード上で暫定的に扱っていた部分をモデル化。出庫指示と欠品、発注依頼と仕入先別単価、納品書・分納、現場端末、標準原価の承認、KPI 定義、承認者分離など(UC-43 まで) |
| v1.3 | 進捗管理の強化(フェーズ1)。中間実績、作業の中断・再開、完了見込みと余裕区分、ガントチャート、遅延アラートと挽回策(UC-44〜UC-50) |
| v1.4 | 進捗管理の強化(フェーズ2)。稼働カレンダー、余力と再配分、仕掛の停滞、流動数曲線、設備稼働の記録と OEE(UC-51〜UC-57) |
1.2 一般的な生産統制との比較から機能を追加
v1.3・v1.4 では、まず一般的な進捗管理の業務を調べて提案書にまとめ、当時のモデル(v1.2)とのギャップを洗い出してから、採用する範囲をシナリオに追記して作り直しました。生産統制の3つの活動(JIS Z 8141 にもとづく)に沿って、次のように整理しています。
| 活動 | v1.2 のギャップ | 追加した機能 |
|---|---|---|
| 進捗管理(進度管理) | 遅れてから分かる。完了見込み・納期への影響が出ない。ガントチャートがない | 中間実績、完了見込みと余裕区分、ガントチャート、流動数曲線、遅延アラートと挽回策(原因・承認・効果確認) |
| 余力管理 | 計画作成時の負荷と能力のみ。実行段階の日別余力・応援がない | 稼働カレンダー、作業区×日の余力、応援・残業の再配分と承認 |
| 現品管理 | 工程間の待ち時間・停滞日数が分からない | 仕掛の停滞(待ち開始と停滞日数) |
| 設備・停止ロス | 稼働履歴がなく、OEE を出せない | 設備稼働の記録(停止理由必須)、OEE と停止ロスのパレート |
02はじめに
| 区分 | 機能 |
|---|---|
| 基準情報 | 品目・BOM・工程表・計画パラメータ、設計変更の承認、作業区・設備 |
| 需要・受注 | 需要予測、受注、納期回答、製番 |
| 生産計画 | 基準生産計画(MPS)の作成・承認、MRP、計画オーダの確定、日程計画 |
| 購買・外注 | 発注依頼→発注、仕入先別単価、外注指示、仕入先ポータル(納期回答・分納・納品書)、受入 |
| 製造 | 作業指示、出庫指示・部材出庫、欠品対応、作業実績・中間実績・作業の中断と再開(現場端末) |
| 進捗管理 | 進捗と完了見込み、ガントチャート、遅延アラートと挽回策 |
| 余力・現品・設備 | 稼働カレンダー、余力と再配分(応援・残業)、仕掛の停滞、流動数曲線、設備稼働の記録と OEE・停止ロス |
| 品質 | 受入検査・工程内/最終検査、不良処置、ロット追跡(トレースバック/フォワード) |
| 在庫・原価 | 在庫照会、棚卸・在庫調整、出荷、標準原価の登録・承認、実際原価と原価差異、工場 KPI |
| システム管理 | 利用者・利用者区分、現場端末、操作ログ監査 |
利用者区分(ロール)は13種類です:営業担当 / 生産管理担当 / 工場長 / 購買担当 / 仕入先・外注先 / 倉庫担当 / 製造現場リーダー(職長)/ 作業者 / 品質保証担当 / 設計担当 / 生産技術担当 / 原価管理担当 / システム管理者。ログインした利用者の区分によって、サイドバーのメニューと実行できる操作が変わります。1人が複数のロールを持つこともできます。
03起動とログイン
cd backend && npm install && npm run dev # http://localhost:4000
cd frontend && npm install && npm run dev # http://localhost:5173(/api は 4000 へプロキシ)
docker compose up --build # Docker の場合
ログイン方法は2種類です。
- 事務所・仕入先(パスワード) — ログインID とパスワード(デモは全員
Demo#Pass2026)。5回連続で失敗すると15分間ロックされます。仕入先の利用者でログインすると仕入先ポータルが表示されます。 - 現場端末(社員証+PIN) — 工場のタブレット・ハンディ端末で、社員証コードと6桁の PIN でログインします。初回だけ、システム管理者から受け取った端末の登録トークンを保存します。
04ダッシュボード
ログインした利用者の「やること」(納期回答待ちの受注、未確定の計画オーダ、未対応の欠品、承認待ちの挽回策など)と、工場の状況(未完了・製造中・遅延の製造指示、故障中の設備)、工場 KPI を表示します。原価差異は権限のある利用者にのみ表示されます。
05基準情報(UC-01〜04, 33〜35)
- 計画パラメータ(生産管理担当)— 品目ごとに手配区分(内製/購入/外注)、生産形態、リードタイム、最小発注単位・発注倍数、安全在庫を設定します。着手日=必要日−リードタイム(BR-004)。
- 設計変更の承認(工場長)— 承認済みの設計変更に紐づく BOM 改訂版だけが有効化できます。BOM・工程表は上書きせず版で改訂し、発行済の製造指示は発行時点の版を保持します(BR-002)。
- 作業区・設備 — 生産技術担当が作業区(1日の能力・賃率)と設備を登録し、職長が故障・保全・復旧を登録します。賃率は原価管理担当・生産技術担当・工場長にのみ表示されます。
06生産計画と MRP(UC-08〜12)
6.1 基準生産計画の作成と承認
- 生産管理担当が計画期間を指定し、「需要予測・受注・在庫から提案」で計画明細を作ります。
- 「作業区の負荷と能力」で負荷率を確認します。能力を超える作業区がある計画は承認申請できません(BR-006)。
- 工場長が明細と負荷を確認して承認または差戻しします。承認者は起票者・申請者と別人でなければなりません(BR-019)。
6.2 MRP 実行と計画オーダの確定
承認済みの基準生産計画だけが MRP の対象です(BR-005)。正味所要量=総所要量−(引当可能在庫+発注残+製造指示残−安全在庫)で、正の場合だけロットサイズで丸めて計画オーダを作ります(BR-003)。確定すると、手配区分ごとに次が作成されます。
| 手配区分 | 作成されるもの |
|---|---|
| 購入 | 発注依頼(購買担当が発注に変換) |
| 外注 | 外注指示(作成中) |
| 内製 | 製造指示(BOM・工程表の版を固定して発行) |
同じ画面群の「日程計画」で、発行済みの製造指示の範囲で作業区ごとの着手順序(差立て)を決めて配信します。日程計画は MRP の入力にはしません。
07稼働カレンダーと余力の再配分(UC-51〜53)
作業区ごとに稼働日と1日の能力を稼働カレンダーに登録します。負荷計算・完了見込み・OEE はこのカレンダーに従います(BR-027)。セルには有効能力=能力+残業+応援受入−応援派遣が表示されます。
余力・再配分では、作業区×日の負荷(未完了の作業指示の残り標準時間)と有効能力を比べ、余力・不足を色分けします。不足している日に、応援(他の作業区から。すぐ反映)・残業(工場長の承認後に反映)・順序組替を登録します。
08購買・外注(UC-13〜18, 38)
- 発注依頼から発注(購買担当)— 依頼を選ぶと、その品目の本日有効な仕入先別単価が仕入先ごとに表示されます。単価はサーバーが発注日に有効な仕入先別単価から決め、有効な単価がなければ発注できません(BR-017)。
- 仕入先ポータル(仕入先)— 自社宛の発注・外注指示だけが表示され(BR-021)、納期回答・分納予定・納品書を登録します。
- 受入と受入検査 — 倉庫担当が納品書と発注を照合して受入を登録し、品質保証担当の検査に回します。
09出庫・欠品・作業実績(UC-19〜21, 39, 44, 45)
9.1 出庫指示と欠品
出庫指示は製造指示の BOM 版から部材と必要数を展開して作られます。倉庫担当がハンディ端末でロットを選んで払い出し、出庫指示にない品目や受入検査に合格していないロットは払い出せません(BR-018 / BR-008)。在庫が足りない分は欠品として登録され、生産管理担当が発注前倒し・代替品・日程変更のいずれかで対応します。
9.2 作業実績(現場端末)
作業者は現場端末で、自分に割り当てられた作業指示のカードから着手・使用ロット・完了(良品数・不良数・作業時間)を登録します。前工程が完了していない工程には着手できず(BR-009)、良品数+不良数は着手数と一致させます(BR-010)。誤りは元の実績を残したまま訂正実績で直します(BR-020)。
- 中間実績(UC-44)— シフト終了などの区切りで、前回からの増分を報告します。作業終了から2時間を超えて登録すると「入力遅れ」として記録されます(BR-025)。完了時は工程全体の累計で登録し、中間実績と二重に数えません(BR-031)。
- 中断と再開(UC-45)— 材料待ち・段取り・設備故障などの理由を選んで中断を登録します。中断中は完了を登録できず(BR-023)、60分を超えると遅延アラートが出ます(BR-026)。
10進捗と遅延対応(UC-26, 46〜50)
10.1 進捗と完了見込み
製造指示ごとに完了見込み・納期・余裕日数・余裕区分を表示します(BR-022)。完了見込みは、残りの標準作業時間を作業区の実績能率(直近30日)で割り、同じ作業区で先に着手する作業とともに、稼働カレンダーの有効能力に沿って積み上げて求めます。
| 余裕区分 | 意味 |
|---|---|
| 順調 | 納期まで2日以上の余裕がある |
| 注意 | 余裕が2日未満 |
| 遅延見込み | 完了見込みが納期を過ぎる |
| 遅延 | 納期を過ぎて未完了 |
10.2 ガントチャート
作業区・設備ごとに、作業指示の予定と実績を時間軸で表示します。中断(赤)・設備故障(▼)・欠品(◆)をマークで示し、製造指示を選ぶとその工程が強調されます。設備の行には稼働履歴から稼働・段取り・停止・故障・保全の帯が表示されます。
10.3 遅延アラートと挽回策
完了見込みが「遅延見込み」「遅延」になったとき、作業の中断が60分を超えたとき、着手中の設備が故障したときに、システムが遅延アラートを出します(BR-026)。
- 挽回策の登録(生産管理担当)— 原因区分(納入遅れ・不良・設備故障・人員不足・欠品 など)と、挽回策(残業・応援・外注化・順序組替・納期変更)・担当者・期限を登録します。
- 承認(工場長)— 残業・外注化は、登録者とは別の工場長の承認が必要です(BR-019 / BR-024)。承認された残業は稼働カレンダーに反映されます。
- 効果の確認とクローズ — 実施完了を記録し、効果を入力してクローズします。未完了の挽回策があるとクローズできません(BR-024)。
11現品と設備(UC-54〜57)
- 仕掛の停滞(UC-54)— 工程間で着手を待っている作業指示を作業区ごとに表示し、待ちが暦日で2日を超えたものを停滞として強調します(BR-029)。
- 流動数曲線(UC-55)— ロット生産品の計画累積・投入累積・完成累積を表示します。投入と完成の縦の差が仕掛数、横の差がリードタイムです。
- 設備稼働の記録(UC-56)— 職長が現場端末で状態(稼働中・段取り・停止中・保全中)を記録します。稼働中以外は停止理由が必須で、履歴は追記のみです(BR-030)。
- OEE と停止ロス(UC-57)— OEE=時間稼働率×性能稼働率×良品率。停止理由別の停止時間をパレート図で表示します。
12品質(UC-18, 22, 23, 30)
- 受入検査 — 検査項目(下限・上限・測定値)と合格数量・仕入先ロット番号を登録します。合格品だけが在庫に計上されます(BR-008)。
- 不良処置 — 保留中の不良を手直し・廃棄・特別採用・返品のいずれかに決めます。特別採用は、その検査を判定した人とは別の品質保証担当が行います(BR-011)。
- ロット追跡 — 製造ロットから、使った部材ロット・工程・作業者・設備・検査記録をたどり(トレースバック)、同じ部材ロットを使った他の製品と出荷先を特定します(トレースフォワード / BR-012)。
13在庫(UC-25, 28, 29)
在庫は受払の記録から計算し、数量を直接書き換えることはできません(BR-013)。棚卸では倉庫担当が実数を登録して差異を算出し、数えた人とは別の工場長が在庫調整を承認します(BR-019)。出荷では、出荷したロットと出荷先を記録し、ロット追跡に使います。
14原価と KPI(UC-31, 32, 36, 37, 40)
- 標準原価 — 原価管理担当が起票・申請し、工場長が承認します。原価差異分析には承認済の標準原価だけを使います。
- 原価差異 — 材料払出・作業時間・経費配賦の実績から実際原価を集計し、材料費・労務費・経費ごと、製品別・製番別の差異を表示します。原価情報は原価管理担当と工場長にのみ表示されます。
- 工場 KPI — 工場長が定義した計算式・目標値・評価の向きで、納期遵守率・不良率・設備稼働率・生産性・原価差異・在庫回転日数・遅延率・OEE などを目標と比較して表示します。
15システム管理と汎用画面
- 利用者・利用者区分 — 複数ロールを付与できます。仕入先と社内ロール、システム管理者と業務ロールの同時付与や、自分自身のロール変更はできません(職務分掌)。
- 現場端末 — 端末を登録して登録トークンを発行し、紛失・故障した端末は停止します。
- 操作ログ監査 — 操作ログは追記専用で、ハッシュ連鎖で改ざんを検証できます(BR-016)。権限拒否・他社アクセスの試行・ログイン失敗も記録されます。
専用画面のないデータは、48種類に共通の汎用画面(一覧 → 詳細 → 新規/編集)で扱います。詳細画面の状態遷移ボタンは、現在の状態と利用者区分に応じて出し分けられ、状態遷移図にない操作は表示されず、実行しても拒否されます。
16業務ルールと状態遷移
16.1 主な状態遷移
生産計画(基準生産計画)
作成中 ──承認申請──▶ 承認申請中 ──承認(工場長)──▶ 承認済(確定)──▶ MRP・計画オーダ確定
▲ │
└────── 差戻し ◀───────┘
製造指示
計画 ──発行──▶ 発行済 ──(作業指示の着手)──▶ 製造中 ──完成登録──▶ 完了 ──原価計算の確定──▶ 締め済
└──────────── 取消(着手前のみ) ────────────┘
遅延アラート
未対応 ──挽回策を登録──▶ 対応中 ──クローズ(完了した挽回策あり)──▶ 解決済
└──────── 対応不要で解決(順調に戻った)/製造指示の完了・取消 ──────▶ 解決済
状態遷移図は全30種類(遷移201)あります。
16.2 主な業務ルール
| ID | 内容 | アプリでの挙動 |
|---|---|---|
| BR-002 | BOM・工程表は版で改訂し、発行済の製造指示は発行時点の版を保持 | 設計変更が承認済でないと改訂版を有効化できない |
| BR-005 / 006 | 承認済の基準生産計画からのみ MRP、負荷超過は確定前に解消 | 未承認の計画では MRP を実行できない。能力超過では承認申請不可 |
| BR-008 | 受入検査未合格品は在庫計上・払出しない | 保留・不合格ロットは出庫画面で選べない |
| BR-009 / 010 | 前工程完了後に着手、良品+不良=着手数 | 条件を満たさない実績はエラー |
| BR-013 | 在庫は受払から導出、直接書き換えない | 在庫調整は棚卸の承認で受払として記録 |
| BR-017 / 018 | 発注は有効な仕入先別単価で、払出は出庫指示の明細のみ | 有効単価がないと発注不可。不足は欠品登録 |
| BR-019 | 承認は起票者・実施者と別人 | 計画・棚卸・標準原価・設計変更・挽回策・残業の自己承認は拒否 |
| BR-020 / 021 | 現場の実績は登録済端末から、仕入先は自社分のみ | 停止中の端末は登録不可。他社の注文は表示されない |
| BR-022〜026 | 完了見込みと余裕区分、中断、挽回策、入力遅れ、遅延アラート | 余裕2日未満は「注意」。中断中は完了不可。2時間超は入力遅れ |
| BR-027 / 028 | 能力は稼働カレンダーで定め、残業は承認後に反映 | 負荷・完了見込み・OEE が有効能力に従う |
| BR-029 / 030 | 仕掛の停滞、設備の状態記録と OEE | 2暦日超の待ちを停滞表示。稼働以外は停止理由必須 |
| BR-031 | 実績の集計方法 | 完了実績があればそれだけを使い、中間実績と二重計上しない |
(全31ルール。上表は画面操作に関係する主なものを抜粋しています。)
17品質とトレーサビリティ
17.1 テスト
| 種別 | 対象 | 件数 |
|---|---|---|
| バックエンド | ユースケース API・業務ルール・状態遷移(モデルからのデータ駆動)・権限マトリクス 132 エンドポイント×13 ロール・項目マスク・職務分掌 | 2,786 |
| フロントエンド | 表示整形と、画面の状態遷移ボタンが状態遷移図と一致すること | 38 |
| E2E(ブラウザ) | ログイン・計画承認・MRP→発注・仕入先ポータル・現場の実績・遅延アラート・残業承認・設備稼働・流動数曲線・OEE(Playwright) | 18 |
すべて合格しています。状態遷移と権限のテストは、モデル(状態遷移図・権限マトリクス)を直接読み込んで生成するため、モデルを改訂するとテストも追従します。
17.2 トレーサビリティ行列
| 追跡レベル | カバレッジ |
|---|---|
| シナリオ手順 → アクティビティ → UC → 実装・画面・テストまで完全追跡 | 100%(63/63) |
| アクティビティ → ユースケース | 100%(112/112) |
| ユースケース → シーケンス / 実装 / 画面 / テスト | 各 100%(57/57) |
| ビジネスルール → 実装+テスト | 100%(31/31) |
| 状態遷移図 → 実装+テスト | 100%(30/30) |
| 権限マトリクスのエンドポイント → ルート | 100%(132/132) |
| セキュリティ規則 → 実装 / テスト | 97.2%(35/36) |
18制約事項
- データはメモリ上に保持します。バックエンドを再起動すると、デモデータの状態に戻ります。
- 多要素認証(MFA)は仮実装です。6桁の形式を確認するだけで、ワンタイムパスワードの検証は行いません。
- PIN 再発行・ロック解除・パスワード変更の画面、停止した端末の再有効化、仕入先別単価・賃率変更・代替品差替えの承認は未実装です。
- 完了見込みは、作業開始08:00・納期は当日17:00として計算します。残業は作業区単位(時間×人数)で管理し、作業者一人ひとりの残業上限(36協定)の確認は対象外です。
- 本番運用では、永続化層をデータベース(PostgreSQL 等)へ差し替え、認証を本格的な仕組みへ置き換えることを想定しています。









