Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

2 授業資料の置き場 URL http://www.crew.sfc.keio.ac.jp/
lecture/2002objmodel/index.html

3 良い情報システムを作るために 複雑な現代のシステム 複雑さを低下させる方法 ソフトウェア工学 情報システム工学
A B C D 複雑な現代のシステム 人間が一度に理解できる量を越えている ビジネスの本質に関わっている 複雑さを低下させる方法 モジュール化 よいモジュール(高い凝集度) 制約されたアクセス(低い結合度) 契約(限定されたインタフェース) ソフトウェア工学 作り方の工夫(品質) 情報システム工学 業務の選択・創造(効果) A’ B’ D’ client server 依存性 A B C’

4 質問カードから 分析→設計→制作→検査のほかに「比較」が必要? 現場で分析・設計に時間はかけられないのでは
どんなシステムを作るかを分析の中で検討します。 機能や性能の比較や評価(定量的,定性的),実現可能性などを検討します。 設計や制作においても比較は有効です。 現場で分析・設計に時間はかけられないのでは 「十分」の基準がないので 満足なモデルができたかどうかを基準にしては 4つのワークフローに割く時間の比率は ケースバイケースです          工程 分析 設計 制作 検査 受入 事例 "Zelkowitz" "Zelkowitz & NASA" Griffin 20 15 45 22 49 16 13 23 28 24

5 質問カードから 「2-4-2-3」の法則は「4」で突っ走るべきか 要求記述の方法は 経営コンサルでもUMLを使うの?
2の見積もりが甘いだけです すべての必要機能を前もって知ることは難しいのです 1つの解決策は,小さく段階的に作っていくことです 要求記述の方法は ユースケースを使います 要求の取り出しについては形式的な方法がありません 経営コンサルでもUMLを使うの? 目的と人によります。 モデルを概念の整理と業務設計に使う人がいます。 ビジネスプロセスの記述に使います。

6 質問カードから OO(Object Oriented)とは何かについて触れて欲しい OOの成功例はあるか
今日,触れます OOの成功例はあるか OOプログラミングは成功しています(OSやGUIなど) OOシステムの成功例は少ないです(OO以外でもできる) 私がやっているシステムはOOでなければできないものですが,なかなか受け入れられません(受け取った側が保守できないから)。 抽象的な話を一方的にだらだらしゃべるだけでは眠くなるだけ。インタラクティブにテンポよくやってほしい 当てていきます。答えてくださいね。

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

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

9 3.1 オブジェクトとは何か 非オブジェクト指向 オブジェクト指向 関数呼び出し 状態を持つ「もの」 メソッド呼び出し 1つのコード
3.オブジェクトの概念とUML 3.1 オブジェクトとは何か 非オブジェクト指向 関数呼び出し 1つのコード ケース分けのロジック オブジェクト指向 状態を持つ「もの」 メソッド呼び出し メッセージ 個別のコード A A B B A B resetTimeTo(07:43) OK A 13:18 07:43 reportTime() B 16:47 It’s 16:47

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

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

12 3.1 オブジェクトとは何か 何がオブジェクトか 次のうちオブジェクトと考えられるのはどれか かなづち 球体 化学合成 愛 霧 川 怒り 猫
3.オブジェクトの概念とUML 3.1 オブジェクトとは何か 何がオブジェクトか 次のうちオブジェクトと考えられるのはどれか かなづち 球体 化学合成 怒り 灰色さ 灰色の猫 15ページ

13 3.2 型とクラス クラスはOOプログラミングにおけるモジュール 型は分析で扱うクラス候補
3.オブジェクトの概念とUML 3.2 型とクラス 教科書外 クラスはOOプログラミングにおけるモジュール UoDの概念と対応していなければならない理由はない 型は分析で扱うクラス候補 UoDにおける概念に対応させる 世界の理解,共有 semantic data modeling 概念を集合として扱う 集合と要素 現実世界 解釈 パッケージ コンポー ネント クラス 翻訳 活動 概念レベル 実装レベル

14 3.2 型とクラス 型 クラス 概念 集合 インタフェース 型の実装 実装上の都合 類似のものをひとまとめにしてとらえる 境界を定める
3.オブジェクトの概念とUML 3.2 型とクラス 概念 類似のものをひとまとめにしてとらえる 境界を定める 集合 共通の属性種 個別の属性値 インタフェース 操作 クラス 型の実装 データ項目 メソッド 実装上の都合 顧客 児玉公信 大岩商店 小林商店 小泉一郎 山田太郎 集合 要素 概念 インスタンス プログラム クラス オブジェクト 要求 ユースケース シナリオ

15 3.3 オブジェクトは良いシステム作りに役立つか
3.オブジェクトの概念とUML 3.3 オブジェクトは良いシステム作りに役立つか オブジェクト指向プログラミング 良いモジュール OOの制約によって良いモジュールとなる 凝集度が高いクラス インタフェースによる結合度の制約 良いコンポーネント 再利用可能 オブジェクト指向の世界観 「オブジェクトの世界」を「ユーザの世界」と整合させたい 概念と概念構造 ユーザの要求を把握しやすい 要求獲得を容易に 変更要求に追随する オブジェクトメタファーが有効? 20ページ UoD

16 3.3 オブジェクトは良いシステム作りに役立つか
3.オブジェクトの概念とUML 3.3 オブジェクトは良いシステム作りに役立つか コンポーネントが再利用可能となる前提 アーキテクチャ ユーザインタフェース HTML アプリケーション(機能) ドメイン(概念の世界) SQL 永続化

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

18 3.5 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 2001年2月  UML 1.4 on OMG Openなプロセスによって改良 ISO化の動き UML 1.4.1

19 3.5 UML 表記法 3.オブジェクトの概念とUML ユースケース図 ステートチャート図 クラス図 活動図 オブジェクト図 協調図
概念レベル 実装レベル 静的側面 動的側面 機能側面 クラス図 オブジェクト図 ステートチャート図 物理側面 コンポーネント図 配置図 協調図 シーケンス図 関心 観点 ユースケース図 ノート,型-インスタンスの対応 仕様レベル パッケージ 制約と注釈,ステレオタイプ 図の要素 モデル管理 汎用拡張機構 活動図

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

21 3.5 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

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

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

24 3.5 UML ユースケース図 概念レベル 仕様レベル 要求の切り出し 要求の記述 対話の詳細化 3.オブジェクトの概念とUML
受注係 注文を受ける 在庫を確認する 出荷を指示する


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

Similar presentations


Ads by Google