47070 オブジェクト指向モデリング [7] 2001年11月27日 質問カード 質問 Q. UML検定だとどのレベルなの ? UMLの文法だけでなく,モデリングを目的としています Q. 型とクラスの違いがいまいちわからない 83ページ 型(タイプ) 実装に依存しない抽象定義 概念レベル(多重分類,動的分類) 操作と属性を持つ…設計概念 <<type>> A クラス(実装クラス) 型の実装を定義 実装レベル(単一分類,静的分類)…言語依存 メソッドとデータを持つ…プログラム要素 <<implement class>> A 2 質問カード 質問 Q. (モデルのよさの)評価方法がいまいちわからない 結合度,凝集度(正規形) 概念境界の良さ(何が同じで何が違うか) 概念間の関係の良さ(役割) 一般性,耐変更性 Q.参考情報(サイト)を教えて Using UML http://www.dcs.ed.ac.uk/home/pxs/book/ OMG http://www.omg.org/ 日本ラショナル社 http://www.rational.co.jp/uml/ JPLoP http://www.kame-net.com/jplop/ アナリシスパターン 3 質問カード 要望 講義資料を事前にアップして(4) テキストのページと対応させて 実装レベルの話も入れて(4) UMLの具体例を多くして(4) 演習を増やして(4) 解答例もつけて 授業中の演習時間を長くとって(2) 中間レポートを課しては 教科書がないとわからない 4 質問カード 苦情・意見 資料の字が小さくて見にくいことがある →大きくします →事前にアップします 授業が淡々としていてメリハリがない(2) →ポイントを絞ります 感想 今のところわかりやすい 教科書に異論をふっかけるところがよい 5 宿題の解答例 6親等までを扱うための型モデルを書いてください 養子縁組はないものとする 離婚,再婚はないものとする 配偶者 兄弟 子 兄弟 親 兄弟 叔父叔母 子 親 親 従兄弟 親 配偶者 2 0..1 子 0..1 はとこ * 人 従兄弟 * 叔父叔母 * 0..* 子 配偶者 self 子 兄弟 * * <<対称>> /兄弟関係 <<対称>> /叔父甥関係 <<対称>> /従兄弟関係 <<対称>> /はとこ関係 * * inv: self.親=self.兄弟.親 and self.親.親->intersection(self.従兄弟.親.親)->notEmpty and self.親.親.親->intersection(self.はとこ.親.親.親)->notEmpty and self.子.親->includes(self, self.配偶者) and self.子.子.親->includes(self.子, self.子.配偶者) and self.子.子.子.親->includes(self.子.子, self.子.子.配偶者) : 6 宿題の解答例 6親等までを扱うための型モデルを書いてください 養子縁組はないものとする 離婚,再婚はないものとする 子 配偶者 親 先 <<対称>> /配偶関係 親 配偶者 2 * <<対称>> 1 元 /親等関係 親等数 人 * n n 先 先 n-1 n-1 0..1 0..1 先1 n 先 *子 元 self inv: self.~元(親等関係)->select(p|p.親等数=0).先=self.配偶者 and Integer.allInstances->select(n|0<n<7)->forAll(n | self.~元(親等関係)->select(p|p.親等数=n).先= self.~元(親等関係)->select(p|p.親等数=n-1).先.子) ->union(self.~元(親等関係)->select(p|p.親等数=n-1).先.親) ->union(self.~元(親等関係)->select(p|p.親等数=n).先.配偶者) ) 7 宿題 典型的な解答 関係は関係としてとらえる 相対性,役割 0..* 配偶者 0..* 本人 0..* 兄弟 2..2 祖父母 2..2 0..* 親 2..2 2..2 叔父母 必要以上の複雑性を持ち込まない 親の親,親の兄弟 文化人類学的 な意味はあるか も 子 0..* 2..2 0..* 6親等に男女の区別は必要か 導出関連は最小限に 1..1 弟 兄 弟 息子 父 兄 男 姉 妹 父 娘 息子 母 妹 娘 女 姪 甥 叔父 母 姉 夫 叔父 甥 叔母 妻 姪 叔母 8 オブジェクト指向モデリング 前回 静的モデル2 6.1 概念レベルでの特殊な表現 6.2 リファクタリング 6.3 オブジェクト図 6.4 関連についての補足 9 静的モデル2 制約 型(クラス)図も制約がなければただの線図 制約に従ったオブジェクト群 ビジネスルールとしての制約 {制約} OCL 本 0..* 0..* 1 インスタンス図 (オブジェクト図) を書いてみよう 著作 {xor} 1 雑誌 ライン {ordered} * プロセス 実装はどうなる? 10 静的モデル2 型(クラス)図の理解 オブジェクト図で理解する 勘定 勘定科目名 /残高 * 記入 2..* 金額 借方 貸方 inv: self.the借方->sum(金額) = self.the貸方->sum(金額) 取引 取引日 摘要 a:勘定 旅費交通費 8000円 b:勘定 クレジット 2000円 1:貸方 3000円 2:借方 1:取引 2001.11.6 つくば 3000円 1:貸方 5000円 c:勘定 現金預金 50000円 45000円 2:借方 2:取引 2001.11.31 精算 5000円 11 オブジェクト指向モデリング 第7回 静的モデル3 7.1 関連型 7.2 型についての補足 7.3 依存性 7.4 パッケージ 7.5 知識レベル 12 静的モデル3 82ページ 7.1 関連型 関連に属性,操作を持たせる オブジェクト図 もの-こと-もの 学生 履修している 1..* 6..* 授業科目 履修している 成績 /履修している 1..* 6..* 学生 6..* 1..1 成績 成績 授業科目 1..* 1..1 制約: 再履修は不可 13 静的モデル3 82ページ 7.1 関連型 関連型 /履修している 1..* 6..* 学生 オブジェクト図 6..* 1..1 成績 成績 授業科目 1..* 1..1 制約: 再履修は不可 a:学生 旅費交通費 小泉純二郎 8000円 :成績 A b:学生 クレジット 山中真紀子 2000円 -5000円 :成績 A B 現金預金 ビソラディソ 50000円 情報倫理 3:授業科目 :成績 c:学生 オブジェクト指 向モデリング 多重度も制 約の一種 2:授業科目 :成績 c:学生 現金預金 小丸 50000円 1:授業科目 情報システム概 論 C 14 静的モデル3 7.2 型についての補足 ステレオタイプ 83ページ パネル モデル要素の分類 <<type>> <<interface>> <<history>> 学生 学生 学生 事前定義 新たな分類 制約 <<use>> <<include>> 79ページ オブジェクトの存在条件 {self.noOfStudents > 10} inv: self.the借方->sum(金額) = self.the貸方->sum(金額) コンテキスト self:任意のインスタンス プロパティ 87ページ パネル モデル要素のプロパティ タグ付き値 isXxxxxxx 取引 取引日 摘要 {isAbstract = true} {abstract} 15 静的モデル3 89ページ 7.3 依存性 シグニチャだけ(デー タや実装は持たない)の クラス ステレオタイプ 実現の矢印 <<implement class>> <<interface>> A B <<implement class>> <<type>> A A 抽象クラス クラスBの拡張 依存性の矢印 操作と属性を持つ設 計概念 (少なくとも一部は)実装を A {abstract} 持たないクラス B プロパティ クラスの依存関係(オブジェクトの関係ではない) メモ A B 16 静的モデル3 89,90ページ 7.4 パッケージ モデル要素の集まり 一方向の可視性 ユーザインタフェース ユーザインタフェース アプリケーション あ アプリケーション(機能) ドメイン ドメイン(概念の世界) 永続化 A * B 永続化 α 17 静的モデル3 教科書外 7.5 知識レベル べき集合(power set) 著書と本 ジャンル ルールの記述 従業員タイプ 型 1 インスタンス: 技術職タイプ 営業職タイプ 営業職の集合を 意味するメンバ 従業員タイプの集合 技術職の集合を 意味するメンバ * 従業員 技術職の 集合 営業職 技術職 営業職の 集合 従業員の 集合 18 静的モデル3 教科書外 7.5 知識レベル 知識レベルの実装 従業員タイプ 1 * 従業員 従業員 従業員タイプ * 従業員タイプ +型 1 「クラスによる タイプコードの置き換え」 技術職タイプ 営業職タイプ 実装 * 従業員 技術職 1 営業職 概念モデル 従業員 タイプ 「サブクラスによる タイプコードの置き換え」 「State/Strategyによる タイプコードの置き換え」 「フィールドによる サブクラスの置き換え」 従業員 技術職 営業職 19 静的モデル3 演習問題 次の型図に対応するオブジェクト図を書いてください。 貸出のシナリオを考えて... インスタンスをでっち上げて... 制約: 「未成年会員」に「成 人向き」を貸し出せない インスタンス: 未成年会員 成年会員 ジャンル インスタンス: アニメ,邦画, 洋画,成人向き ジャンル名 型 会員型 * 貸出条件 * * ビデオタイトル 単価 * 作品名 型 主演 {不完全} * 会員 氏名 住所 * * 貸出 貸出日 /返却予定日 /代金 * * 新作 ビデオ ビデオNo. 20 静的モデル3 演習問題 シナリオ 未成年会員である児玉和香子は,2001年11月6日,アニメ「となりのトトロ」を7泊 借りていった。借りていったビデオはNo.2013であった。 成年:貸出条件 成年:会員型 単価:200円/泊 成年:貸出条件 単価:100円/泊 未成年:会員型 未成年:貸出条件 単価:380円/7泊 :会員 :会員 氏名:高橋尚子 住所:東京都大田区 氏名:山田太郎 住所:横浜市港北区 :会員 :会員 氏名:児玉和香子 住所:川崎市中原区 氏名:児玉和香子 住所:川崎市中原区 :ジャンル ジャンル名:成人向け :ジャンル ジャンル名:アニメ :ビデオタイトル(新作) 作品名:見ちゃだめ :ビデオタイトル 主演 作品名:となりのトトロ 主演 :ビデオ :ビデオ :ビデオ ビデオNo.:2016 :ビデオ ビデオNo.:2015 ビデオNo.:2014 ビデオNo.:2013 21 静的モデル3 演習問題 シナリオ 未成年会員である児玉和香子は,2001年11月6日,アニメ「となりのトトロ」を7泊 借りていった。借りていったビデオはNo.2013であった。 成年:貸出条件 成年:会員型 単価:200円/泊 成年:貸出条件 単価:100円/泊 未成年:会員型 未成年:貸出条件 単価:380円/7泊 :会員 :会員 氏名:高橋尚子 住所:東京都大田区 氏名:山田太郎 住所:横浜市港北区 :会員 :会員 氏名:児玉和香子 住所:川崎市中原区 氏名:児玉和香子 住所:川崎市中原区 :貸出 貸出日:2001年11月6日 返却予定日: 返却予定日:2001年11月13日 料金: 料金:380円 :ジャンル ジャンル名:成人向け :ジャンル ジャンル名:アニメ :ビデオタイトル(新作) 作品名:見ちゃだめ :ビデオタイトル 主演 作品名:となりのトトロ 主演 :ビデオ :ビデオ :ビデオ ビデオNo.:2016 :ビデオ ビデオNo.:2015 ビデオNo.:2014 ビデオNo.:2013 22
© Copyright 2024 ExpyDoc