オブジェクト指向モデリング [2] 2003年10月 7日
授業資料の置き場 URL http://www.crew.sfc.keio.ac.jp/ lecture/2003objmodel/index.html
1.1 モデル モデルとは, 概念モデル 解釈の主体 ある人にとっての, ある状況あるいは状況の概念の 明示的な解釈 1.モデルとは何か 1.1 モデル モデルとは, ある人にとっての, ある状況あるいは状況の概念の 明示的な解釈 概念モデル 関心領域についての考察を助ける 構造と論理を定義する 解釈の主体 観察の視点
シラバス 授業計画 回 月日 内容 1 9月 30日 オリエンテーション:モデルとは何か。 2 10月 7日 モデリング言語:UMLの概要 オブジェクト指向モデリング シラバス 授業計画 回 月日 内容 1 9月 30日 オリエンテーション:モデルとは何か。 2 10月 7日 モデリング言語:UMLの概要 3 10月14日 静的モデル1:概念とクラス 4 10月21日 静的モデル2:関連 5 10月28日 静的モデル3:オブジェクト図 6 11月 4日 静的モデル4:高度な関連 7 11月11日 機能モデル1:ユースケース 8 11月18日 機能モデル2:ユースケース記述,シナリオ 9 12月 2日 動的モデル:協調図,シーケンス図,状態図,活動図 10 12月 9日 モデル図の理解:アナリシスパターン,事例 11 12月16日 モデリング1:モデル図の作成,モデルの評価基準 12 1月13日 モデリング2:例題によるユースケース記述 13 1月20日 モデリング3:例題によるモデル図の作成
オブジェクト指向モデリング 2. モデリング言語 2.1 UMLの歴史 2.2 表記法の概要 2.3 開発プロセスとモデル
2.1 UMLの歴史 Three Amigos Unified Modeling Language UML Specification 2. モデリング言語 2.1 UMLの歴史 Three Amigos James Rumbaugh Grady Booch Ivar Jacobson Unified Modeling Language 1995年10月 Unified Method V0.8 1997年 1月 UML 1.1 on OMG 1998年 6月 UML 1.3 2001年 2月 UML 1.4 2003年 5月 UML 1.5 2003年12月? UML 2.0 UML Specification Openなプロセスによって改良 ISO/IEC 19501-1(DIS) UML 1.4.1 手続き中
2.2 表記法の概要(0) 9種の表記法 概念レベル ①クラス図 ②オブジェクト図 ⑥ステートチャート図 ⑦活動図 ③ユースケース図 2. モデリング言語 2.2 表記法の概要(0) 9種の表記法 関心 静的側面 機能側面 動的側面 物理側面 観点 概念レベル ①クラス図 ②オブジェクト図 ⑥ステートチャート図 ⑦活動図 ③ユースケース図 ④協調図 ⑤シーケンス図 仕様レベル ⑧コンポーネント図 ⑨配置図 実装レベル 図の要素 ノート,型-インスタンスの対応 モデル管理 パッケージ 汎用拡張機構 制約と注釈,ステレオタイプ アクションの記述 アクションセマンティクス
2.2 表記法の概要(1) 共通の図形要素 ノート パッケージ 依存性の矢印 ステレオタイプ 取引 口座管理 請求管理 銀行口座 銀行口座 2. モデリング言語 2.2 表記法の概要(1) 制約: 対応する明細の価格の合計は 1円以上であること ノート 共通の図形要素 ノート パッケージ 依存性の矢印 ステレオタイプ 明細 取引 {ordered} 価格 * パッケージ 人事 給与 厚生 《requirement》 A社の構造体に合わせる 口座管理 依存性の矢印 請求管理 《実装クラス》 銀行口座 《type》 銀行口座 《実装》
2.2 表記法の概要(2) クラス図 オブジェクト図 集合と要素 2. モデリング言語 書名 本 書名 本 1 2 6 3 4 5 :本 リファクタリング アナリシスパターン 5 2 6 蔵書している 蔵書している :書名 書名=リファクタリング 著者=Fowler,M. 訳者=児玉公信 現在の貸出し可能数=2 : オブジェクト リンク :本 蔵書番号=1 借りた日=02.06.20 返却予定日=02.07.10 蔵書番号=2 借りた日= 返却予定日= 蔵書番号=3 蔵書している * 1 書名 著者 訳者 現在の貸出し可能数 : 貸出し実施() 返却() 本 蔵書番号 借りた日 返却予定日 is貸出し可能() 借りる() 多重度 関連名 クラス 関連
2.2 表記法の概要(2) クラス図の例 カテゴリ 商品 Entry Transaction 廃棄 製造 販売 現物 /在庫 /商品別集計 2. モデリング言語 2.2 表記法の概要(2) クラス図の例 カテゴリ 名称 /売上金額 /在庫 * 日 /在庫量 1 * 1 /商品別集計 商品 Entry Transaction 日 /売上金額 /製造原価 /利益 1 1 * 1 商品名 単価 原価 /在庫 * 日 数量 日 時 * {xor} 1 導出: let x:Entry=self.the商品.theEntry in /製造原価 =x->select(e| (isTypeOf(e.theTansaction) =製造 or 廃棄) and (e.theTransaction.日=self.日) -> forAll(e| e.数量 * self.the商品.原価) ->sum * 廃棄 製造 販売 1 theTransactionが 生産または廃棄 のとき,the商品は 導出 現物 /合計金額 製品番号 /賞味期限
2.2 表記法の概要(3) ユースケース ユースケース図 ユースケース(記述) シナリオ 機能要求の記述 図書館システム 2. モデリング言語 2.2 表記法の概要(3) 司書 図書館システム 貸出要求 返却情報 本の情報 ユースケース ユースケース図 ユースケース(記述) 機能要求の記述 シナリオ どんな機能が必要かは分解していけばわかる? 図書館システム 本を貸出す 司書 本の返却を受付ける 本を書架に戻す
2.2 表記法の概要(4) 相互作用図 協調(collaboration)図 シーケンス図 責任の配分 オブジェクト間の対話 2. モデリング言語 2.2 表記法の概要(4) 相互作用図 責任の配分 オブジェクト間の対話 協調(collaboration)図 シーケンス図 :本の借り手 :書名 1.2:貸出し実施 借りたい :会員 :本 1:借りる 1.1: is貸出し可能 :会員 :本 :書名 :本の借り手 借りたい 1:借りる( ) 1.1:is貸出し可能( ) 生存線 活性期間 1.2:貸出し実施( )
2.2 表記法の概要(5) 状態図 ステートチャート図 状態 遷移 イベント[ガード]/アクション 貸出し不可 貸出し可 2. モデリング言語 2.2 表記法の概要(5) 状態図 ステートチャート図 状態 遷移 イベント[ガード]/アクション 返却() 遷移の矢印 初期状態 貸出し不可 返却() 貸出し可 貸出し実施()[最後の本] 状態 イベント 貸出し実施()[最後の本でない]
2.2 表記法の概要(6) 状態図 活動(activity)図 制御構造 ワークフロー オブジェクトフロー if-then-else 2. モデリング言語 2.2 表記法の概要(6) 状態図 活動(activity)図 制御構造 if-then-else do-while / do-until ワークフロー split / join オブジェクトフロー 会員 司書 本を検索する 貸出を確認する [なし] [だめ] the本:蔵書 [未貸出] [あり] [よし] 書架に本を 見つける 貸出を記録する 貸出を申し出る 許可 帯出を許可する 遷移の矢印 オブジェクト [不可] [可] the本:蔵書 [貸出済] 帯出する
2.2 表記法の概要(7) 物理図 コンポーネント図 配置図 :蔵書モジュール pc1 m1: mailserver fw1: 2. モデリング言語 2.2 表記法の概要(7) 物理図 コンポーネント図 配置図 :司書モジュール コンポーネント is貸出し可能 《CORBA》 :蔵書モジュール pc1 《LAN》 m1: mailserver fw1: firewall server1: httpserver :hub ノード
2.3 開発プロセスとモデル ソフトウエアプロセス ワークフロー フェーズ設定 実装 機能 機能 要求記述 分析 設計 制作 問題,目的 2. モデリング言語 2.3 開発プロセスとモデル ソフトウエアプロセス ワークフロー フェーズ設定 方向づけ 推敲 構築 移行 分析 設計 制作 検査 問題,目的 変換(演繹) 判断 制約,価値観 変換(演繹) 判断 制約,価値観 変換(演繹) 判断 制約,価値観 Function 機能 Feature 機能 Artifact 実装 Requirements 要求記述 変換 変換 変換 要求記述(ユースケース) 分析 概念レベル 設計 仕様レベル 制作 実装レベル 検査 型図(クラス図) ワークフロー(活動図) クラス図 相互作用図 クラス図 配置図