Download presentation
Presentation is loading. Please wait.
Published byゆりな おおかわち Modified 約 8 年前
1
ソフトウェア工学 理工学部 情報システム工学科 新田直也
2
演習問題 1 の解答例 入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票
3
演習問題 2 の解答例 クリーニング屋さんの DFD (料金計算処理) 品名 料金計算 処理本体 お客さん 最新整理番号 料金表 チケット 名前 電話番号 加工オプション チケット 発行処理 料金 クリーニング屋さんの DFD( 料金計算処理 ) 整理番号 タグ 発行処理
4
演習問題 2 の解答例 クリーニング屋さんの DFD (タグ発行処理) 品名 タグ発行処理 お客さん クリーニング 屋さん店員 タグ 加工オプション クリーニング屋さんの DFD( タグ発行処理 ) タグ 発行処理 整理番号
5
オブジェクト指向言語の歴史 プログラミング言語 Simula67 が実質上の起源. 1970 年代 Smalltalk で発展. Smalltalk は XEROX パロ・アルト研究所でアラ ン・ケイらによって開発された.「オブジェクト指 向」という言葉はアラン・ケイによると言われる. 1979 年 C++ 1991 年 Java 2000 年 C#
6
オブジェクト指向パラダイムと は オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる. ソフトウェアを処理や関数ではなくオブジェク トに分解する. オブジェクト指向の構成概念は 3 つ カプセル化(抽象データ型) 継承 多相性(ポリモルフィズム)
7
構造化パラダイムから オブジェクト指向へ 構造化パラダイムではソフトウェアは入出力を持 つ 処理(関数)に分解された. 基本的に,計算結果を出力したら何も残らない. → 科学技術計算や事務処理などの「計算」が中心と なるアプリケーションに向いている. 処理内容よりも残存するデータの方が重要なので は ? 入力出力 入力出力 処理 データ 処理 データ
8
酒屋の在庫問題を例に 酒屋の在庫問題では,在庫ファイルと在庫不足 リストが処理後も残存するデータである. 残存するデータに処理がくっついていると考え よう. 倉庫係 出庫依頼 出庫処理依頼者 積荷票 倉庫係 在庫不足リスト 依頼者 在庫なし連絡 空予定コンテナ 在庫ファイル 入庫処理 出庫指示書
9
カプセル化 データに(それを操作する)処理をくっつけたものをオ ブジェクト(クラス)という.またそのときの処理をメ ソッドという. データと処理を一体化することをカプセル化という. 情報隠蔽: カプセル化を行い,さらにデータと処理内 容を外部から隠すこと. 倉庫係 出庫依頼 依頼者 積荷票 倉庫係 在庫不足リスト 依頼者 在庫なし連絡 空予定コンテナ 在庫ファイル 出庫指示書 酒屋オブジェクト 出庫処理 入庫処理
10
オブジェクトとメッセージ オブジェクトは互いに他のオブジェクトのメ ソッドを呼び出すことができる.メソッドの呼 び出しをメッセージ送信ということもある. オブジェクト A メソッド 1 オブジェクト B 呼び出し オブジェクト A オブジェクト B メソッド 2
11
酒屋オブジェクトシステム 在庫ファイル オブジェクト 倉庫係 オブジェクト 依頼者 オブジェクト 入庫処理(積荷票) 書く(データ) 読む 酒屋 オブジェクト 出庫処理(出庫依頼) 在庫不足 リスト オブジェクト 書く(データ) 読む 出庫指示 オブジェクト指向では処理の構造が不明確にな る代わりに,データ間の関係が明確になる.
12
なぜカプセル化をするのか データを中心に処理をまとめると理解し易い. 一緒にまとめられている処理を眺めるだけでほぼ動作 を理解することができる. データを中心に処理をまとめると再利用し易い. あるデータ構造を別の場所でも使いたい場合,カプセ ル化されていれば,そのデータ構造に対する処理も一 緒についてくる. データ構造の変更に対して強い. 隠蔽しているデータの構造が変わっても,メソッド群 (インタフェース)さえ変わらなければ,使う側には 影響が及ばない. List オブジェクト add( 要素 ) get( 順番 ) delete( 順番 ) size()
13
オブジェクトの例 Window システムが好例 Window オブジェク ト スライドオブジェ クト 矩形オブジェク ト 線分オブジェク ト 円オブジェクト ツールバーオブジェク ト
14
クラスとインスタンス 同じデータ構造を持つものがたくさんある場合. データ構造やメソッドの定義 → クラス 定義に基づく 1 つ 1 つの個体 → インスタンス(オブ ジェクト) 円クラス 半径 中心座標 色 データ 拡大縮小 移動 円 インスタンス 拡大縮小 移動 円インスタンス 拡大縮小 移動 円インスタンス 拡大縮小 移動 円インスタンス
15
Java におけるオブジェクト指向 クラスの定義 class Circle { double radius; // 半径 double x; // x 座標 double y; // y 座標 int color; // 色 void move(double px, double py) { x = px; y = py; } void resize(double scale) { radius = radius * scale; } クラス名 メソッド定義 フィールド定義, メンバ定義
16
本日のまとめ オブジェクト指向の基本概念: カプセル化 継承 多相性 カプセル化について. オブジェクトとメソッド(メッセージ) クラスとインスタンス
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.