オブジェクト指向モデリング [5] 2003年10月28日 4. 関連 4.2 ロール 関係の中で演じられる役割 関連ごとに1つのロールを持つ ロール名 ターゲットの近傍に表記 ロールが自明のときは省略できる 問題領域における概 念数を減らす効用 概念とロール 本質的概念 関係における概念 人 社員 勤務先 会社 生まれたときからそうだったの? ロールを型にしていいか 社員 所属先 組織 問題領域を限定すれば 製品 商品 取引 顧客 会社 2 4. 関連 4.4 汎化関連(2) 顧客 個人 汎化(generalization) 特化(specialization) 分類(classification) 一般 重要 多重分類 動的分類 法人 区画(partition) 完全区画 不完全区画 弁別子 (discriminator) 制約 {完全} 個人顧客 スーパータイプ 顧客 汎化 個人顧客 法人顧客 重要度 《多重》 《動的》 ステレオタイプ 重要顧客 サブタイプ 特化 一般顧客 3 4. 関連 4.5 集約関連 集約(aggregation) 概念レベルでは 区別をしない 部分-全体関係 関連名(is a part of)を省略 合成集約(composition) has a 強い所有 弱いエンティティ(weak entity) 製品 is a part of 1..* 部品 6..* 「全体」のインスタンスが消滅すると「部分」のインスタンスも消滅 製品 1..* 6..* 部品 製品 1..* 6..* 品目 製品 1 9 部品 部品 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 問題解決からビジネスモデリングへ 5. オブジェクト図 5.1 インスタンス 5.2 オブジェクト図 6 5. オブジェクト図 5.1 インスタンス 型とインスタンス 型をクラスで表記したように インスタンスをオブジェクトで表記 : 書名 インスタンス識別:型名 属性名=属性値 : : 実践ファンクションポイント法 タイトル=実践ファンク ションポイント法 著者=児玉公信 : 書名 タイトル=リファクタリング リファクタリング 著者=M. Fowler UMLを使って 「書名」型 : 書名 タイトル=UMLを使って 著者=P. Stevens 7 5. オブジェクト図 5.2 オブジェクト図(1) インスタンス間のつながり(リンク) クラス図からオブジェクト図を書く A A * * B B C D 型C A1 A1 B1 A2 A2 型A A3 a1:A C1 B2 型B b1:B b2:B 型A D1 A3 型B a1:A 型D c1:C d2:D 8 5. オブジェクト図 5.2 オブジェクト図(2) クラス図を理解する 多重度を手がかりにして 顧客 氏名 生年月日 * 注文 注文日 数量 * 商品 商品名 単価 a:顧客 1:注文 氏名=小泉純一 生年月日= 注文日=03.11.21 数量=3 b:顧客 2:注文 科目名=クレジット 氏名=間尚人 /残高= 生年月日= -2000円 注文日=03.11.21 数量=1 1:商品 商品名=フライパン 単価=2000円 3:注文 注文日=03.11.21 数量=2 c:顧客 4:注文 氏名=児玉公信 科目名=現金預金 生年月日= /残高= 50000円 注文日=03.11.21 数量=10 2:商品 商品名= カレーパン 単価=150円 9 5. オブジェクト図 5.2 オブジェクト図(3) 演習4 次のクラス図に基づいて,オブジェクト図を書いてください 0..1 上司 * 部下 社員 10 問題解決からビジネスモデリングへ 6. 高度な関連 6.1 関連に対する制約 6.2 関連型 6.3 知識レベル 6.4 型についての補足 6.5 型図の演習 11 6. 高度な関連 6.1 関連に対する制約(1) 関連に対する制約 許される関連 短縮意味宣言 { }制約 演習5 {xor} {ordered} 書名 0..* 0..* それぞれのオブジェクト図を書いてください 1 本 路線 {xor} 1 {ordered} * 駅 雑誌 12 6. 高度な関連 6.1 関連に対する制約(2) 制約によって曖昧な関係を排除する 演習6 制約{階層}がある/ないで,オブジェクト図 はどうかわりますか 0..1 上司 * 部下 社員 0..1 上司 {階層} * 部下 社員 13 6. 高度な関連 6.1 関連に対する制約(3) 制約 詳細意味宣言 ノート OCL(Object Constraint Language) 勘定 勘定科目名 /残高 * 仕訳記入 金額 2..* 注釈: 金額の移動の方向をその符号 で表す 取引 取引日 摘要 不変表明: inv: self.the仕訳記入.金額->sum 取引にリンクする仕訳記入の金 額の合計は0であること =0 14 6. 高度な関連 6.1 関連に対する制約(4) オブジェクト図を書いてみよう 勘定 勘定科目名 /残高 * 仕訳記入 2..* 取引 取引日 摘要 金額 a:勘定 科目名=旅費交通費 /残高= 8000円 /残高=11000円 b:勘定 科目名=クレジット /残高= -2000円 0円 -5000円 1:仕訳記入 金額=3000円 1:取引 2:仕訳記入 取引日=2003.11.6 摘要=つくば 金額= -3000円 1:仕訳記入 金額= 5000円 2:取引 c:勘定 科目名=現金預金 /残高= 45000円 50000円 2:仕訳記入 取引日= 2003.11.31 摘要=精算 金額= -5000円 15 6. 高度な関連 6.2 関連型(1) 関連に属性,操作を持たせる オブジェクト図 もの-こと-もの 学生 履修している 1..25 1..6 氏名 授業科目 科目名 履修している 成績 学生 氏名 成績 1..6 1..1 成績 授業科目 1..25 1..1 科目名 制約: 再履修は不可 16 6. 高度な関連 6.2 関連型(2) 学生 関連型 氏名 1..6 1 成績 評価 オブジェクト図 a:学生 旅費交通費 氏名=小泉淳之介 8000円 b:学生 クレジット 氏名=山中真紀子 2000円 -5000円 授業科目 1..25 1 科目名 制約: 再履修は不可 :成績 評価=A 1:授業科目 :成績 科目名=オブジェクト 指向モデリング 多重度も制 約の一種 評価=A 2:授業科目 科目名=情報倫理 c:学生 現金預金 氏名=福田康志 50000円 d:学生 現金預金 氏名=山口淳子 50000円 :成績 評価=B 3:授業科目 :成績 科目名=情報システ ム概論 評価=C 17 6. 高度な関連 6.2 関連型(3) 演習7 関連を含んだ簡単な型図を書いてみましょう。 「ものーことーもの」で表される概念構造で,できるだけユニーク なものを考えてみてください。ロールに気をつけて。 18 6. 高度な関連 6.3 属性型 属性かどうか決められない概念 型として書いておく 基本型 人 人 人 氏名 * 1 * 氏名 1 文字列 文字列 人の集合 氏名の集合 氏名 生年月日 血液型 身長 体重 19 6. 高度な関連 6.4 知識レベル(1) べき集合(power set) カテゴリ化 書名と本 ジャンル 頭の中にあるオブジェクト インスタンス: 技術職タイプ 営業職タイプ ○○タイプ, ○○種, ○○名 従業員タイプ 営業職の集合を 意味するメンバ 型 1 従業員タイプの集合 技術職の集合を 意味するメンバ * 従業員 技術職の 集合 営業職 技術職 営業職の 集合 従業員の集合 20 6. 高度な関連 6.4 知識レベル(2) 知識レベルの実装 従業員タイプ 1 * 従業員 従業員 従業員タイプ * 従業員タイプ +型 1 「クラスによる タイプコードの置き換え」 技術職タイプ 営業職タイプ 実装 * 従業員 技術職 1 営業職 従業員 タイプ 「サブクラスによる タイプコードの置き換え」 「State/Strategyによる タイプコードの置き換え」 「フィールドによる サブクラスの置き換え」 従業員 概念モデル 技術職 営業職 21 6. 高度な関連 6.5 型についての補足 ステレオタイプ モデル要素の分類 《type》 《interface》 《history》 学生 学生 学生 事前定義 新たな分類 《use》 制約 《include》 オブジェクトの存在条件 {self.noOfStudents > 10} inv: self.the借方->sum(金額) = self.the貸方->sum(金額) コンテキスト self:任意のインスタンス プロパティ モデル要素のプロパティ タグ付き値 isXxxxxxx 取引 取引日 摘要 {isAbstract = true} {abstract} 22
© Copyright 2025 ExpyDoc