「オブジェクト指向でなぜつくるのか」 平澤章 著

いままで継承とポリモーフィズムの違いがよく分かっていなかったが、継承が「実装の継承」でポリモーフィズムが「インターフェースの継承」というのは分かり易かった。
自分の理解のために簡単にまとめてみる。こういうのってどこまで書いちゃったら著作権を侵害したことになるんだろう?勘弁してね、という意味で紹介リンクも入れておく。

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―


以下、ごく簡単に内容のまとめ。


第1章 オブジェクト指向技術概略
 オブジェクト指向はもともとプログラミング言語として登場した。それを図で表現する技術としてUMLが誕生。さらに上流工程、開発プロセスにもオブジェクト指向が適用されていく。オブジェクト指向は難しいものと考えられているが、それは誤解である。


第2章 オブジェクト指向と現実世界の違い
 「オブジェクト指向は現実世界をそのままソフトウェアに表現する技術である」というのは間違いである。


第3章 OOPが登場するまでのプログラミング言語の歴史
機械語アセンブリ言語高級言語。その後は保守性を上げるように言語は進化した。それでも、グローバル変数と再利用性が低い点が問題として残っていた。


第4章 オブジェクト指向プログラミングの3大要素
3大要素はクラス、ポリモーフィズム、継承。クラスは変数とサブルーチンをまとめたもの。ポリモーフィズムは呼び出し側のロジックを統一する。継承によりコードの重複をなくすことができる。


第5章 メモリの使われ方
メモリは、静的領域、スタック領域、ヒープ領域の3つで管理される。クラス情報は静的領域に格納される。個々のインスタンスはヒープ領域に作られる。
継承したクラスでは、メソッドは親クラスの情報を使用する。変数は自分の変数をヒープ領域に持つ。


第6章 ソフトウェアとアイデアの再利用
OOPの仕組みにより再利用化が進み、クラスライブラリ、フレームワークコンポーネントなどが広まった。定石となる設計がデザインパターン。アイデアの再利用。


第7章 整理術としてのオブジェクト指向
上流工程では、オブジェクト指向は「集合論」と「役割分担」の仕組みを提供する。現在、整理術としてのオブジェクト指向とプログラミング技術としてのオブジェクト指向の2つがあり、それが混乱の元となっている。


第8章 UMLについて
UMLはプログラムの構造と動作、対象を整理した成果を図で表現することができる。オブジェクト指向ではないが、仕事の範囲、流れ、状態変化も表すことができる。


第9章 モデリングについて
人間が行っていたことをコンピュータの仕事に置き換えるために、業務分析、要求定義、設計が必要。その道具としてUMLによるモデリングが利用される。


第10章 オブジェクト指向設計
現在のプログラムでは保守性が重要である。保守性を高めるために必要なこと。
・重複をなくす ・独立性を高める ・依存関係を循環させない


第11章 開発プロセス
開発プロセスには、従来型のウォーターフォール型と反復型がある。反復型の方が変化に柔軟に対応できる。反復型の代表的なものとしてRUPとXPがある。
特にXPは、これまでの手法と違い、メンバのモチベーションやコミュニケーションを重視する。そのような手法はアジャイル開発プロセスと呼ばれる。


第12章 まとめ
オブジェクト指向は、プログラム開発を楽に行うための総合的な道具である。