オブジェクト指向モデリング [10] 2003年12月9日 10. 状態モデル 10.2 活動図(1) 活動図 状態図の拡張 活動(activity) 遷移 同期バー 判断 開始マーカ 終了マーカ レーン(アクタ) 会員 [書名が わかっている] [書名がわからない] 文献を検索する 書架に本を見つける 図書館の職員に貸出を申し出る 本 [帯出許可前] 貸出の申し出を受ける 貸出を記録する 制御構造を書く ワークフロー図 図書館の職員 本を受け取って帯出する 本 [帯出許可後] 本の帯出許可をする split と join loop オブジェクトフロー 2 10. 状態モデル 10.2 活動図(6) ATOのモデル Benetonのビジネスモデル 製品在庫最小化(中間製品での在庫) 染色を最終工程に(オプションを最終工程で実装する) 売れ行き, 注文 市場に対する 情報,知識, 予測 《physical》 材料,部品 《process》 《process》 販売計画 販売 発注 《physical》 製品 [出荷済] 《供給》 《process》 《process》 生産 染色 《physical》 最終製品 《physical》 中間製品 3 11. 静的モデル4 11.5 概念レベルのモデリング 販売の記録 導出: /金額 =the商品.単価×数量 商品 1 * 商品名 単価 明細 数量 /金額 導出: /合計金額 =Σthe明細.金額 販売 * 販売日時 /合計金額 * 1 客タイプ 性別 年齢層 * インスタンス: ナックバーガー ビッグナック ナックシェーク : 担当者 担当者 氏名 /客数 氏名 /客数 * まとめ 販売日 /合計金額 {導出} * 1 * 商品 商品名 単価 1 * 販売 数量 /金額 * 1 客タイプ 4 11. 静的モデル4 11.5 概念レベルのモデリング 具体例を考えて :商品 商品名= ナックバーガー 単価=90 :商品 商品名= ナックポテトS 単価=150 :商品 商品名= ナックシェーク 単価=200 :明細 数量=2 /金額=180 :販売 販売日=031205 /合計金額=530 1:客タイプ 性別=不明 年齢層=40上 :明細 数量=1 /金額=150 :明細 数量=1 /金額=200 :明細 数量=1 /金額=90 :担当者 氏名=山県有朋 /客数=130 :販売 販売日=031206 /合計金額=290 2:客タイプ 性別=女 年齢層=20 :明細 数量=1 /金額=200 5 オブジェクト指向モデリング シラバス 授業計画 回 1 2 3 4 5 6 7 8 9 10 11 12 13 月日 9月 30日 10月 7日 10月14日 10月21日 10月28日 11月 4日 11月11日 11月18日 12月 2日 12月 9日 12月16日 1月13日 1月20日 内容 オリエンテーション:モデルとは何か。 モデリング言語:UMLの概要 静的モデル1:概念とクラス 静的モデル2:関連 静的モデル3:オブジェクト図 静的モデル3:オブジェクト図(続き),モデリング 機能モデル1:ユースケース,シナリオ 機能モデル2:要求抽出,協調図,シーケンス図,状態モデル:状態図 機能モデル2:活動図,静的モデル4:ユースケースに基づくモデリング 静的モデル4:モデルの揺さぶり,実装レベル:実装モデルとプログラム モデリング1:モデル図の理解:アナリシスパターン,事例 モデリング2:モデル図の作成,モデルの評価基準 モデリング3:例題によるモデル図の作成 6 6.高度な関連 6.6 型モデルの演習(2) 手順 基本定義から基本課題を発明 する 基本課題からユース ケースを発明する ワークフローを書い て,隠れたユース ケースを洗い出す 初期の概念モデルを書く モデルを揺さぶる 疑問点を考える 本質的な概念モデルを導く 7 11. 静的モデル4 11.6 揺さぶり(1) モデルの洗練 変更に強いモデルにする 本質的なモデルを追求する 要求のエスカレーション 日別の商品別売上げを得る カテゴリ別の商品別売上げを得る 作り置きがあれば そこから出庫する 店長 日別の利益額を得る 作り置きがあればそこから出庫する 窓口係 調理係 [解答例] 商品ごとの調理時刻を記録する 8 11. 静的モデル4 11.6 揺さぶり(2) ある日の商品別売上合計を計算する 日別の「売上」型を設ける 日別の商品別売上げを得る 店長 9 11. 静的モデル4 11.6 揺さぶり(3) ある日の商品別売上合計を計算する 日別の「売上」型を設ける 「売上」は導出型(必要のつど生成し,永続化しない) 基本型としての「日」 担当者 導出: the./売上.売上金額は,the明細.the販売とナビ ゲートして得られる販売オブジェクトの集合のうち, その販売日が,the/売上.the日.日と一致するものに ついて,金額を合計して得る 氏名 /客数 * 商品 1 商品名 単価 * 明細 数量 /金額 * 販売 1 販売日 /合計金額 1 売上金額 1 客タイプ 性別 年齢層 * 販売日 1 * /売上 * * 日 1 日 10 11. 静的モデル4 11.6 揺さぶり(4) オブジェクト図 :日 :/売上 :商品 日=031205 売上金額=180 商品名= ナックバーガ 単価=90 :日 :/売上 :商品 日=031206 売上金額=90 商品名= ナックポテトS 単価=150 :/売上 売上金額= :商品 商品名= ナックシェーク 単価=200 :明細 数量=2 /金額=180 :販売 販売日=031205 /合計金額=530 :明細 数量=1 /金額=150 :明細 数量=1 /金額=200 :担当者 氏名=山県有朋 /客数=130 :/売上 売上金額= :明細 数量=1 /金額=90 :販売 販売日=031206 /合計金額=290 :明細 数量=1 /金額=200 11 11. 静的モデル4 11.6 揺さぶり(5) ある日の商品別売上をカテゴリ別に集計する カテゴリ別の商品別売上げを得る 店長 12 11. 静的モデル4 11.6 揺さぶり(6) カテゴリ別売上げを集計する 1 メソッド: the./カテゴリ別売上./売上金額は,the明細.the販 売とナビゲートして得られる販売オブジェクトの集 合のうち,the明細.the商品.theカテゴリがthe/カテ ゴリ別売上.theカテゴリと一致するものについて, 金額を合計して得る カテゴリ 名称 売上集計() 1 * /カテゴリ別売上 売上金額 * * 1 商品 商品名 単価 1 * 明細 数量 /金額 * 1 販売 販売日 /合計金額 * 1 客タイプ 性別 年齢層 1 * 日 日 1 * /売上 売上金額 13 11. 静的モデル4 11.6 揺さぶり(7) 作りおきがあれば,そこから出庫する 窓口のサービス時間を短縮して, 客の回転率を上げたい 作り置きがあれば そこから出庫する 窓口係 14 11. 静的モデル4 11.6 揺さぶり(8) 作りおきがあれば,そこから出庫する カテゴリ 導出: the/在庫.在庫数量は,新たな販売オブ ジェクトが生成されたときに,以前の在庫 値からthe明細.数量を差し引いたもの 客タイプ 名称 性別 年齢層 1 1 * /在庫 在庫数量 * 1 商品 商品名 単価 * 1 * 明細 数量 /金額 * * 1 販売 販売日 /合計金額 1 * 日 日 1 /売上 売上金額 15 11. 静的モデル4 11.6 揺さぶり(9) 現時点での在庫がわかるように 入庫の情報を加える 調理係 商品ごとの調理時刻を記録する 16 11. 静的モデル4 11.6 揺さぶり(10) 現時点での在庫がわかるように 入庫の情報を加える 導出: この在庫は,新たな販売オブジェクトが 生成されたときに,以前の在庫値からthe 商品.the明細.数量を差し引いたもの,ま た,製造オブジェクトがときに,以前の在 庫数量にthe製造.数量を加えたもの カテゴリ 客タイプ 名称 性別 年齢層 1 1 * 日時 日 時刻 1 * /在庫 在庫数量 *1 1 商品 1 商品名 単価 1 * 明細 数量 /金額 * * 1 販売 販売日時 /合計金額 1 * 日 日 1 * /売上 /売上金額 製造明細 * 数量 * 1 製造 製造日時 17 11. 静的モデル4 11.6 揺さぶり(11) 作りおき分は10分経っても売れなければ捨てる 現物の管理 期限の管理 販売予測 賞味期間を越えた現物を特定する 調理係 18 11. 静的モデル4 11.6 揺さぶり(12) 作りおき分は10分経っても売れなければ捨てる 現物の管理 期限の管理 販売予測 カテゴリ 客タイプ この関連が導出されるので, the商品.the/在庫の導出 ルールはそのままでよい 名称 性別 年齢層 1 1 * /在庫 1 /在庫数量 1 商品 1 {導出} * 商品名 単価 1 1 * 識別番号 /賞味期限 数量 * 1 /金額 {導出} * * 1 製造ロット 数量 製造時刻 1 販売 販売日 /合計金額 廃棄は,マイナス数 量で表すことで,在 庫のつじつまを合わ せる 1 製造 * 現物 導出: 賞味期限は,the製造の 製造日時+10分 明細 * * 製造日 どれを廃棄するかを見定めるため,1つひと つの商品を区別する必要が出てきた 19 11. 静的モデル4 11.6 揺さぶり(13) 「現物」を追跡する(オブジェクト図) :製造 :製造ロット :現物 :商品 製造日=031205 数量=2 製造時刻=11:10 識別番号=002 賞味期限=11:20 商品名= ナックバーガ 単価=90 :現物 :商品 識別番号=003 賞味期限=11:20 商品名= ナックポテトS 単価=150 :製造 :製造ロット :現物 製造日=031205 数量=2 製造時刻=12:00 識別番号=004 賞味期限=12:10 :商品 商品名= ナックシェーク 単価=200 :明細 数量=2 /金額=180 :販売 販売日=031205 /合計金額=530 :明細 数量=1 /金額=150 :明細 数量=1 /金額=200 :現物 識別番号=005 賞味期限=12:10 :明細 数量=1 /金額=90 :販売 販売日=031206 /合計金額=290 :明細 数量=1 /金額=200 20 11. 静的モデル4 11.6 揺さぶり(14) 利益(粗利)は売上高から製造原価を引いたもの 店長 日別の利益額を得る 21 11. 静的モデル4 11.6 揺さぶり(15) 利益(粗利)は売上高から製造原価を引いたもの 導出: the/売上げ.製造原価は,the製造明細.the 製造とナビゲートして得られる製造オブ ジェクトの集合のうち,それぞれの製造日 が,the/売上げの日と一致するものについ て,the製造明細.数量を合計したものに self.原価を乗じて得る カテゴリ 客タイプ 名称 性別 年齢層 1 1 * 日 日 商品 /売上 1 * /売上金額 /製造原価 /利益 * 1 {導出} * 商品名 単価 原価 1 1 導出: 利益=売上金額-製造原価 数量 /金額 {導出} * 1 販売 販売日時 /合計金額 廃棄をマイナス数量で表す ことにすると,製造原価が減 ることになって,おかしい * * 現物 ロット番号 /賞味期限 明細 * * 1 製造明細 数量 製造日時 * 1 製造 製造日時 22 11. 静的モデル4 11.6 揺さぶり(16) 汎化も使って概念を整理 導出: the/売上げ.製造原価は,the明細.the取引 とナビゲートして得られる取引オブジェクト の集合のうち,それぞれのサブタイプが 「製造」または「廃棄」で,その日時の日が, the/売上げ.日と一致するものについて,the 明細.数量を合計したものにこの原価を乗 じて得る カテゴリ 名称 1 * 商品 /売上 /売上金額 /製造原価 /利益 1 1 商品名 日 単価 原価 {導出} * 現物 限定子を使ってみた ロット番号 /賞味期限 明細 数量 /金額 取引 1 * 日時 1 1 消費税はどうす る * * 廃棄 製造 販売 * 客タイプ 性別 年齢層 1 23
© Copyright 2024 ExpyDoc