オブジェクト指向モデリング [4] 2003年10月21日 3. 概念とクラス 3.4 概念と型 概念を「型」に対応づける 「型」を「クラス」に対応づける 型:構造化された概念 クラス:プログラムを構成するモジュールの単位 概念をエンティティセットに 対応づける エンティティセットをRDBの 「表」に対応づける オブジェクト指向モデリング 児玉公信 生産管理システム入門 小泉淳之介 田口洋介 中山美子 「学生」の集合 学生 氏名 学部 : 0..* 問題発見と問題解決 履修する 「授業科目」の集合 履修する 授業科目 0..* 名称 教員 : 2 3. 概念とクラス 3.4 概念と型 「型」とは何か Parnus(1976) データ群(変数)を共通の性質でくくり出したもの Spec-types Rep-types Parm-types Variant-types 提供する操作の仕様が共通(i.e. インタフェース) データ表現が共通(e.g. 複素数と2次元表現) データの側面をパラメタ化したもの(i.e. マクロ,テンプレート) データのいくつかの側面が共通(i.e. スーパタイプ) これらの混合 実装を抽象化したデータ構造 インタフェース(データ操作の外部表現) 内部属性(データ表現) 操作(データ操作) データ型は「型」の一種 「型」の具体的実装例がクラス 3 4. 関連 4.1 関連と多重度(2) 多重度(multiplicity) インスタンスどうしの対応(リンク)数 ターゲットの近傍に表記 0,1,* 本 最小数..最大数 is a copy of 0..* 1..1 書名 実践ファンクションポイント法 1番め 2番め リファクタリング 3番め UMLを使って 本 書名 4 オブジェクト指向モデリング シラバス 授業計画 回 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:オブジェクト図 静的モデル4:高度な関連 機能モデル1:ユースケース 機能モデル2:ユースケース記述,シナリオ 動的モデル:協調図,シーケンス図,状態図,活動図 モデル図の理解:アナリシスパターン,事例 モデリング1:モデル図の作成,モデルの評価基準 モデリング2:例題によるユースケース記述 モデリング3:例題によるモデル図の作成 5 問題解決からビジネスモデリングへ 4. 関連 4.1 関連と多重度 4.2 ロール 4.3 再帰関連 4.4 汎化関連 4.5 集約関連 4.6 補足的な関連 6 4. 関連 4.2 関連と多重度(6) 演習3 次の多重度を指定してください。 親 子 解答例 7 4. 関連 4.2 ロール 関係の中で演じられる役割 関連ごとに1つのロールを持つ ロール名 ターゲットの近傍に表記 ロールが自明のときは省略できる 問題領域における概 念数を減らす効用 概念とロール 本質的概念 関係における概念 人 社員 勤務先 会社 生まれたときからそうだったの? ロールを型にしていいか 社員 所属先 組織 問題領域を限定すれば 製品 商品 取引 顧客 会社 8 4. 関連 4.3 再帰関連(1) 上司と部下の関係 上司の上司は 部下の部下は 上司の 上司 1 1..* 上司 1 1..* 部下 1 1..* 部下の 部下 上司,部下は「社員」のロール 社員 0..1 1..* 上司 部下 社員 同じ型をまとめて 0..1 上司 1..* 部下 社員 9 4. 関連 4.3 再帰関連(2) 再帰関連のイメージ 上司 上司 0..1 上司 1..* 部下 社員 部下 上司 小泉淳之介 福田康志 部下 川口淳子 部下 部下 竹中半平 亀井勝一 上司 部下 石坂洋二 「社員」の集合 10 4. 関連 4.4 汎化関連(1) 汎化 部分集合 責務の特化 会員 会員 特別会員 特別会員 List 複素数 実数 AddressBook 実数 複素数 AddressBook List 11 4. 関連 4.4 汎化関連(2) 汎化 顧客 多重分類 動的分類 区画 一般 個人 重要 制約 完全区画 不完全区画 {完全} 個人顧客 法人 顧客 弁別子 (discriminator) 個人顧客 法人顧客 重要度 《多重》 《動的》 ステレオタイプ 重要顧客 一般顧客 12 4. 関連 4.4 汎化関連(3) 動的分類の意味 オブジェクトの状態を部分集合と見る 状態遷移 1つのオブジェクトが集合間を渡り歩く クラス図では,遷移の方向は記述できない 顧客 重要度 一般顧客 《動的》 顧客 一般 重要 重要顧客 13 4. 関連 4.4 汎化関連(4) 汎化の記法 {完全} 個人顧客 顧客 個人顧客 法人顧客 重要度 《多重》 《動的》 {完全} 個人顧客 顧客 重要顧客 個人顧客 法人顧客 一般顧客 重要度 重要顧客 《多重》 《動的》 一般顧客 14 4. 関連 4.4 汎化関連(5) 実装レベルでの対応 多重分類 単一分類に置き換える サブクラスではなく,フラグなどの属性で実装する 動的分類 サブクラスではなく,フラグなどの属性で実装する 顧客 顧客 重要法人 重要個人 一般法人 重要度区分 法人区分 一般個人 15 4. 関連 4.5 集約関連 集約 部分-全体関係 関連名(is a part of)を省略 概念レベルでは 区別をしない 合成集約 強い所有 弱いエンティティ(weak entity) 優等コース ボード 1..* 1 6..* 9 授業科目 マス 16 4. 関連 4.6 補足的な関連(1) ナビゲーション可能性(navigability)の明示 双方向関連 単方向関連 仕様を限定する 顧客 顧客 請求先 1 納入先 1 請求先 1 納入先 1 * 注文 * 注文 * 1 商品 * * 1 商品 * 17 4. 関連 4.6 補足的な関連(2) 限定子つき関連(qualified association) ○× ×○○ 多重度を1にする 限定子によって一意になるという制約を示す 辞書などによる実装を暗示 盤 1 1 盤 位置 9 マス 1 マス * 1 位置 行 列 行:{1,2,3} 列:{1,2,3} Class ボード { public マス getSquareMark(int 行, int 列); : } 18 4. 関連 4.6 補足的な関連(3) 導出関連(derived association) 計算で導き出せる関連 冗長 理解しやすさ 「/」でマーク UML 導出型 導出属性 導出ロール FP 「書名」型 * 書名 1 /borrows 2 4 * 会員 borrows * 3 本 「会員」型 「本」型 19
© Copyright 2025 ExpyDoc