140 likes | 292 Vues
仕入販売支援システム. 受注する. 入庫を記録する. 在庫を引き当てる. 出荷指示する. 出荷を記録する. 仕入注文をする. 受付係. 倉庫係. 11. モデリング. 11.3 酒屋の在庫問題 ( 8 ). ユースケース. inv: self./ 実在庫量 =self.the 商品 .the 入庫 . 数量 ->sum - self.the 商品 .the 出荷 . 数量 ->sum self./ 有効在庫 =self./ 実在庫 + self.the 商品 .the 仕入注文 . 数量 ->sum
E N D
仕入販売支援システム 受注する 入庫を記録する 在庫を引き当てる 出荷指示する 出荷を記録する 仕入注文をする 受付係 倉庫係 11. モデリング 11.3 酒屋の在庫問題(8) • ユースケース
inv: self./実在庫量=self.the商品.the入庫.数量->sum - self.the商品.the出荷.数量->sum self./有効在庫=self./実在庫+ self.the商品.the仕入注文.数量->sum - self.the商品.the注文.数量->sum 仕入注文 注文 銘柄 * * * * 発注番号 発注日 入庫希望日 数量 注文番号 受注日 納入希望日 数量 1 1 名称 /実在庫量 /有効在庫量 1 1 メーカ 小売店 1 型 * * 名称 {導出} 名称 住所 * * * 1 1 入庫 商品 出荷 * * 1 1 入庫日 数量 出荷日 数量 * * inv: self.the出荷.数量->sum = self.the入庫.数量 11. モデリング 11.3 酒屋の在庫問題(9) • 安易なモデル
11. モデリング 11.3 酒屋の在庫問題(10) • ユースケース記述 ユースケース名:受注する アクタ:受付係 目的:小売店からの注文を記録して,納入までの手続きを始動したい。 事前条件:その注文が記録されていない。 基本系列: ①アクタは,システムに注文を記録する旨を示す。 ②システムはアクタに注文の入力を促す。 ③アクタは注文内容(送り先,受注日,商品名,数量,納入希望日)を入力する。 ④システムは,注文内容が妥当であることを確認し,注文番号を発行して, それらを記録すると同時に,納入希望日の在庫量から受注数量分を減じる。 事後条件:その注文が記録されている。 代替系列: 備考: ①注文内容が妥当であるとは,次の3つの条件がともに真であること。 a.送り先名がすでに定義されている,b.商品名がすでに定義されている, c.納入希望日が翌日以降である ②注文番号は一連番号とし,ユニーク性を保証すること。初期値は1。 ③在庫量がマイナスになった場合は在庫不足として扱う。
-8 -8 -8 -8 2 2 2 2 2 商品名 1/14 1/15 1/16 1/17 1/18 1/19 マッカラン 12 12 12 12 12 12 11. モデリング 11.3 酒屋の在庫問題(11) 計画ホライゾン • ユースケース記述 ユースケース名:在庫を引き当てる。 アクタ:受付係 目的:注文に対する在庫不足分を明らかにする。 事前条件:未処理の注文がある。 基本系列: ①アクタは,システムに在庫の確認処理を要請する。 ②システムは,商品別,納入希望日順に在庫量から注文分を減じる。当日お よび翌日の在庫がマイナスになった場合はアクタに警告する。 ③システムは,処理した注文に対して「処理済み」をマークする。 事後条件:未処理の注文がない。 代替系列:なし 備考:在庫引き当ては,商品別,日別の予定在庫を減じることで表現する。 「仕入注文をする」ユースケースでは,安全在庫を加味して仕入数量を 決める)。 注文日:1/14 マッカラン 10本 1/15 マッカラン 10本 1/16 仕入注文日:1/14 マッカラン 10本 1/15
B社 11. モデリング 11.3 酒屋の在庫問題(12) • 受注から出荷までのビジネス事象 小売店 酒メーカ C社 受注係 倉庫係 注文する 0日 [在庫不足] 仕入注文する [在庫あり] 出庫を指示する 入庫する +1日 入庫を通知する 出庫を指示する +2日
累積量 仕入 入庫 滞留時間 注文 flow 在庫 出荷 期首 現在 時間 実績 予定 stock 在庫量 安全在庫 期首 現在 時間 実績 予定 11. モデリング 11.3 酒屋の在庫問題(13) • 在庫とは • 実在庫 • 期首在庫+Σ入庫-Σ出荷 • ある時点での予定在庫 • 実在庫+Σ仕入-Σ注文 • 入庫,出荷は実績 • 仕入,注文は 入庫予定,出荷予定 • ユースケースは不変? ②システムは,商品別,納入希望日順に在庫量から注文分を減じる。当日および翌日の在庫がマイナスになった場合はアクタに警告する。 内部を書きすぎだった
11. モデリング 11.3 酒屋の在庫問題(14) • 初期モデル 会計取引 勘定科目 仕訳記入行 /科目ごとの集計金額 金額 発生日 計上日 1 * 2..* 1 勘定パターン 銘柄 導出ルール 名称 * 在庫単位 記入行 取引 在庫 1 時点 数量 発生日 計上日 /数量 1 * 2..* 1 * 期首在庫 * 数量 場所 位置
11. モデリング 11.3 酒屋の在庫問題(15) • オブジェクト図で確認 • 在庫単位間を移動する数量 三木酒造:メーカー 三木酒造-酒鯨:在庫単位 :記入行 数量=-24 :入庫実績 酒鯨 :銘柄 発生日=2003.7.1 A倉庫-酒鯨:在庫単位 :記入行 数量=+24 :記入行 A倉庫:倉庫 数量=-2 :出庫予定 赤坂酒店-酒鯨:在庫単位 発生日=2003.7.2 :記入行 数量=+2 赤坂酒店:小売店 記入行の数量の符号によって,移動の方向を示している
11. モデリング 11.3 酒屋の在庫問題(16) • 初期モデルの修正 • 在庫の最適化に重点を置く inv: self.the記入行->sum=0 導出ルール 出庫 入庫 銘柄 名称 取引 * * 在庫 1 1 1 在庫単位 記入行 * * 取引番号 発生日 移動日 時点 2..* 安全在庫量 数量 /数量 * * 期首在庫 《多重》 数量 場所 名称 位置 実績 予定 1 0..1 倉庫 小売店 メーカー
11. モデリング 11.3 酒屋の在庫問題(17) • 揺さぶり • 分割納入,一括納入は可能か 取引 取引番号 発生日 移動日 :記入行 :予定出庫 《多重》 数量=-12 /残量=0 取引番号=#2001 発生日=2003.7.31 移動日=2003.8.2 :記入行 予定 実績 0..1 数量=+12 /残量=0 0..1 A倉庫-清酒NIP:単位在庫 :記入行 :実績出庫 数量=-6 取引番号=#5023 発生日=2003.8.2 移動日=2003.8.2 取引 :記入行 取引番号 発生日 移動日 BP酒店-清酒NIP:単位在庫 数量=+6 《多重》 :記入行 :実績出庫 数量=-6 取引番号=#5046 発生日=2003.8.4 移動日=2003.8.4 予定 実績 * :記入行 * 数量=+6
出庫 入庫 銘柄 名称 * * 取引 1 1 記入行 * * 単位在庫 取引番号 発生日 計上日 2..* 数量 安全在庫量 * :予定記入行 :出庫 制約: 関連づく記入行は取引ご とに予定か実績かどちらか 場所 * 実績 予定 数量=-12 /残量=0 取引番号=#2001 発生日=2003.7.31 移動日=2003.8.2 名称 位置 * /残量 :予定記入行 数量=+12 /残量=0 :実績記入行 A倉庫-清酒NIP:単位在庫 :出庫 数量=-6 取引番号=#5023 発生日=2003.8.2 移動日=2003.8.2 :実績記入行 BP酒店-清酒NIP:単位在庫 数量=+6 :実績記入行 :出庫 数量=-12 取引番号=#5046 発生日=2003.8.4 移動日=2003.8.4 :実績記入行 数量=+12 11. モデリング 11.3 酒屋の在庫問題(18) • 揺さぶり • より細かい分割納入/一括納入を可能にする
A倉庫:倉庫 A倉庫:倉庫 :実績記入行 :実績記入行 数量=-1 移動日=2003.8.2 :出庫取引 :出庫取引 A倉庫-清酒NIP :単位在庫 清酒NIP01:現物 数量=-1 移動日=2003.8.2 取引番号=#5023 発生日=2003.8.2 移動日=2003.8.2 取引番号=#5023 発生日=2003.8.2 移動日=2003.8.2 製造日=2003.2.3 識別番号=01 A倉庫-清酒NIP :単位在庫 :実績記入行 清酒NIP :銘柄 :実績記入行 数量=+1 移動日=2003.8.2 数量=+1 移動日=2003.8.2 清酒NIP :銘柄 型 型 :実績記入行 :実績記入行 BP酒店-清酒NIP:単位在庫 :出庫取引 :出庫取引 清酒NIP01:現物 数量=-1 移動日=2003.8.4 数量=-1 移動日=2003.8.4 取引番号=#5046 発生日=2003.8.4 移動日=2003.8.4 取引番号=#5046 発生日=2003.8.4 移動日=2003.8.4 製造日=2003.2.3 シリアル番号=01 清酒NIP02:現物 BP酒店-清酒NIP:単位在庫 :実績記入行 製造日=2003.2.3 識別番号=02 :実績記入行 清酒NIP02:現物 数量=+1 移動日=2003.8.4 BP酒店:小売店 数量=+1 移動日=2003.8.4 製造日=2003.2.3 シリアル番号=02 BP酒店:小売店 11. モデリング 11.3 酒屋の在庫問題(19) • 揺さぶり • 個体識別を可能にする • オブジェクト図で確認 現品管理
11. モデリング 11.3 酒屋の在庫問題(20) • 揺さぶり • 個体識別を可能にする 制約 移動先は同一の場所 導出ルール 出庫 入庫 現物 1 銘柄 * * 型 識別番号 製造日 名称 1 0..1 取引 * * * 在庫 1 1 1 単位在庫 記入行 * * 取引番号 発生日 移動日 時点 2..* 安全在庫量 数量 /数量 * * 期首在庫 数量 制約: 関連づく記入行は取引ご とに予定か実績かどちらか 場所 * 実績 予定 名称 位置 * /残量 移動日 制約: 出庫取引の場合は,その時点で保有する 現物のうち,製造日は最古ものであること 倉庫 小売店 メーカー
銘柄別・ 所在別の在庫 安全在庫量 11. モデリング 11.3 酒屋の在庫問題(21) • 揺さぶり • 要約在庫を見る 量 制約 移動先は同一のパーティ 在庫 1 * /在庫量 時点 {階層} 出庫 入庫 在庫調整 現物 1 銘柄 * * 要素 導出ルール 型 識別番号 製造日 名称 要約在庫 1 0..1 /在庫量 * 取引 * 1 1 記入行 在庫量 1 * * 取引番号 発生日 時点 2..* 数量 /数量 * * 期首在庫量 制約: 関連づく記入行は取引ご とに予定か実績かどちらか 数量 パーティ * 実績 予定 名称 位置 * /残量 移動日 倉庫 小売店 メーカー