47070 オブジェクト指向モデリング [10] 2002年12月17日 オブジェクト指向モデリング 第9回 動的モデル 9.1 ユースケースを書いてみよう 9.2 協調図 9.3 シーケンス図 9.4 状態図 9.5 活動図 2 動的モデル 開発プロセスとモデル モデルの使われ方 成果物ではなく,思考のツール,意思疎通の媒体 概念レベル 要求定義 仕様レベル 実装レベル クラス図 シーケンス図 分析 因果図 プロセス図 設計 (活動図) 制作 クラス(型)図 ユースケース 協調図 シーケンス図 ステートチャート図 活動図 検査 クラス図 協調図 シーケンス図 ステートチャート図 配置図,コンポーネント図 3 動的モデル ユースケース 概念レベル 情報システムによって支援されるアクティビティ システムとの対話(対話の目的と本質) 要求を1つひとつ取り出す ユースケース名: アクタ: 目的: 事前条件: 乗客 基本系列: 事後条件: Customer 代替系列: 備考: 実装を指示しない 変更要求管理 切符を買う 切符を売る 入場する 入場を許す 駅員 移動する Ownerの 代理人(Agent) 出場する 出場を許す 検札される 検札する 4 動的モデル 相互作用図 本の借り手 会員ID=A,本ID=#123 著書 UsingUML: 著書 本を借りる :ユースケース 1 の印刷物である 1.2.1:borrowed( ) 1: borrow(#123) 0..* 会員 借りる/返却する 0..* 0..1 本 A:会員 #123:本 1.2:borrow( ) 1.1: okToBorrow( ) 責任の配置 シナリオ 協調図 オブジェクト図 メッセージ シーケンス図 通信 タイミング 本を借りる :ユースケース A:会員 #123:本 A:本の借り手 会員ID=A,本ID=#123 UsingUML: 著書 0: find(A) 0: find(#123) 1: borrow(#123) 1.1: okToBorrow( ) 1.2:borrow( ) 1.2.1:borrowed( ) 5 動的モデル 状態図 状態 遷移 貸出し中 ステートチャート図 あるオブジェクトの状態 遷移 イベント[ガード]/アクション 開始状態、終了状態 活動図 アクティビティ 制御の流れ 制御構造 split,join イベント return() 書架にある borrow() 会員 司書 [借りる人] 書架に本を 見つける [返却する人] 並んで待つ [返却する] [借りる] 返却を記録 レーン アクタ 本を書架に 戻す 貸出しを記録 次の利用者 に備える 6 オブジェクト指向モデリング 第10回 静的モデル3 10.1 制約 10.2 関連型 10.3 型についての補足 10.4 依存性 10.5 パッケージ 10.6 知識レベル 7 静的モデル3 10.1 制約 79~81ページ 型(クラス)図も制約がなければただの線図 曖昧さの排除 制約に従ったクラス群がモデル 形式的なルールの記述 {制約} ノート 貸出 0..* 0..* 制約記述言語 UML組み込み OCL 貸出 0..* 1 本 {xor} 1 雑誌 1 本 実装はどうなる? 路線 {ordered} * 駅 制約: 雑誌は教員の会 員だけが借りられる 雑誌 8 静的モデル3 10.1 制約 OCL(Object Constraint Language) OCL式 常に true でなければならない (false である self は存在できない context self と ナビゲーション pre: inv: post: OCL型 演算子 collection inv: /借出し数 = self.the貸出-> select(oclType = 貸出中)->size inv: if self.対象.oclType = 雑誌 then self.借り手.oclType = 教員 会員 /借出し数 学生 {self./借出し数 <= 6} 1 借り手 教員 0..* 貸出 貸出中 {self./借出し数 <= 12} 0..* 返却済 1 対象 本 雑誌 9 静的モデル3 82ページ 10.2 関連型 関連に属性,操作を持たせる 「もの-こと-もの」パターン 2種類の記述方法 導出関連 学生 履修している 1..* 6..* 氏名 授業科目 科目名 成績 /履修している 1..* 6..* 学生 氏名 履修 6..* 1..1 成績 授業科目 1..* 1..1 科目名 制約: 再履修は不可 10 静的モデル3 10.2 関連型 /履修している オブジェクト図で理解する 1..* 6..* 学生 氏名 履修 2..* 1..1 成績 授業科目 1..* 1..1 科目名 制約: 再履修は不可 :履修 成績=D 1:授業科目 a:学生 旅費交通費 氏名=小泉純二郎 8000円 :履修 科目名=オブジェク ト指向モデリング 成績= 2:授業科目 b:学生 クレジット 氏名=竹中半平太 2000円 -5000円 c:学生 クレジット 氏名=鈴木宗光 2000円 -5000円 :履修 多重度も制 約の一種 科目名=情報倫理 成績= A :履修 成績= B 3:授業科目 科目名=情報シス テム概論 11 静的モデル3 10.3 型についての補足 83ページ ステレオタイプ パネル モデル要素の分類 事前定義 新たな分類 <<type>> <<interface>> <<history>> 学生 学生 学生 アイコンの定義 プロパティ <<use>> <<include>> 87ページ パネル モデル要素にあらかじめ与えられている タグ付き値 isXxxxxxx {abstract} B {isAbstract = true} {abstract} <<actor>> 本の借り手 = 本の借り手 12 静的モデル3 89ページ 10.4 依存性 シグニチャだけ(デー タや実装は持たない)の クラス ステレオタイプ 実現の矢印 <<implement class>> <<interface>> A B <<implement class>> <<type>> A A 抽象クラス クラスBの拡張 依存性の矢印 操作と属性を持つ設 計概念 (少なくとも一部は)実装を A {abstract} 持たないクラス B プロパティ クラスの依存関係(オブジェクトの関係ではない) メモ A B 13 静的モデル3 89,90ページ 10.5 パッケージ モデル要素の集まり 4階層アーキテクチャの例 純粋なドメイン 一方向の可視性 ユーザーインタフェース層 インタフェース オブジェクト アプリケーション層 制御オブジェクト アプリケーション層 ドメイン層 ドメイン層 実体オブジェクト 依存性の矢印 永続層 概念レベル RDB 実装レベル OODB 14 静的モデル3 教科書外 10.6 知識レベル べき集合(power set) 著書と本 ジャンル ルールの記述 従業員タイプ 型 1 インスタンス: 技術職タイプ 営業職タイプ 営業職の集合を 意味するメンバ 従業員タイプの集合 技術職の集合を 意味するメンバ * 従業員 技術職の 集合 営業職 技術職 営業職の 集合 従業員の 集合 15 静的モデル3 10.6 知識レベル 知識レベルの実装 従業員タイプ 1 * 従業員 従業員 従業員タイプ * 従業員タイプ +型 1 「クラスによる タイプコードの置き換え」 技術職タイプ 営業職タイプ 実装 * 従業員 技術職 1 営業職 概念モデル 従業員 タイプ 「サブクラスによる タイプコードの置き換え」 「State/Strategyによる タイプコードの置き換え」 「フィールドによる サブクラスの置き換え」 従業員 技術職 営業職 16 静的モデル3 演習問題 次の型図に対応するオブジェクト図を書いてください。 貸出のシナリオを考えて… 前後図 インスタンスをでっち上げて... 制約: 「未成年会員」に「成 人向き」を貸し出せない インスタンス: 未成年会員 成年会員 ジャンル インスタンス: アニメ,邦画, 洋画,成人向き ジャンル名 型 会員型 * 貸出条件 * * ビデオタイトル 単価 * 作品名 型 主演 {不完全} * 会員 氏名 住所 * * 貸出 貸出日 /返却予定日 /代金 * * 新作 ビデオ ビデオNo. 17 静的モデル3 演習問題 シナリオ 未成年会員である児玉和香子は,2002年11月6日,アニメ「となりのトトロ」を7泊 借りていった。借りていったビデオはNo.2013であった。 成年:貸出条件 成年:会員型 単価=200円/泊 成年:貸出条件 単価=100円/泊 未成年:会員型 未成年:貸出条件 単価=380円/7泊 :会員 :会員 氏名=高橋尚子 住所=東京都大田区 氏名=山田太郎 住所=横浜市港北区 :会員 :会員 氏名=児玉和香子 住所=川崎市中原区 氏名=児玉和香子 住所=川崎市中原区 :ジャンル ジャンル名=成人向け :ジャンル ジャンル名=アニメ :ビデオタイトル(新作) 作品名=見ちゃだめ :ビデオタイトル 主演 作品名=となりのトトロ 主演 :ビデオ :ビデオ :ビデオ ビデオNo.=2016 :ビデオ ビデオNo.=2015 ビデオNo.=2014 ビデオNo.=2013 18 静的モデル3 演習問題 シナリオ 未成年会員である児玉和香子は,2002年11月6日,アニメ「となりのトトロ」を7泊 借りていった。借りていったビデオはNo.2013であった。 成年:貸出条件 成年:会員型 単価=200円/泊 成年:貸出条件 単価=100円/泊 未成年:会員型 未成年:貸出条件 単価=380円/7泊 :会員 :会員 氏名=高橋尚子 住所=東京都大田区 氏名=山田太郎 住所=横浜市港北区 :会員 :会員 氏名=児玉和香子 住所=川崎市中原区 氏名=児玉和香子 住所=川崎市中原区 :貸出 貸出日=2002年11月6日 返却予定日= 返却予定日=2002年11月13日 料金= 料金=380円 :ジャンル ジャンル名=成人向け :ジャンル ジャンル名=アニメ :ビデオタイトル(新作) 作品名=見ちゃだめ :ビデオタイトル 主演 作品名=となりのトトロ 主演 :ビデオ :ビデオ :ビデオ ビデオNo.=2016 :ビデオ ビデオNo.=2015 ビデオNo.=2014 ビデオNo.=2013 19
© Copyright 2024 ExpyDoc