森羅万象の本質を考えるのが古代ギリシャ時代以来の哲学者の仕事です。古代ギリシャ時代の哲学を集大成したのがプラトンとアリストテレスです。前回に引き続き、彼らの深遠な哲学体系のほんの一部を参考にしながら、オブジェクト指向との接点を考えていきたいと思います。第10回は「プラトン編−イデア論とクラス/インスタンス」と題し、「洞窟の比喩」におけるイデアとその影の在り方が、クラスとインスタンスの関係を連想させるものだというお話をしました。
今回はアリストテレス編です。アリストテレスは師であるプラトンのイデア論を認めようとしませんでした。鶏は卵から生まれるものであり、鶏のイデアから生まれるなどということはとうてい認められませんでした(図1)。ものの本質は目に見えないイデアの世界にあるのではなく、そのものの中にこそ存在すると彼は考えました。
『すべての人間は、生まれつき、知ることを欲する』これはアリストテレスの形而上学の始めの言葉です(アリストテレス「形而上学」出隆訳、岩波文庫)。アリストテレスは20年間もソクラテスに師事したのですが、それにもかかわらずイデア論には賛成できませんでした。イデアが始めに存在し、イデアこそが本質的存在であり、地上に存在する物理的実体はその影にすぎないというのがイデア論の考え方です。
しかし、このイデアなるものは目に見える形で取り出すことができないものであるという点にアリストテレスは納得がいきません。むしろ「実体が先にあって、それらを基にして人間が頭の中で抽象化して創りだしたものをイデアと呼んでいるにすぎないというのが自然な考え方である」というのがアリストテレスの考え方です。
この議論はオブジェクト指向分析でクラスが先かオブジェクトが先かという議論と少し似ています。クラス図を描く前に問題領域からクラスを抽出することが必要ですが、クラスは抽象概念であり、人間は具体的なものであるオブジェクトの方が理解しやすい。問題領域から具体的オブジェクトを抽出し、それらをグルーピングしてクラスを見つけていくのが分かりやすい方法です。
鶏が先か卵が先かの議論も、卵/ひよこ/親鳥すべて鶏の1つの状態にすぎない。見かけが違ってもその本質は鶏です。これはやや乱暴かもしれませんがデザインパターンにおけるステートパターンのイメージです。クラス「鶏」が鶏の本質を表し、クラス「鶏の状態」は抽象クラスであり、インスタンスは卵/ひよこ/親鳥のうちの1つです(図2)。
古代ギリシャの哲学者たちは万物の根源は何であるかを探し求め、デモクリトスは究極は原子であるとしました。それらの要素を組み合わせてすべてのものが成り立っていると考えました。
ところで「ものとは何か?」を突き詰めると「もの」はその本質である「形相」とその材料である「質料」から成立しているとアリストテレスは考えました。例えば「椅子」を考えてみましょう。事務用椅子、食事用椅子、丸椅子、ソファー、……などいろいろな利用目的のためさまざまな形の椅子があります。その材質も、木、金属、プラスチック、それらの組み合わせなどさまざまです。利用目的、形、材質はさまざまですが、すべて「椅子」であることに違いはありません。利用目的、形や材料などそれぞれ異なるのにどうしてでしょう? 「椅子」である限り、本質的には人が座るための道具であるという点で共通点があります。では、その本質とは目の前にある椅子のどの辺りにあるのでしょうか? 椅子を分解して調べましょうか? 足を外し、背中を外し、ひじ掛を外しばらばらにしてしまえばもはや椅子ではありません。材質が木の椅子なら単なる材木になってしまいます。すべての部品が元の形になっていてこそ椅子です(図3)。例えば、木というこの材質を「質料」と呼び、椅子の本質つまり椅子が椅子であるところのそのものを「形相」と呼びます。目に見えているのは質料で形相そのものは目に見えません。触ることもできません。
このように、ものは形相と質料から成立していると考えられます。「椅子とは何か?」に対して「what = 形相+質料」で答えることができます。これを椅子が存在する原因であると考え、それぞれ「形相因」「質料因」と呼びます。例えば、
(1)椅子の「形相因」とは椅子の本質、椅子が椅子であるところのそのもの、つまり人が座るための道具です
(2)椅子の「質料因」は例えば木や金属などの材質です
オブジェクト指向の基本概念であるクラスとインスタンスについて、これを当てはめるなら、クラスという抽象概念がオブジェクトの形相であり、その形相に質料を適用した具体的なものをインスタンスと考えることができます。
クラス=形相
インスタンス=形相+質料
次の疑問はなぜ椅子がそこにあるのか?−“why”です。「部屋に必要だから」「事務作業に必要だから」あるいは「店で買ってきたから」「大工さんが作ったから」といろいろな答え方があります。この答え方ですが2種類に分けて考えることができます。
(3)その椅子がそこにある目的(目的因)
→「部屋に必要だから」「事務作業に必要だから」
(4)その椅子がそこにある原因(始動因)
→「店で買ってきたから」「大工さんが作ったから」
これらの椅子が存在するためには“what”と“why”を満足する(1)〜(4)の4つの条件が必要です。アリストテレスはこれをものが存在するための4つの原因と考えました。万物の根源を探し求めていた哲学者たちは、そもそも「もの」とは何であるかを議論していたわけですがそれは形相と質料です。直接目には見えない本質的なものと目に見え、触ることのできる材料で成り立っていると考えていました。むしろその材料の根源を探し求めていたようです。万物の根源は水である(タレス)、あるいは火、土、空気、水の4元素説(エンペドクレス)などです。
多くの哲学者たちが“what”を静的にとらえようとしていたときにアリストテレスはなぜそれがあるか“why”を時間軸で考えたわけです。
時間軸の1つのとらえ方は原因連鎖です。それぞれの原因にはさらにその原因というものにさかのぼることができます。例えば、
(1)目的の連鎖
→椅子の目的=座るため、その目的=食事をするため、その目的=生きるため、その目的=社会に尽くすため、その目的=人生目標達成のため……
(2)質料因の連鎖
→椅子の質料=プラスチック、プラスチックの質料=石油、石油の質料=……
(3)始動因の連鎖
→椅子の始動因=大工さん、その始動因=大工さんに指示した人、その始動因=その人に依頼した人……
(4)形相因の連鎖
→形相因の連鎖は少し様相が異なりますので後で考えます。
ちなみにアリストテレスは原因連鎖は無限に続くものではなく、必ず始まりがあるとしています。例えば「形而上学」に次のような例を挙げています。
『目的としてのそれもまた、これを無限にさかのぼることはできない。例えば散歩は健康のため。健康は幸福のため。幸福はさらに他の何かのため……』
システム開発の世界でこの4原因説について考えてみましょう。さて、情報システムとは何か? についてどのような答えがあるでしょう。「情報システム=ハードウェア+ソフトウェア」という答えが第一に返ってきそうですね。情報システムとして実際に使用可能な目に見える実体はこの2つの要素から成立しています。当然ながら一方だけでは使えません。これが質料因です。
「“what” = 形相因+質料因」ですので、「情報システムとは何か?」の問いには質料因のほかに形相因が必要です。形相因とはその情報システムの本質、例えば販売管理システムなら、販売管理システムであるところのそのものです。抽象的な話はとても分かりづらいものですが、要は販売管理システムの仕組み、つまり設計が形相因であると考えることができます。
これで情報システムの“what”に対して形相因と質料因が与えられました。次は「“why”=目的因+始動因」です。まず情報システムの目的です。実際のシステム開発でも一番重要なところですが、開発が進行するにつれだんだんと忘れ去られていき、一体何のためのシステム開発かという問題が起こります。開発の原点です。システム開発は利害関係者の要望からスタートしますが、その要望の原因までさかのぼれば結局ビジネスの目標、企業のそもそものvisionとmissionまで行き当たるはずです。情報システムの存在目的はその「企業のそもそものvisionとmission」の実現を支援するためのものであるべきです。これが第1目的因です。目的因の連鎖を通してそのシステムの目的因はブレークダウンされたものです。
最後に始動因は、顧客=依頼主です。以上をまとめると次のようになります(図4)。
形相因=設計
質料因=ソフトウェア+ハードウェア
始動因=顧客
目的因=ビジネス支援
今回はアリストテレスの4原因説について考え、オブジェクト指向との接点を探りました。「クラス=形相」「インスタンス=形相+質料」と考えることができます。最後に情報システムに4原因説を適用してみましたが、2000年以上前の考え方が現代でも実にうまく当てはまることにあらためて驚きます。プラトン、アリストテレスの真理は普遍なものです。次回はアリストテレス編(2)応用編としてもう少し考えてみたいと思います。形相因の連鎖は宿題としておきたいと思います。
河合昭男(かわいあきお)
大阪大学理学部数学科卒業、日本ユニシス株式会社にてメインフレームのOS保守、性能評価の後、PCのGUI系基本ソフト開発、クライアント/サーバシステム開発を通してオブジェクト指向分析・設計に携わる。
オブジェクト指向の本質を追究すべく1998年に独立後、有限会社オブジェクトデザイン研究所設立、理論と実践を目指し現在に至る。ビジネスモデリング、パターン言語の学習と普及を行うコミュニティ活動に参画。ホームページ「オブジェクト指向と哲学」 。
『JavaデベロッパーのためのUML入門』(監修)。著書は『まるごと図解 最新オブジェクト指向がわかる』『まるごと図解 最新UMLがわかる』(共に技術評論社)、『明解UML−オブジェクト指向&モデリング入門』(秀和システム)。
Copyright © ITmedia, Inc. All Rights Reserved.