構築例一覧へ戻る
構築例 13 / Build Example
Example 13 / 14

生産管理システム

組立・加工を行う工場の需要予測・受注 → 生産計画 → MRP → 購買・外注 → 製造 → 品質 → 在庫 → 原価を、品目・部品構成表(BOM)・工程表を共通の基準情報として一元管理するシステム。見込生産(ロット生産)と受注生産(製番管理)の両方を扱います。モデルを v1.1 から v1.4 まで改訂しながら作り直し、最新版では完了見込みと遅延アラート・挽回策、余力の再配分、仕掛の停滞、流動数曲線、設備の OEEまで、生産統制の進捗管理を備えています。

フロントエンド
React 18 + TypeScript + Vite + Tailwind(事務所 PC・現場端末・仕入先ポータル)
バックエンド
Express REST API + TypeScript(インメモリ)/メタデータ駆動の汎用 CRUD+状態マシンエンジン
設計トレース
業務シナリオ → アクティビティ図 / ユースケース図 / クラス図 / 状態遷移図 / シーケンス図 → 実装 → テスト
MPS・MRP 製番管理 現場端末 ロット追跡 遅延アラート・挽回策 OEE テスト2,800件超
設計モデル / Design Models

業務シナリオから、57ユースケース・54エンティティへ。

組立・加工工場の業務シナリオを出発点に、アクティビティ図(17プロセス)・ユースケース57・クラス図(10パッケージ)・状態遷移図30(遷移201)・シーケンス図57を生成しました。モデルは版を重ねて改訂し、そのたびに設計・実装・テスト・トレーサビリティを作り直しています。最新の v1.4 のモデル検証は Critical 0・Major 0 です。

ユースケース図(57 UC) Use Case Diagram
生産管理システム ユースケース図
営業・生産管理・工場長・購買・仕入先・倉庫・職長・作業者・品質保証・設計・生産技術・原価管理・システム管理の13ロールと UC-01〜UC-57 の関係。枠内をスクロールして全体を確認できます。 原寸で開く ↗
クラス図 俯瞰(54クラス) Overview
クラス図 俯瞰(54クラス)
54クラスを、基準情報・需要と受注・生産計画・購買と外注・製造・進捗管理・品質・在庫・原価・共通の10パッケージにまとめて俯瞰。 原寸で開く ↗
パッケージ別クラス図 / By Package

各パッケージの詳細なクラス図です。クリックすると原寸で開きます(数字はエンティティ数)。

本ページは、業務シナリオからのモデル駆動開発の概要と、生成したアプリケーション(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 と停止ロスのパレート
アクティビティ図:進捗管理(v1.3〜v1.4 で追加) Activity Diagram
アクティビティ図 進捗管理
進捗の確認から、遅延アラートの検知、挽回策の登録・承認・効果確認までの流れ。 原寸で開く ↗

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 でログインします。初回だけ、システム管理者から受け取った端末の登録トークンを保存します。
ログイン画面(現場端末)
ログイン画面(現場端末)
作業実績の登録と部材の出庫は、登録済みで有効な現場端末からしかできません(BR-020)。紛失した端末を停止すると、その端末のセッションは即時に失効します。

04ダッシュボード

ログインした利用者の「やること」(納期回答待ちの受注、未確定の計画オーダ、未対応の欠品、承認待ちの挽回策など)と、工場の状況(未完了・製造中・遅延の製造指示、故障中の設備)、工場 KPI を表示します。原価差異は権限のある利用者にのみ表示されます。

ダッシュボード画面(生産管理担当)
ダッシュボード画面(生産管理担当)

05基準情報(UC-01〜04, 33〜35)

  • 計画パラメータ(生産管理担当)— 品目ごとに手配区分(内製/購入/外注)、生産形態、リードタイム、最小発注単位・発注倍数、安全在庫を設定します。着手日=必要日−リードタイム(BR-004)。
  • 設計変更の承認(工場長)— 承認済みの設計変更に紐づく BOM 改訂版だけが有効化できます。BOM・工程表は上書きせず版で改訂し、発行済の製造指示は発行時点の版を保持します(BR-002)。
  • 作業区・設備 — 生産技術担当が作業区(1日の能力・賃率)と設備を登録し、職長が故障・保全・復旧を登録します。賃率は原価管理担当・生産技術担当・工場長にのみ表示されます。
計画パラメータ設定画面
計画パラメータ設定画面

06生産計画と MRP(UC-08〜12)

6.1 基準生産計画の作成と承認

  1. 生産管理担当が計画期間を指定し、「需要予測・受注・在庫から提案」で計画明細を作ります。
  2. 「作業区の負荷と能力」で負荷率を確認します。能力を超える作業区がある計画は承認申請できません(BR-006)。
  3. 工場長が明細と負荷を確認して承認または差戻しします。承認者は起票者・申請者と別人でなければなりません(BR-019)。
生産計画画面
生産計画画面(生産管理担当)

6.2 MRP 実行と計画オーダの確定

承認済みの基準生産計画だけが MRP の対象です(BR-005)。正味所要量=総所要量−(引当可能在庫+発注残+製造指示残−安全在庫)で、正の場合だけロットサイズで丸めて計画オーダを作ります(BR-003)。確定すると、手配区分ごとに次が作成されます。

手配区分作成されるもの
購入発注依頼(購買担当が発注に変換)
外注外注指示(作成中)
内製製造指示(BOM・工程表の版を固定して発行)
MRP実行・計画オーダ確定画面
MRP 実行・計画オーダ確定画面

同じ画面群の「日程計画」で、発行済みの製造指示の範囲で作業区ごとの着手順序(差立て)を決めて配信します。日程計画は MRP の入力にはしません。

07稼働カレンダーと余力の再配分(UC-51〜53)

作業区ごとに稼働日と1日の能力を稼働カレンダーに登録します。負荷計算・完了見込み・OEE はこのカレンダーに従います(BR-027)。セルには有効能力=能力+残業+応援受入−応援派遣が表示されます。

稼働カレンダー画面
稼働カレンダー画面

余力・再配分では、作業区×日の負荷(未完了の作業指示の残り標準時間)と有効能力を比べ、余力・不足を色分けします。不足している日に、応援(他の作業区から。すぐ反映)・残業(工場長の承認後に反映)・順序組替を登録します。

余力・再配分画面
余力・再配分画面(生産管理担当)
残業はカレンダー画面からは変更できません。余力・再配分で登録し、登録者以外の工場長が承認してはじめて能力に加わります(BR-028)。

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)。

  1. 挽回策の登録(生産管理担当)— 原因区分(納入遅れ・不良・設備故障・人員不足・欠品 など)と、挽回策(残業・応援・外注化・順序組替・納期変更)・担当者・期限を登録します。
  2. 承認(工場長)— 残業・外注化は、登録者とは別の工場長の承認が必要です(BR-019 / BR-024)。承認された残業は稼働カレンダーに反映されます。
  3. 効果の確認とクローズ — 実施完了を記録し、効果を入力してクローズします。未完了の挽回策があるとクローズできません(BR-024)。
遅延アラート・挽回策画面
遅延アラート・挽回策画面(生産管理担当)
挽回策の承認(工場長)
挽回策の承認(工場長)

11現品と設備(UC-54〜57)

  • 仕掛の停滞(UC-54)— 工程間で着手を待っている作業指示を作業区ごとに表示し、待ちが暦日で2日を超えたものを停滞として強調します(BR-029)。
  • 流動数曲線(UC-55)— ロット生産品の計画累積・投入累積・完成累積を表示します。投入と完成の縦の差が仕掛数、横の差がリードタイムです。
  • 設備稼働の記録(UC-56)— 職長が現場端末で状態(稼働中・段取り・停止中・保全中)を記録します。稼働中以外は停止理由が必須で、履歴は追記のみです(BR-030)。
  • OEE と停止ロス(UC-57)— OEE=時間稼働率×性能稼働率×良品率。停止理由別の停止時間をパレート図で表示します。
仕掛停滞画面
仕掛停滞画面
流動数曲線画面
流動数曲線画面
OEE・停止ロス画面
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 などを目標と比較して表示します。
原価差異画面
原価差異画面
工場KPI画面
工場 KPI 画面

15システム管理と汎用画面

  • 利用者・利用者区分 — 複数ロールを付与できます。仕入先と社内ロール、システム管理者と業務ロールの同時付与や、自分自身のロール変更はできません(職務分掌)。
  • 現場端末 — 端末を登録して登録トークンを発行し、紛失・故障した端末は停止します。
  • 操作ログ監査 — 操作ログは追記専用で、ハッシュ連鎖で改ざんを検証できます(BR-016)。権限拒否・他社アクセスの試行・ログイン失敗も記録されます。
操作ログ監査画面
操作ログ監査画面

専用画面のないデータは、48種類に共通の汎用画面(一覧 → 詳細 → 新規/編集)で扱います。詳細画面の状態遷移ボタンは、現在の状態と利用者区分に応じて出し分けられ、状態遷移図にない操作は表示されず、実行しても拒否されます。

汎用詳細画面
汎用詳細画面(製造指示・状態遷移ボタン)

16業務ルールと状態遷移

16.1 主な状態遷移

生産計画(基準生産計画)
 作成中 ──承認申請──▶ 承認申請中 ──承認(工場長)──▶ 承認済(確定)──▶ MRP・計画オーダ確定
   ▲                      │
   └────── 差戻し ◀───────┘

製造指示
 計画 ──発行──▶ 発行済 ──(作業指示の着手)──▶ 製造中 ──完成登録──▶ 完了 ──原価計算の確定──▶ 締め済
   └──────────── 取消(着手前のみ) ────────────┘

遅延アラート
 未対応 ──挽回策を登録──▶ 対応中 ──クローズ(完了した挽回策あり)──▶ 解決済
   └──────── 対応不要で解決(順調に戻った)/製造指示の完了・取消 ──────▶ 解決済

状態遷移図は全30種類(遷移201)あります。

16.2 主な業務ルール

ID内容アプリでの挙動
BR-002BOM・工程表は版で改訂し、発行済の製造指示は発行時点の版を保持設計変更が承認済でないと改訂版を有効化できない
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仕掛の停滞、設備の状態記録と OEE2暦日超の待ちを停滞表示。稼働以外は停止理由必須
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)
未達の1件は、仕入先別単価の承認(職務分掌 SoD-09)で、未解決事項として残しています。

18制約事項

  • データはメモリ上に保持します。バックエンドを再起動すると、デモデータの状態に戻ります。
  • 多要素認証(MFA)は仮実装です。6桁の形式を確認するだけで、ワンタイムパスワードの検証は行いません。
  • PIN 再発行・ロック解除・パスワード変更の画面、停止した端末の再有効化、仕入先別単価・賃率変更・代替品差替えの承認は未実装です。
  • 完了見込みは、作業開始08:00・納期は当日17:00として計算します。残業は作業区単位(時間×人数)で管理し、作業者一人ひとりの残業上限(36協定)の確認は対象外です。
  • 本番運用では、永続化層をデータベース(PostgreSQL 等)へ差し替え、認証を本格的な仕組みへ置き換えることを想定しています。

本マニュアルは uml-workflow-v3 で生成したアプリケーションの実装に基づいています。