47070 オブジェクト指向モデリング [4] 2001年10月22日 3.オブジェクトの概念とUML オブジェクト指向とは何か オブジェクト指向パラダイム 認識世界(UoD)は「オブジェクト」たちの相互作用で成立し ているという想定に基づいてソフトウェアを作成する オブジェクトとは メッセージを受け取って反応する(behavior) 反応の結果はオブジェクトの内部状態(state)に依存する 個々のオブジェクトが識別される(identity) 擬人化されたデータ resetTimeTo(07:43) OK reportTime() A 13:18 07:43 B 16:47 It’s 16:47 2 3.オブジェクトの概念とUML UML 表記法 関心 観点 静的側面 概念レベル 仕様レベル 実装レベル 図の要素 モデル管理 汎用拡張機構 機能側面 ユースケース図 クラス図 オブジェクト図 協調図 シーケンス図 動的側面 物理側面 ステート チャート 活動図 コンポーネント図 図 配置図 ノート,型-インスタンスの対応 パッケージ 制約と注釈,ステレオタイプ 3 質問カードから 設計の際にデザインパターンをどう考慮するか 使えるときには使う パターンランゲージ force リファクタリングがいい例 UMLが日本で成功する方向性は ベンダだけでなく,ユーザが使い始めること オブジェクト指向による‘情報システム’の具体的な イメージをjavaのコードやデモで示してほしい いずれやらせていただきます 4 従業員タイプ 1 * 従業員 従業員 従業員タイプ * 従業員タイプ +型 1 「クラスによる タイプコードの置き換え」 技術職タイプ 営業職タイプ 実装 * 従業員 技術職 1 営業職 概念モデル 従業員 タイプ 「サブクラスによる タイプコードの置き換え」 「State/Strategyによる タイプコードの置き換え」 「フィールドによる サブクラスの置き換え」 従業員 技術職 営業職 5 オブジェクト指向モデリング 第4回 静的モデル1 4.1 型の認識 4.2 関連 4.3 属性と操作 4.4 汎化関係 テキスト 第5章 6 静的モデル1 4.1 型の認識 概念レベル 概念 名前を持つ 指し示されるもの 指し示すもの 集合 境界を持つ 定義 属性 要素 分類 型 三角形のなかま 四角形のなかま 三角形のなかま 四角形のなかま 7 静的モデル1 4.1 型の認識 型の表記 UMLクラス図で型図を表記する 型の名前 型が持つ属性 型が持つ操作 制約: 角が3つあること... <<type>> 三角形のなかま ∠ABCの角度 ∠BCAの角度 辺ABの長さ 辺BCの長さ 色 8 静的モデル1 4.1 型の認識 型とクラス クラスは型の実装形態の1つ 型とインスタンスの関係 「犬」と「ポチ」 相対的関係 「ほ乳類」と「犬」 集合 要素 型 クラス インスタンス オブジェクト 関連 ユースケース リンク シナリオ 9 静的モデル1 4.1 型の認識 型の識別 識別された型の相互作用で要求が完結 将来の変更にも耐えられる一般性を持つ 名詞抽出法(データ駆動) 56ページ システムに関する記述から名詞(句)を抽出 妥当な概念を残すように「ふるい」にかける 冗長,あいまい,イベント,操作,メタ,スコープ(,属性) CRCカード(責任駆動) 67ページ Classes - Responsibilities - Collaborators ユースケースをやってみる(ロールプレイ) クラス(型)名 責任 協調相手 必要な責任を見出して,クラスに割り当てる インスタンスから 型を見出す 10 静的モデル1 4.1 型の認識 型になるもの 目に見える「もの」:本,商品 役割(ロール):従業員,顧客 事象:受注,退会 相互作用:ミーティング,交差点? 属性:高さ,灰色さ,時点,名前,住所 属性か型かは非常に微妙 基本型 UoD,場面,視点に依存 なぜ,ミシン問題で,針,上糸,下糸,布の4つを取り上げ たのか 11 静的モデル1 4.2 関連 関連(association) ソースを主語とし,関 連名を述語として読 インスタンス間の対応関係の集合 めるように... 関連の方向 ソース → ターゲット 本 is a copy of 0..* 1..1 著書 実践ファンクションポイント法 1番め 2番め リファクタリング 3番め UMLを使って (図書館にある)本 著書 12 静的モデル1 4.2 関連 多重度(multiplicity) インスタンスどうしの対応(リンク)数 対応の方向 0,1,* 最小値..最大値 本 is a copy of 0..* 1..1 著書 実践ファンクションポイント法 1番め 2番め リファクタリング 3番め UMLを使って (図書館にある)本 著書 13 静的モデル1 4.2 関連 ソースのある1つのインスタンスからリンクされるターゲット のインスタンス数 0..* 本 著書 1..1 実践ファンクションポイント法 1番め 2番め リファクタリング 3番め UMLを使って (図書館にある)本 著書 14 静的モデル1 4.2 関連 演習 問 「学生」は最多で6つまでの「授業科目」を履修でき,各 「授業科目」には最多で25人の「学生」を登録できる。 学生 授業科目 解答 問 このような関連の実装方法は? 15 静的モデル1 4.2 関連 演習 多重度を指定してください。 (生物学的親子関係に限定) 親 子 解答 16 静的モデル1 4.2 関連 宿題 兄弟(性別問わず)関係はどう表現する? 0..* 親 人 子 0..* 17 静的モデル1 4.3 属性と操作 属性 理解に必要な属性 本 何番め 購入日 借りた日 返却予定日 : 著書 is a copy of 0..* 1..1 書名 著者 訳者 発行日 ISBN 貸出可能数 : 18 静的モデル1 4.3 属性と操作 操作 責任の割当てを指定(暗示的仕様) 本 何番め 購入日 借りた日 返却予定日 : is貸出可能() 借りる() : 著書 is a copy of 0..* 1..1 書名 著者 訳者 発行日 ISBN 貸出可能数 : 貸出実施() ユースケースを 実現するために 必要な操作 19 静的モデル1 4.3 属性と操作 操作の割当て 著書 a:会員 b:本 c:著書 :利用者 is超過() 借りる(b) is貸出可能() 借りる() 書名 著者 訳者 発行日 ISBN 貸出可能数 : 貸出実施() 貸出実施() 1..1 is a copy of 0..* 本 会員 氏名 住所 : is超過() 借りる(本) : borrows/returns 1..1 何番め 購入日 1..* 借りた日 返却予定日 : is貸出可能() 借りる() : 20 静的モデル1 4.3 属性と操作 操作の割当て d:貸出 a:会員 c:著書 b:本 利用者 著書 書名 著者 訳者 発行日 ISBN /貸出可能数 : new 1..1 is a copy of 0..* 会員 氏名 住所 : is超過() : 貸出 本 借りた日 0..* 返却予定日 1..1 : 借りる() 返却() : 0..* 何番め 購入日 1..1 : is貸出可能() : 21 静的モデル1 4.4 汎化関係 汎化 概念レベル 顧客 部分集合 責任の特化 顧客 実装レベル 属性,操作の置き換え クラスの拡張 重要顧客 重要顧客 Aさん 複素数 実数 実数 複素数 Aさんは「重要顧客」である Aさんは「顧客」である 「重要顧客」は「顧客」である 22
© Copyright 2025 ExpyDoc