47070 オブジェクト指向モデリング [10] 2001年12月18日 オブジェクト指向モデリング 前回 動的モデル2 9.1 ユースケースを書いてみよう 9.2 コラボレーション図 9.3 シーケンス図 9.4 状態図 9.5 アクティビティ図 2 動的モデル2 相互作用図 著書 UsingUML: 著書 :本の借り手 2.1:borrowed borrow(#1234) 1 その会員: 会員 の印刷物である 0..* 会員 借りる/返却する 0..* 0..1 責任の配置 あるユースケース 本 #1234:本 2:borrow 1:okToBorrow :本の借り手 その会員: 会員 #1234:本 UsingUML: 著書 コラボレーション図 オブジェクト図 メッセージ シーケンス図 通信 タイミング borrow(#1234) 1:okToBorrow( ) 2:borrow( ) 2.1:borrowed( ) 3 動的モデル2 状態図 状態 遷移 貸出し中 ステートチャート図 あるオブジェクトの状態 遷移 イベント[ガード]/アクション 開始状態、終了状態 アクティビティ図 アクティビティ 制御の流れ 制御構造 split,join イベント return() 書架にある borrow() 会員 司書 [借りる人] 書架に本を 見つける [返却する人] 並んで待つ [返却する] [借りる] 返却を記録 レーン アクタ 本を書架に 戻す 貸出しを記録 次の利用者 に備える 4 オブジェクト指向モデリング 第10回 モデル図の理解 10.1 責任関係 10.2 勘定 10.3 生産管理システム 10.4 素材発注システム すべて 教科書外 5 モデル図の理解 10.1 責任関係(1) 責任関係(accountability)パターン Fowler, M., Analysis Patterns 明示的なレベルを持った組織 事業部 1 * 地域 1 部門 * 1 営業所 * 売上 変更に弱い 操作(メソッド)の重複,類似の属性 オブジェクト(インスタンス)図 コーヒー:事 業部 首都圏: 地域 神奈川: 部門 藤沢:営 業所 東京:部 門 川崎:営 業所 6 パターンランゲージ Christopher Alexander よい建築がもつ性質 無名の質(Quality Without A Name) 生き生きと生きること(alive) パターンの重層 パターンの記述 パターン名 背景,問題意識 解決策 フォース(有効である状況,他のパターンとの関係) 体系づけられたパターンの順序 ソフトウェアにおけるパターン 213~216ページ デザインパターン(GoF) アナリシスパターン(Fowler) アーキテクチャパターン(POSA) 7 モデル図の理解 10.1 責任関係(2) このインスタンス 図はどうなる? 階層関係を持つ組織 類似の操作,属性はスーパタイプに持つ <<階層>> 親 組織 制約: 親は持たない 事業部 0..1 子 制約: 親は部門 * 地域 制約: 親は事業部 部門 営業所 制約: 親は地域 制約の変更が煩わしい マトリックス組織にはどう対応する? 8 コーヒー:事 親 業部 子 首都圏: 地域 親 子 神奈川: 部門 東京:部 門 親 子 藤沢:営 業所 川崎:営 業所 9 モデル図の理解 10.1 責任関係(3) このインスタンス 図はどうなる? 2系統の階層 <<階層>> <<階層>> * 子営業 * 組織 親営業 * * 事業部 制約: 地域 制約: 親サービス 子サービス 部門 制約: 営業所 サービス地域 サービス部門 サービスセンタ サービスチーム 制約: 制約: 親営業は部門 制約: 制約: 制約: 親サービスは サービスセンタ, 親営業は営業所 制約変更の煩わしさが2倍に 10 コーヒー:事 業部 首都圏: 地域 東京:部 門 首都圏:サ ービス地域 神奈川: 部門 川崎:営 業所 藤沢:営 業所 神奈川:サ ービス部門 横浜:サー ビスセンタ 親営業 子営業 東京:サー ビス部門 藤沢:サー ビスセンタ 親サービス 子サービス 川崎:サー ビスチーム 藤沢:サー ビスチーム 11 モデル図の理解 10.1 責任関係(4) このインスタンス 図はどうなる? 関連型の使用 インスタンス: 営業組織 サービス組織 組織構造型 制約: 営業所の親は部 門…. サービスチームの 親は営業所および サービスセンタ…. 型1 * 組織構造 * 親 1 * 組織 子 1 * 1 有効期間 期間 事業部 地域 部門 営業所 サービス チーム 組織構造の制約は,組織構造の変化に敏感 12 神奈川: 部門 神奈川:サ ービス部門 親 営業組織: 組織構造型 :組織構 造 :組織構 造 :組織構 造 :組織構 造 子 川崎:営 業所 藤沢:営 業所 横浜:サー ビスセンタ 藤沢:サー ビスセンタ :組織構 造 :組織構 造 :組織構 造 サービス組織 :組織構造型 親 :組織構 造 :期間 2001/10/1 _ 2002/1/22 子 川崎:サー ビスチーム 藤沢:サー ビスチーム 13 モデル図の理解 10.1 責任関係(5) このインスタンス 図はどうなる? 「組織構造型」と「ルール」 組織構造型 * 1 ルール 型1 * 組織構造 * 親 1 * 組織 子 1 * 1 有効期間 期間 事業部 地域 部門 営業所 サービス チーム 組織構造型ごとのルール 組織の変化に弱い 14 営業所の親は部門, 部門の親は地域,... 神奈川: 部門 営業組織型 :ルール 神奈川:サ ービス部門 サービスチームの親 は営業所およびサー ビスセンタ,サービス センタの親は,…. 営業組織型 :ルール 親 営業組織: 組織構造型 :組織構 造 :組織構 造 :組織構 造 :組織構 造 子 川崎:営 業所 藤沢:営 業所 横浜:サー ビスセンタ 藤沢:サー ビスセンタ :組織構 造 :組織構 造 :組織構 造 サービス組織 :組織構造型 親 :組織構 造 :期間 2001/10/1 _ 2002/1/22 子 川崎:サー ビスチーム 藤沢:サー ビスチーム 15 モデル図の理解 10.1 責任関係(6) 組織階層を「責任関係」として一般化 責任関係型 型 1 * * 責任関係 依頼者 1 * 実行者 * パーティ 1 1 有効期限 期間 人 組織 依頼者→実行者 Customer-Performerの関係 16 モデル図の理解 10.1 責任関係(7) このインスタンス 図はどうなる? 知識レベルと操作レベル パワータイプ(ベキ型) 操作レベルの型の制約を記述 鏡像関係 責任関係型 inv: collx:set(責任関係)=self.the責任関係 collX->forALL( x | x.型.依頼者->includes(x.依頼者.型) and x.型.実行者->includes(x.実行者.型)) 作業 * 依頼者 * 実行者 1..* 型 1 * * * * 依頼者 1 * * 型 1 知識レベル 責任関係 * パーティ型 1..* 操作レベル パーティ 実行者 1 1 有効期限 期間 人 組織 17 シナリオ 同意:責任関係 患者:鈴木一郎は医師:山田太郎との間で,2001年12月18日に内視鏡検 査を受けることについて同意した 同意:責任 関係型 型 依頼者 患者 :パーティ型 医師 実行者 :パーティ型 型 型 内視鏡検 査:作業 :責任関 係 :期間 2001/12/18 依頼者 鈴木一郎 :パーティ 実行者 山田太郎 :パーティ 18 モデル図の理解 10.2 勘定(1) このインスタンス 図はどうなる? 移動の記録 勘定(account) 多肢トランザクション 勘定 /残高 : 量 エントリ 1 * 数量 : 量 2..* 1 トランザクション 実施日:日 <<business rule>> inv: self.エントリ.数量->sum = 0 19 シナリオ 航空券の購入:多肢トランザクション 2001年5月1日,航空券を買うためにA航空に45,000円をクレジットカー ドで払った。2001年5月31日,当座預金からクレジット勘定へ,それを埋 合わせるトランザクションを作成した :エントリ クレジット:勘定 -45000円 :エントリ :トランザクション 2001年5月1日 +45000円 A航空:勘定 :エントリ -45000円 当座預金:勘定 :エントリ :トランザクション 2001年5月31日 +45000円 20 モデル図の理解 10.2 勘定(2) このインスタンス 図はどうなる? 移動の記録 二肢トランザクション 導出: 残高=self.~繰入.the量->sum self.~払出.the量->sum 残高 1 量 1 {導出} * 勘定 * 1 繰入 * 払出 * 1 トランザクション * 時点 1 21 シナリオ 航空券の購入:二肢トランザクション 2001年5月1日,航空券を買うためにA航空に45,000円をクレジットカー ドで払った。2001年5月31日,当座預金からクレジット勘定へ,それを埋 合わせるトランザクションを作成した :量 :量 残高 45000円 :量 残高 45000円 クレジット:勘定 払出 :トランザクション :時点 繰入 2001年5月1日 A航空:勘定 繰入 :トランザクション :量 45000円 残高 45000円 当座預金:勘定 払出 :量 45000円 :時点 2001年5月31日 22 モデル図の理解 10.2 勘定(3) このインスタンス 図はどうなる? 要約 ロールアップ {抽象} 構成要素 勘定 * / 残高 : 量 {階層} /対象エントリ * 0..1 要約勘定 対象エントリ 明細勘定 1 * エントリ 数量 : 量 トランザクション 2..* 1 inv: /対象エントリ=self.対象エントリ inv: /対象エントリ=self.構成要素./対象エントリ 23 旅費交通費:要約勘定 構成要素 航空旅費:要約勘定 構成要素 A航空:明細勘定 /対象エントリ B航空:明細勘定 クレジット:明細勘定 /対象エントリ 対象エントリ :エントリ :エントリ :エントリ +45000円 +66000円 +128000円 :トランザクション 2001年5月1日 :トランザクション 2001年1月31日 :トランザクション 2001年11月21日 :エントリ -45000円 24 モデル図の理解 10.3 生産管理システム 顧客注文 顧客オーダ番号 顧客名称 * 数量 希望納期 受注日時 品目群 品目群名 1..1 1 0..* 座席予約 1..* 生産計画 1..* 製造番号 出来数量 /製造納期 /実績原価 pegging <<導出>> 対象 * /品目 /製造リードタイム 最終製品 * 用途使用条件種 0..* /構成部品 (from 技術データ管理) 1 1 用途使用条件種 1 1 * 用途使用条件値 (from 技術データ管理) 未定 * * /変更可能用途使用条件 用途使用条件種 1..* 製造方法 / 着手日 / 完了日 / 加工原価 ロットサイズ /加工機能 加工機能名 加工時間 工順 * 着手日 完了日 {ordered} 加工データ * 1 1 群加工機能 加工資源 投入資源 投入数量 生産品目 * 生産数量 * 1 assembly 投入品目 * 投入数量 * 1 component * 1 * 部品調達計画 制約: 最終製品の完 成時に未定であっ てはならない 部品期首在庫 部品実在庫量 * 期首 : 日付 1 指定日 1 /在庫 / 部品有効在庫量 0..1 1 <<動的>> 加工終了 加工中 未着手 内作品 /製造原価 調達品 調達原価 加工資源 単位原価 加工データ 25 モデル図の理解 10.4 素材発注システム アクタ : 在庫調整 create 移動元_ : エントリ create 移動元 : 在庫単位 移動先_ : エントリ 移動先 : 在庫単位 findAccount if not found createAccount create findAccount 場所 if not found createAccount 製品メーカ * 素材メーカ 発注 * 素材 * /在庫単位 * * * * * * 進捗 SKU /エントリ /トランザクション 2..* * /在庫 出庫 入庫 移動 在庫調整 <<動的>> 染色 裁断 完成 26
© Copyright 2024 ExpyDoc