従来のソフトウェア開発法やそのための理論は,基本的には ``完全な計画'' すなわち完全 なプログラムや完全な仕様が記述可能であることを前提にしていたといってよいであろう. しかし,金田 [Kan 92] でものべたように,このような方法や理論には 2 つの問題がある.
第 1 は,人間は不完全な存在だということをわすれているという問題である.すなわち, プログラム開発につかわれるプログラミング言語などのトゥールは人間のわずかなあやま りすなわちミスタイプやバグをも許容しないし,論理にもとづくプログラムの理論はひと つでもバグのあるプログラムに対して「無意味」という烙印を押してしまう.対象が小規 模なプログラムならばこのようなトゥールや理論でも十分やくにたつだろうが,複雑な大 規模ソフトウェアにおいてはそうはいかない.人間が不完全な存在だということをみとめ るならば,人間がおかすあやまりについて,ソフトウェア開発トゥールはもっと配慮すべ きであり,そのためにはすくなくともなんらかのかたちで人間の不完全さを理論のなかで あつかえるようにしなければならない.
第 2 は,開放系 (open system)[*1] については本質的に完全な仕様の記述ができないという問 題である.構成要素が決定論的に動作し,あらかじめきめられた範囲の入力だけがあつか われる閉鎖系 (closed system) については,原理的には完全な仕様を記述することができる. しかし,人間社会や自然をシステムの一部としてくみこんでいるシステムや,それとイン タフェースされている開放系においては,そうではない.なぜなら,人間や自然は 非決定論的[*2]・非合理的に動作するために,予測できない部分がのこるからである.
金田 [Kan 92] は上記のような問題から出発し,計算システムの自己組織化によってこれ らの問題を解決しようとかんがえた.そこで,まずその第 1 歩として「自己組織系とはな にか」をかんがえた.そして,自己組織系の記述をめざした計算モデルとして化学的キャ スティング・モデル (chemical casting model, CCM) を提案し [*3],例題をしめした.しかし,金 田 [Kan 92] においてはソフトウェアに関する問題や自己組織化とモデルとのあいだにあ るギャップをうめることができなかった.すなわち,CCM にもとづいてどのようにソフ トウェアを開発するのか,どのようにしてどのような自己組織化をめざすのか,どうすれ ば問題の解決につながるのか,などがあきらかにされないままだった.この報告はこのよ うなギャップを部分的にうめることをめざしている.
自己組織的な計算システムを実現するまでのみちのりはとおい.この目的のためには CCM だけでなく,さまざまな面からの研究が必要だとかんがえられる.そこで,この報 告ではソフトウェア研究への 2 つの提案というかたちで主張をのべることにする.すなわ ち,「プログラムなしの計算をめざそう」,「計算システムを自己組織系としてみよう」 という提案である.これらの提案の実現に必要な 2 つのモデルすなわちミクロ・モデルと マクロ・モデルについて説明し,CCM をミクロ・モデルの例として位置づける.また, マクロ・モデルの例として,計算を確率過程としてみるマルコフ連鎖モデルをしめす.
[→ 次章]
[*1] (10/14/94 追記) 計算機の分野で open systems というと,あるいは 日本語でオープン・システムというと,通常はヘテロな結合が可能なコンピュータ・ システムのことを意味する.このことばが,このようにはるかにせまい意味に つかわれていて,誤解のもとになりうるのは不幸なことである.
[*2] (10/12/94 追記) ``Non-deterministic'' の訳として「非決定論的」と「非決定的」あるいは 「非決定性」とがあって, 計算機科学の世界では通常は後者がつかわれる.しかし,日本語としてはこれらの ことばは多少ことなるニュアンスをもっているようにおもわれる.「非決定的」 は non-deterministic automata におけるように厳密な意味があたえられている. これに対して「非決定論的」はそれほどせまく限定されていない.ここでは 通常 計算機科学でつかわれるのとはちがう (よりひろい) 意味でつかうことを 意図しているために「非決定論的」ということばをつかっている.
[*3] 金田 [Kan 92] はこのモデルを化学的プログラミング・モデル (chemical programming model, CPM) とよんでいた.