[オブジェクト指向を学ぶための入門書ガイド]
2.オブジェクト指向への道
まずどのような経緯でオブジェクト指向という考え方が生まれてきたのかをたどれる本、むずかしく言うとオブジェクト指向概念形成史について書かれた本を紹介しましょう。
なぜこうした本を皆さんに読んでほしいかというと、今の若い皆さんはもうすでにC++やJavaが生まれて普通に使われている時代にこの業界に入ってくる、したがって、オブジェクト指向言語以外は知らないという人がこれからはどんどん増えていくだろうと考えるからです。
そうすると困った問題が起きてきます。
アセンブラなりFortranなりBasic(といっても今のマイクロソフトのVisualBasic最新版とかのオブジェクト指向機能が含まれているヤツではありません。あくまでピュア?なBasicですよ;-)なりCなりで自分で工夫してデータ構造を作成して管理する手だてを作り上げたという経験をせずにプログラミングをすることになるからです。
一度は自分でオブジェクト指向風のプログラミングスタイルを非オブジェクト指向言語で作り出す体験をしておいてほしいものです。
継承まで含めるとおおごとになりますから、せめて抽象データ型(関連するデータ構造と手続き群をまとめてカプセル化したモジュールのこと)をシミュレートするにはプログラムとしてどんな道具立てが必要かを一度は自分の頭で考えておくとよいでしょう。
そうして初めて、オブジェクト指向のありがたさがわかるというものです。
岩波講座 情報科学12 算法表現論、木村泉・米澤明憲、岩波書店、1982
特に木村泉氏の書かれた序章は、自分で抽象データ型を発見しなかったソフトウェア技術者は一度は目を通しておくべきでしょう。
スパゲッティプログラムからいかにそれをほぐして構造化、データ抽象、抽象データ型とプログラムの複雑さに対処するための概念を発展させてきたかが、富士登山の替わりに擬似的な築山である「お富士さん」に登るように、パイオニアの登山者達の気持ちとその時点での眺望が追体験できます。
米澤氏の手になる後半もラムダ計算から型理論の基礎、アクター理論まで含むソフトウェアの基礎原理を簡潔にわかりやすくまとめてあってハンドブックとしても便利です。といってももう絶版でしょうから古本屋か図書館で探しましょう。
とはいえ、この本の序章でベースに使われているのはFortranです。
そんな言語見たことも聞いたこともないという諸君にはやはり読むのはつらいでしょう。
そんな向きには、もう少し現代的な言語をベースにして、やはりお富士山よろしく手続き指向から抽象データ型までの進化の道のりを体験させてくれる次の本はいかがでしょう。
ソフトウェア工学実践の基礎--分析・設計・プログラミング、落水浩一郎、日科技連、1993
特に前半の5章は構造化から始めて読者といっしょになって手続き抽象化、データ抽象化、オブジェクト指向への道のりをC言語と今ではめずらしい古き良き時代の言語Pascalを使ってたどっていくというものですから、現代の皆さんにも十分ついていけるはずです。
この本のすばらしさを伝えるために、ちょっといくつかの章や節のタイトルを引用してみましょう。
「構造と動作の抽象について」
「抽象化能力はソフトウェア作成の基礎である」
「プログラミング言語による計算機動作の抽象化」
「プログラミングとは意思決定の積み上げである」
「問題の分析から自然にプログラム構造を導き出すには」
「実世界をどのようにモデル化するのか」
「日々の暮らしに存在する情報のすべてが必要なわけではない」
どれをとっても含蓄の深いソフトウェア技術者のための標語にしたいようなものばかりです。
そして、後半では、家計簿システムを例に分析・設計・実装をひとまわり実体験できるように工夫されています。
実際のプログラミングに即してオブジェクト指向の発想にもとづくソフトウェア工学の基本的なものの見方を学ぶのに適した本書はぜひ新人のうちに読んでおかれることをお勧めします。なお、先の木村・米澤氏の本の内容をオブジェクト指向と分散システムの時代に合わせて大幅にパワーアップした新版と考えられるのが「岩波講座ソフトウェア科学17 モデルと表現、米澤明憲・柴山悦哉、岩波書店、1992」ですが、入門書の域を超えているのでここでは紹介しません。
オブジェクト指向の基礎を型理論を用いて多相型や継承まで含めた意味論を与えたり、分散システムのモデリング基礎にまでさかのぼってしっかりと勉強したい人にとっては最良の手引きとなることでしょう。
© 1999 OGIS-RI Co., Ltd. |
|