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