Presentation is loading. Please wait.

Presentation is loading. Please wait.

47070 オブジェクト指向モデリング [3] 2001年10月16日.

Similar presentations


Presentation on theme: "47070 オブジェクト指向モデリング [3] 2001年10月16日."— Presentation transcript:

1 47070 オブジェクト指向モデリング [3] 2001年10月16日

2 前回 良い情報システムとは 2.1 良いシステムとは何か 2.2 良いシステムは存在するのか 2.3 良いシステムとはどんなものか
オブジェクト指向モデリング 前回 良い情報システムとは 2.1 良いシステムとは何か 2.2 良いシステムは存在するのか 2.3 良いシステムとはどんなものか 2.4 良いシステムはどのようにして作るのか

3 2.3 良いシステムはどんなものか ケーススタディ 問題の原因 理解できる単位でシステムを組立てる 人間が一度に理解できる量には限界がある
2.良い情報システムとは 2.3 良いシステムはどんなものか ケーススタディ 問題の原因 人間が一度に理解できる量には限界がある c.f. magical number 7±2 限界を超えると破綻へ バグの原因,スパゲッティコード goto有害論 理解できる単位でシステムを組立てる モジュール 結合度(coupling) 凝集度(cohesion) インタフェース カプセル化,抽象化 A B C D A B C D client server 依存性 A B A B

4 2.4 良いシステムはどのようにして作るのか 作業(ワークフロー) 分析→設計→制作→検査 分解プロセスではない 機能 実装 要求
2.良い情報システムとは 2.4 良いシステムはどのようにして作るのか 作業(ワークフロー) 分析→設計→制作→検査 分解プロセスではない Artifact 実装 Feature 機能 Function Requirement 要求 変換(演繹) 判断 変換(帰納) 制約,価値観 分析 概念レベル 設計 仕様レベル 制作 実装レベル 検査

5 第3回 オブジェクトの概念とUML 3.1 オブジェクトとは何か 3.2 オブジェクトは良いシステム作りに役立つか 3.3 継承
オブジェクト指向モデリング 第3回 オブジェクトの概念とUML 3.1 オブジェクトとは何か 3.2 オブジェクトは良いシステム作りに役立つか 3.3 継承 3.4 ポリモーフィズムと動的束縛 3.5 型とクラス 3.6 UML テキスト 第2章

6 3.1 オブジェクトとは何か オブジェクト指向パラダイム オブジェクト
3.オブジェクトの概念とUML 3.1 オブジェクトとは何か オブジェクト指向パラダイム 世界は「オブジェクト」の相互作用で成立しているという想定に基づいてソフトウェアを作成する オブジェクト メッセージを受け取って反応する(behavior) 反応の結果はオブジェクトの内部状態(state)に依存する 何らかの属性値を持つ 個々のオブジェクトは区別される(identity) 一つひとつのオブジェクト resetTimeTo(newTime) reportTime() myClock resetTimeTo(07:43)

7 3.1 オブジェクトとは何か メッセージ インタフェース 自分自身にも送ることができる 受理可能なメッセージの定義
3.オブジェクトの概念とUML 3.1 オブジェクトとは何か メッセージ 自分自身にも送ることができる インタフェース 受理可能なメッセージの定義 公開インタフェース(public) 非公開インタフェース(private) Obj.resetTimeTo(07:43) セレクタ 引数 送信先オブジェクト obj3 resetTimeTo() reportTime() obj2 obj1 Obj1.resetTimeTo(07:45) return

8 3.1 オブジェクトとは何か クラス なぜクラスが必要か 類似のオブジェクトをグループ化 クラスに属するオブジェクトの生成
3.オブジェクトの概念とUML 3.1 オブジェクトとは何か クラス 類似のオブジェクトをグループ化 何をもって類似と判断するか クラスに属するオブジェクトの生成 Object Factoryクラス なぜクラスが必要か 同じ特性をまとめて記述する (write once!) 型としての効果 型チェック resetTimeTo() reportTime()

9 3.2 オブジェクトは良いシステム作りに役立つか
3.オブジェクトの概念とUML 3.2 オブジェクトは良いシステム作りに役立つか 良いモジュール OOの制約の下で,良いモジュールとなるとの期待 結合度が低く,凝集度が高いクラスを設計する 世界をオブジェクトに関連づけて認識する ユーザの要求を満足すること 「ユーザの世界」と「オブジェクトの世界」の整合 要求獲得を容易に 変更要求に追随する OOのパラダイムがこれらに貢献するか クラス,カプセル化,継承とポリモーフィズム メッセージメタファ

10 3.2 オブジェクトは良いシステム作りに役立つか
3.オブジェクトの概念とUML 3.2 オブジェクトは良いシステム作りに役立つか 何が良いオブジェクトか T. Reenskaug, Working with Objects: The OOram Software Engineering Method. Greenwich, CT: Manning Publications, 1996. 実世界の部分的モデル 思考やアクションが向けられる先 ER(実体関連)モデルにおけるエンティティ 識別性を持ち,長期間存在するもの 何が良いクラスか

11 3.2 オブジェクトは良いシステム作りに役立つか
3.オブジェクトの概念とUML 3.2 オブジェクトは良いシステム作りに役立つか 良さの前提… アーキテクチャ ユーザインタフェース HTML アプリケーション(機能) ドメイン(概念の世界) SQL 永続化

12 3.3 継承 実装レベル 概念レベル サブクラス サブタイプ(部分型) 顧客 最もオブジェクト指向らしいメカニズム 分類
3.オブジェクトの概念とUML 3.3 継承 実装レベル サブクラス 最もオブジェクト指向らしいメカニズム 機能の拡張(追加,上書き) ポリモーフィズムのベース 概念レベル サブタイプ(部分型) 分類 部分集合 多重分類 動的分類 状態の分類 顧客 国内 国外 一般 重要

13 3.4 ポリモーフィズムと動的束縛 ポリモーフィック 動的束縛(遅延束縛) 変数 関数 束縛(binding)
3.オブジェクトの概念とUML 3.4 ポリモーフィズムと動的束縛 ポリモーフィック 変数 型が互換のオブジェクトを指せる 関数 型が互換の引数を使える 関数側が部分型ごとに違う振る舞いを用意する 拡張 条件分岐の削減 動的束縛(遅延束縛) 束縛(binding) 実行時にどの型を使うかが決定される コンパイル時に型チェックしたいが... DoIt() A:重要顧客 クライアント DoIt() B:顧客

14 3.5 型とクラス 型 クラス 概念 集合 インタフェース 型の実装 実装上の都合 境界を定める 共通の属性種 個別の属性値 操作
3.オブジェクトの概念とUML 3.5 型とクラス 概念 境界を定める 集合 共通の属性種 個別の属性値 インタフェース 操作 クラス 型の実装 データ項目 メソッド 実装上の都合

15 3.6 UML Three Amigos Unified Modeling Language 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 on OMG Openなプロセスによって改良 ISO化の動き UML 1.4.1

16 3.6 UML 記法 モデリングプロセスは別! クラス図 相互作用図 状態図 ユースケース図 パッケージ 配置図
シーケンス図,コラボレーション図 状態図 ステートチャート図,アクティビティ図 ユースケース図 パッケージ 配置図 モデリングプロセスは別! アイコンを自由に定義できる→拡張可能

17 3.6 UML クラス図 概念レベル 実装レベル Universe of Discourseの表現 概念と概念の構造 プログラムの設計
A Notify() Attach(Observer) Detach(observer) ConcreteA GetState() B update() ConcreteB * observer subject observerState subjectState self.observerState= subject.GetState() self.observer ->update() return subjectState

18 3.6 UML シーケンス図 概念の境界を定める 責任の配分 相互作用 3.オブジェクトの概念とUML a:A b1:B b2:B
Notify( ) Update( ) GetState( ) a:A b1:B b2:B SetState( )

19 3.6 UML アクティビティ図 ワークフロー 3.オブジェクトの概念とUML 受注係 出荷係 輸送係 注文を受ける 在庫を確認する
出荷指示をする 出荷する 納入する 受注係 出荷係 輸送係

20 3.6 UML ユースケース図 概念レベル 実装レベル 要求の切り出し 要求の記述 3.オブジェクトの概念とUML 在庫を確認する
受注係 注文を受ける 在庫を確認する 出荷を指示する


Download ppt "47070 オブジェクト指向モデリング [3] 2001年10月16日."

Similar presentations


Ads by Google