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

Slides:



Advertisements
Similar presentations
格成分から見た特許請求項の 概念モデリング 赤間 淳一(デジタル・インフォメー ション・ テクノロ ジー株式会社) 安彦 元(ミノル国際特許事務所) 綾木 健一郎(磯野国際特許商標事務 所) 片岡 敏光(株式会社パットブレーン) 2011/06/25.
Advertisements

Chapter1 UML の概要とオブジェクト指向の基本概念 1 情報工学専攻 MFM10004 奥平 健太.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
メタモデル記述を用いた成果物間の依存関係追跡手法
エンティティ・リレーションシップ・モデル
シーケンス図の生成のための実行履歴圧縮手法
4 相互作用図 後半 FM13001 青野大樹.
相互作用図 FM11010 田中健太.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
表計算ソフトで動作するNEMUROの開発
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
アルゴリズムとデータ構造1 2007年6月12日
ソフトウェア工学 知能情報学部 新田直也.
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
3-3 クラス図の関係その2.
BPMN(Business Process Modeling Notation)
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
C#とC++とオブジェクト指向 上甲 健史.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
ユースケース オブジェクト指向の要求分析のためのモデル。 スウェーデンのイヴァー・ヤコブソンが1990年代前半に開発。
UMLとは           032234 田邊祐司.
47070 オブジェクト指向モデリング [12] 2002年1月15日.
47070 オブジェクト指向モデリング [4] 2001年10月23日.
オブジェクト指向モデリング [3] 2003年10月14日.
2003年度 データベース論 安藤 友晴.
チーム FSEL 立命館大学情報理工学部 ソフトウェア基礎技術研究室
47070 オブジェクト指向モデリング [1] 2001年10月2日.
ソフトウェア工学 知能情報学部 新田直也.
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
Chapter7 その他の図 FM13010  須崎研 村上 太一.
47070 オブジェクト指向モデリング [6] 2001年11月13日.
その他の図 Chapter 7.
47070 オブジェクト指向モデリング [7] 2001年11月 12日.
暗黙的に型付けされる構造体の Java言語への導入
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
社会シミュレーションのための モデル作成環境
オブジェクト指向モデリング [2] 2003年10月 7日.
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
UMLモデルを対象とした リファクタリング候補検出の試み
All Rights Reserved, Copyright © 2004, Kobayashi
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
第15回放送授業.
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
UMLの概要とオブジェクト指向の基本概念
オブジェクト指向モデリング [12] 2004年1月13日.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
サブゼミ第7回 実装編① オブジェクト型とキャスト.
47070 オブジェクト指向モデリング [8] 2002年12月 3日.
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
オブジェクト指向モデリング [9] 2003年12月2日.
データ中心システム設計方法論“DATARUN” 
ソフトウェア工学 知能情報学部 新田直也.
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
47070 オブジェクト指向モデリング [3] 2001年10月15日.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
アジャイル開発プロセス 森口朋広.
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
オブジェクト指向モデリング [13] 2004年1月20日.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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