第9章 オブジェクトの構築 日下部研究室 修士2年 秋本 浩平.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
クラス図(1) FM12013 山口 亨. クラスとは 現実に存在する “ 物体 ” (オブジェクト)の 構造や振る舞いなどに着目して注目し抽 象化したもの クラス図を含む UML のほとんどの図で使用 されている.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
エンティティ・リレーションシップ・モデル
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
組織の経営学 第1章 ニモ・クルー・からあげ.
オブジェクト指向プログラミング(4) 静的分析(2)
第1章 第1節 データを保存するときに(p.14-15) ・p.14 は,データ保存についての基本的な知識と保存場所について,実際の活用場面を想定して説明している。 ・p.15 は,ファイルの整理方法としてフォルダの活用と注意事項を紹介している。 1.
Javaのための暗黙的に型定義される構造体
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
アルゴリズムとデータ構造1 2007年6月12日
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
ユースケース図 FM12012 比嘉久登.
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
プログラミング演習3 第4回 ミニプロジェクト.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
福盛 秀雄, 浜中 征志郎, 菅原 健一, 吉川 潤, 中山 周平 早稲田大学 村岡研究室
3-3 クラス図の関係その2.
プロジェクトの選択基準 と CBAの役割と限界
CGプログラミング論 平成28年4月27日 森田 彦.
ユースケース図2-4~ FM11012 中島拓也.
第20章 Flyweight ~同じものを共有して無駄をなくす~
Bridge Pattern
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
SOA (Service-oriented-architecture)
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
プログラミング演習3 第3回 ミニプロジェクト.
その他の図 Chapter 7.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
第7回独習Javaゼミ セクション 1~4 発表者 直江 宗紀.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
第11週:super/subクラス、継承性、メソッド再定義
ソフトウェア制作論 平成30年12月5日.
11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS.
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
Java/Swingについて+ (4) 2005年10月26日 海谷 治彦.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
Minoのブロック配置のデータ構造 K.Yonezawa.
ソースコード縮退による ソースコード理解 神谷年洋 科学技術振興事業団 さきがけ研究21 オブジェクト指向シンポジウム2003.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
アプリケーション依存の先読みが可能なO/Rマッピングツール
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
第Ⅱ部 協力ゲームの理論 第7章 提携形ゲームと配分 2008/07/01(火) ゲーム理論合宿 M1 藤井敬士.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
アルゴリズムとデータ構造1 2006年6月23日
ソフトウェア制作論 平成30年11月28日.
アルゴリズムとデータ構造1 2009年6月15日
ゲームのタスクシステム 導入編 レベル2くまー By keychan.
プログラム分散化のための アスペクト指向言語
ロールを基にした構造進化の表現 Role based Evolution Dependency Structure Matrix
C10:秘匿共通集合計算プロトコルを用いた 就職活動支援システム“JHT”
アルゴリズムとデータ構造 2010年6月17日
ソフトウェア工学 知能情報学部 新田直也.
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

第9章 オブジェクトの構築 日下部研究室 修士2年 秋本 浩平

オブジェクトの相互関係 継承 コンポジション 関連 集約

継承とコンポジション 継承 is-a関係 特性を引き継ぐ コンポジション has-a関係 複数の特性をまとめる

コンポジション システムをサブシステムに分割 コンポジションと安定したシステムの関係 独立したサブシステムによる集約 サブシステムは関連によって結ばれる サブシステムも集約されたシステムである コンポジションと安定したシステムの関係

安定したシステム 階層構造を成す サブシステムは独立している サブシステムの大きさは適切である 安定したシステムは単純なものから進化する 単純なサブシステムでシステムを構成 サブシステムは独立している サブシステム間とサブシステム内部の対話が明らかである サブシステムの大きさは適切である 大きすぎても小さすぎてもいけない 安定したシステムは単純なものから進化する 既存のものを利用

よく分割されたシステム AVシステム 独立したサブシステムを組み合わせて AVシステムを構成 D社製品 CDプレイヤー D社製品 ヘッドホン D社製品 DVDプレイヤー D社製品 アンプ D社製品 5.1chスピーカー M社製品 PDP 独立したサブシステムを組み合わせて AVシステムを構成

よく分割されたシステム AVシステム サブシステム単位で交換可能 D社製品 CDプレイヤー D社製品 ヘッドホン D社製品 DVDプレイヤー B社製品 5.1chスピーカー M社製品 PDP サブシステム単位で交換可能

よく分割されたシステム AVシステム 規格に従っていれば 同じ会社(開発者)である必要はない O社製品 CDプレイヤー A社製品 ヘッドホン M社製品 HDD&DVDレコーダー P社製品 アンプ B社製品 5.1chスピーカー S社製品 HDプロジェクタ 規格に従っていれば 同じ会社(開発者)である必要はない

AVシステムのクラス図 AVシステムは多数の独立した オブジェクトで構成されている ⇒集約 ケーブルで接続し作業を分担する ⇒関連

依存関係 コンポジションによるシステムの分割 オブジェクトが互いに強く依存しないことが望ましい 領域の異なるオブジェクトは混ぜないほうが安定する 領域を重ねると便利なことがある

領域の重複 ー安定性を重視ー + 予約録画するとき、チューナとレコーダ 両方の設定が必要 片方が壊れてももう片方はつかえる 高い HDD&DVDレコーダ CSチューナ 予約録画するとき、チューナとレコーダ 両方の設定が必要 片方が壊れてももう片方はつかえる 高い スペースが必要

領域の重複 ー利便性を重視ー 予約録画が簡単 片方の機能が壊れても簡単に交換できない 部品の共通化が出来るので安い 省スペース CSチューナ内蔵 HDD&DVDレコーダ 予約録画が簡単 片方の機能が壊れても簡単に交換できない 部品の共通化が出来るので安い 省スペース

多重度 関連に参加するオブジェクトの数を指定 任意か必須か 数の制限はあるか 関連 多重度 任意/必須 従業員/部門 1 必須 従業員/職務明細 1...* 従業員/配偶者 0...1 任意 従業員/子供 0...*

多重度の例 関連 多重度 任意/必須 従業員/部門 1 必須 従業員/職務明細 1...* 従業員/配偶者 0...1 任意 従業員/子供 0...*

実装での表現(1) 数の表現(1:nの関連) 配列による実装 理論上では無限でも設計では十分大きな有限数とすることもある public class Employee extends Person{ : private Spouse spouse; private Child[] child; private Division division; private JobDescription[] jobDescription; }

実装での表現(2) 任意の関連 関連が0(null)であるかを確認するように 実装する必要がある

クラスの例