目次
- 第二版への序文
- 初版のまえがき 基本なくして応用なし
第1章 それはシリコンバレーから始まった~オブジェクト指向の歴史
- きっかけはアラン・ケイ/コンピューティング環境Smalltalk/シミュレーションのためのSimula/Smalltalk後のオブジェクト指向~C++/Javaの衝撃/UMLの登場/21世紀:オブジェクト指向の一般化/理解するのが難しい理由
第2章 ケーキとDVDソフト~オブジェクト指向の概念を理解する
- あるSEの日常/オブジェクト/メッセージ/オブジェクト指向/オブジェクト指向の使い道/メッセージとオブジェクトの振る舞い/属性/状態/属性と状態/オブジェクトと仕事/責務/クラス/クラスの定義/クラスがあると何が嬉しいのか/オブジェクト指向とクラス指向/クラスどうしの分類/オブジェクト指向の本質は二つだけ
第3章 プログラミング言語進化論~オブジェクト指向プログラミングへの道
- プログラミングの進化の歴史/抽象化へ至る道/手続き抽象/構造化プログラミング/データ抽象/大規模化の壁/機能分割の課題/課題1:大規模分割を最初に行うことの難しさ/課題2:仕様変更の影響範囲の広さ/課題3:類似性の散在/データに関する課題/課題4:データの定義と利用箇所の乖離/課題5:名前の衝突/課題6:アクセス違反/モジュール化/課題1の解決/課題2の解決/課題3の解決/課題4の解決/課題5の解決/課題6の解決/モジュール化を取り入れたプログラミング言語/モジュール化の課題/オブジェクト指向/モジュールを型にする/継承
第4章 抽象化と分割の歴史がもたらしたもの~オブジェクト指向プログラミングの特徴
- オブジェクト指向で作ったシステムの構造/オブジェクトの定義と生成/カプセル化とアクセス制御/オブジェクト指向システムの動作に関する特徴/オブジェクトの組み合わせ/メッセージの送信/イベントとメッセージ/継承による差分プログラミング/ポリモーフィズム(多態性)/オブジェクト指向プログラミングの七つの特徴
第5章 ショートケーキはなぜショートケーキなのか~オブジェクト指向分析
- 「理解する」ということ/「内包」/特殊な概念と一般的な概念/概念の上下関係/「外延」/「属性」/人間の理解/人間の理解とオブジェクト指向の関係/オブジェクト指向分析の利点/(1)人間の理解の枠組みに対応した表現方法の存在/(2)メッセージの存在/(3)UMLという標準表記法の存在/オブジェクト指向分析の落とし穴/(4)必ずしも正解が手に入るとはかぎらない/(5)すべてを表現できるわけではない
第6章 中央集権から地方分権へ~オブジェクト指向設計
- オブジェクト指向設計の特徴/(1)結合度・凝縮度をコントロールする方法の増加/(2)設計思想の変化/【1】権限の委譲/【2】動くもののやり取り/【3】オブジェクト指向分析に基づく設計/オブジェクト指向らしさとは/(3)新しいメカニズム
第7章 よくあるQ&A~オブジェクト指向への疑問とその解答
- Q1 オブジェクト指向は「重くて使えない」と聞きましたが,本当ですか?/Q2 オブジェクト指向を使うと,生産性や品質が向上するのですか?/Q3 Javaを使えば,オブジェクト指向のメリットが得られるのですか?/Q4 オブジェクト指向で分析・設計をすると,何が嬉しいのですか?/Q5 本当に,現実世界をそのままモデル化できるのですか?/Q6 オブジェクト指向では「シームレスな開発ができる」と聞きましたが,これはどういう意味ですか?