ObjectSquare [1999 年 4 月号]

[新人およびOO初心者に贈る「オブジェクト指向」本格入門]


1.オブジェクト指向って何?

オブジェクト指向とはObject-Orientedの訳で略してOO(オーオー)といいます。モノ中心にシステムを捉える、対象に則して設計する、という意味が込められた用語だといえるでしょう。オブジェクト指向プログラミングそのものは研究テーマとしては終息しつつありますが、オブジェクト指向モデリング技術やデザインパターン等のオブジェクト概念とソフトウェア工学の交差する部分には非常に広大な研究領域が広がっています。ぜひ、この分野に入ってこられる若い皆さんには、原理的な視点と役に立つ視点の交差する部分で研究者と現場の開発者とが協力しながら新しいアイデアを実践に結び付けていけるような活動を期待します。

私たちは日常生活をものやひとに囲まれてそれらとのやりとりを通して生きています。そこで起こる悩みや問題も基本的には、それらものを使い慣れた道具としさまざまなひととパートナーとしてお互い協力することで解決していくわけです。そのとき私たちは、こういう目的にはこの道具が使いやすい、この仕事にはあのパートナーと組むとやりやすい、と具体的な固有名を出して仕事の組み立てを頭の中でイメージしています。このような具体的な問題解決の要素となるものやひとのことを抽象化してオブジェクトと呼びます。

その際、ものやひとをその構造や機能や能力に応じて階層的に分類し、いつでも必要に応じて使い分けられるように概念整理しておくと便利です(ひとを使い分けるという言い方は倣岸ですが、いまのオブジェクト指向では基本的にものとひとの区別はしていません。その線で研究を進めていけば、エージェント指向に新しい展望が開けるかもしれません)。さまざまなオブジェクトを構造や機能によって類別し型として概念化したものをクラスと呼びます。クラスはその類似性と差異性にもとづいて適切な階層に分類されることになります。この階層のことをクラス継承階層と呼びます。

また仕事全体を進めていく上で、ものやひとどうしでお互いに「ひと仕事」を依頼しあいます。この仕事の依頼のことをメッセージと呼んでいます。依頼メッセージはできるだけ仕事仲間の間で共通化しておいた方が何か便利です。新人が入ってきても同じメッセージで仕事を依頼できれば、その業界で仕事の進め方を共通化したり要員が足りないときに新しいメンバーに来てもらっても仕事を遅滞なくスムーズに進めることができるようになります。同じ意味の仕事には同じ依頼メッセージを割り振るという命名規則のことをポリモーフィズムと呼んでいます。

以上のような考え方で対象を捉える仕方をオブジェクト指向モデリングといいます。それをソフトウェアの作り方の作法として全面的に採用したものがオブジェクト指向ソフトウェアであり、それを実際の計算機上でも採用したものがオブジェクト指向コンピューティングです。

このように、オブジェクト指向とはひとことでいうと、私たちの日常的な世界観にしたがって、対象をもの(概念のような抽象的な実体も含む)やひとの集合として認識し、それらの相互作用でさまざまな現象が説明できる、だからソフトウェアの構成法もそれに従って行うべきだという考え方です。非常に素朴で素直でそれでいて強力な「ソフトウェア・アニミズム」とでも呼ぶべき世界観です。


© 1999 OGIS-RI Co., Ltd.

Index

Next