アリストテレスの4原因説

アリストテレスは「形而上学」で、形相因、質料因、始動因、目的因にて「もの」を捉えようとしたようです。ソフトウェアは実体が在るようで無い物です。

ソフトウェアが動作するためにはアルゴリズムが必要です。これは、ブロック図やフローチャートなどで表現できますが、本質的には人の頭の中にしかありません。つまり云ってみればコレが形相因
実際にソフトウェアを動かすためには、プログラミングという作業を経ます。我々はプログラミング言語を使ってアルゴリズムを実体化し、機械語に変換してからコンピュータで動作させます。このとき、GUIなどを付加して人に見える形になります。つまり、ある言語で書かれたプログラム、変換された機械語、コンピュータ、表示するディスプレイ、ユーザとのインタラクティブ性を備えるためのキーボード、マウスなどが質料因とも捉えられます。プログラミング言語で書かれたアルゴリズム、ってかなりメタな雰囲気もしますが、よく考えると文章は紙に書かれて、紙とインクは質料因、文章の意味するところは形相因と考えれば、プログラミング言語によってバイト列となったアルゴリズム=形相因は、HDDに磁気記録されていることで質料因となっていると云えます。(ちょっとうさん臭い?^^;)
形而上、というのは辞書を引くと「形を超越したもの」などと書かれています。逆に形而下という言葉もあり、「形を持ったもの」となるようです。つまり、形而を境に、モノは本質と物質を分ける、てな考え方が形而上学なのでしょう。本を読んでませんから多分に嘘っぽいですが。(笑) そもそもアリストテレスな訳で、哲学なのですから「我思う故に我在り」とか訳の判らん世界なので、まじめに考えすぎるとノイローゼになるかもしれません。^^;
ところで、以前、メタボリックスの山田さんが、今はオントロジを考えようとしている、といったことをおっしゃっていました。オントロジとは哲学用語で存在論を意味します。さらっとググるオントロジー工学なるものもあるようです。

ちゃんと勉強したわけではありませんが、存在とは何か?について考えることは、ソフトウェアが何を語るのか? と繋げて考えることが出来そうです。つまり、アリストテレスの話とも繋がるのだろうと。
始動因と目的因は、誰が何のためにソフトウェアを作ろうとしたか? という部分に関わりますから比較的理解しやすいところでしょう。
話し変わって、プロジェクトマネジメント面から考えてみると、要求工学的な部分に形而上的あるいはオントロジ的な部分が出てきます。そういえば、山田さんも要求の部分にオントロジを取り込む、ということをおっしゃっていました。最初から具体的な要求なんて存在しない、と言い切ってもいいかもしれません。要求が曖昧だと計画も曖昧(WBSなんて作っても意味が無いかも)になり、当然のことながら、進捗管理も曖昧になります。立脚する計画が曖昧なのですから、どれだけ文書が詳細に書かれていても、あっという間に足元から崩れていくことでしょう。
要求を初期の段階でどれだけ具体化できるか? その為には何が解っていて、何が解っていないか、それを良く考える必要がある、ということでしょう(当たり前か)。つまり、如何に形相因考え抜くか? が重要なことではないかなぁ、と。