(57)【要約】本発明では、無限回の繰り返し構造によって単語の有意性を決定する仕組みを内在しているシナリオ関数の法則そのものをプログラミング言語で直接的にインプリメントすることだけで、従来法で完璧な製品（開発要望者所望のソフトウェア）にするために必要とされるスペシファィング、バリデーティング、ベリファィイング及びテスティングというアクティビティの無限回の繰り返しを実施したと同等の成果が達成され、当該無限回の繰り返しを回避しつつ開発要望を完璧に実現するソフトウェアの提供が実現される。
2002042904.tif 000002
【特許請求の範囲】
【請求項１】
生産するシステムに係る画面に表示するための送信情報を決定する第１のステップと、
前記送信情報を編集するＷ０４パレットの識別子を記録しているデータ・フィールドのデータコードを検査する第２のステップと、
前記第２のステップの結果、画面に表示するための送信情報がメニューである場合には当該システム内の総てのパレットを起動対象としてセットする第３のステップと、
前記第２のステップの結果、当該画面に表示するための送信情報がメニューでない場合には必要（新規／継続の指定）に応じて使用済みデータ・フィールドを初期化する第４のステップと、
前記送信情報を編集するＷ０４パレットを起動する第５のステップと、
前記第５のステップにおいてＷ０４パレットにより編集されたデータコードを当該画面に送信する第６のステップと、
前記画面上で操作されたデータコードの入力及びその処理指令とを受信する第７のステップと、
前記受信されたデータコード及び処理指令を受け入れるＷ０２パレットを起動する第８のステップと、
必要に応じてＷ０３パレット或いはＴ１にかかるパレット連鎖関数を起動する第９のステップと、
前記第１のステップ乃至第９のステップをシステム閉塞に至るまで無限に繰り返す第１０のステップと
を具備することを特徴とするソフトウェアの同期式スペシファィイング（ｓｐｅｃｉｆｙｉｎｇ）方法。
【請求項２】
生産するシステムに係る画面に表示するための送信情報を決定する第１のステップと、
前記送信情報を編集するＷ０４パレットの識別子を記録しているデータ・フィールドのデータコードを検査する第２のステップと、
前記第２のステップの結果、画面に表示するための送信情報がメニューである場合には当該システム内の総てのパレットを起動対象としてセットする第３のステップと、
前記第２のステップの結果、当該画面に表示するための送信情報がメニューでない場合には必要（新規／継続の指定）に応じて使用済みデータ・フィールドを初期化する第４のステップと、
前記送信情報を編集するＷ０４パレットを起動する第５のステップと、
前記第５のステップにおいてＷ０４パレットにより編集されたデータコードを当該画面に送信する第６のステップと、
前記画面上で操作されたデータコードの入力及びその処理指令とを受信する第７のステップと、
前記受信されたデータコード及び処理指令を受け入れるＷ０２パレットを起動する第８のステップと、
必要に応じてＷ０３パレット或いはＴ１にかかるパレット連鎖関数を起動する第９のステップと、
前記第１のステップ乃至第９のステップをシステム閉塞に至るまで無限に繰り返す第１０のステップと
を具備することを特徴とするソフトウェアの同期式バリデーティング（ｖａｌｉｄａｔｉｎｇ）方法。
【請求項３】
生産するシステムに係る画面に表示するための送信情報を決定する第１のステップと、
前記送信情報を編集するＷ０４パレットの識別子を記録しているデータ・フィールドのデータコードを検査する第２のステップと、
前記第２のステップの結果、画面に表示するための送信情報がメニューである場合には当該システム内の総てのパレットを起動対象としてセットする第３のステップと、
前記第２のステップの結果、当該画面に表示するための送信情報がメニューでない場合には必要（新規／継続の指定）に応じて使用済みデータ・フィールドを初期化する第４のステップと、
前記送信情報を編集するＷ０４パレットを起動する第５のステップと、
前記第５のステップにおいてＷ０４パレットにより編集されたデータコードを当該画面に送信する第６のステップと、
前記画面上で操作されたデータコードの入力及びその処理指令とを受信する第７のステップと、
前記受信されたデータコード及び処理指令を受け入れるＷ０２パレットを起動する第８のステップと、
必要に応じてＷ０３パレット或いはＴ１にかかるパレット連鎖関数を起動する第９のステップと、
前記第１のステップ乃至第９のステップをシステム閉塞に至るまで無限に繰り返す第１０のステップと
を具備することを特徴とするソフトウェアの同期式ベリファィイング（ｖｅｒｉｆｙｉｎｇ）方法。
【請求項４】
生産するシステムに係る画面に表示するための送信情報を決定する第１のステップと、
前記送信情報を編集するＷ０４パレットの識別子を記録しているデータ・フィールドのデータコードを検査する第２のステップと、
前記第２のステップの結果、画面に表示するための送信情報がメニューである場合には当該システム内の総てのパレットを起動対象としてセットする第３のステップと、
前記第２のステップの結果、当該画面に表示するための送信情報がメニューでない場合には必要（新規／継続の指定）に応じて使用済みデータ・フィールドを初期化する第４のステップと、
前記送信情報を編集するＷ０４パレットを起動する第５のステップと、
前記第５のステップにおいてＷ０４パレットにより編集されたデータコードを当該画面に送信する第６のステップと、
前記画面上で操作されたデータコードの入力及びその処理指令とを受信する第７のステップと、
前記受信されたデータコード及び処理指令を受け入れるＷ０２パレットを起動する第８のステップと、
必要に応じてＷ０３パレット或いはＴ１にかかるパレット連鎖関数を起動する第９のステップと、
前記第１のステップ乃至第９のステップをシステム閉塞に至るまで無限に繰り返す第１０のステップと
を具備することを特徴とするソフトウェアの同期式テスティング（ｔｅｓｔｉｎｇ）方法。
【発明の詳細な説明】
技術分野
本発明は、例えば業務用・個人用を問わずあらゆるソフトウェアに係るソフトウェアの同期式スペシファアィイング（ｓｐｅｃｉｆｉｉｎｇ）方法、バリデーティング（ｖａｌｉｄａｔｉｎｇ）方法、ベリファィイング（ｖｅｒｉｆｉｉｎｇ）方法、及びテスティング（ｔｅｓｔｉｎｇ）方法に関する。
背景技術
従来より、処理装置のさまざまな構成、例えば、スタンドアローン型、クライアント／サーバ型、クライアント／フロントサーバ／アプリケーションサーバ型に対して適用業務や適用機能をソフトウェアとしてインプリメント（実現）するに際しては、適用業務や適用機能が潜在的に発生させ得るさまざまな要求事象と、処理装置のさまざまな構成から誘導され得るさまざまな処理事象との間で生ずるさまざまなコンフリクト（衝突）事象に対し、矛盾なく対処する仕組みを確立し、単語を要素とする文章で表さなければならない。
しかしながら、このような要求事象や処理事象とそれらとの間に生ずるコンフリクト事象とそれに対する対処方法のすべてを人間技で抽出するということは原理的に不可能である。
なんとなれば、６０兆の細胞という有限な要素を基にして要求事象や処理事象やコンフリクト事象という現象に対して認識を成立させ、その現象を説明するための文章を作成するに必要な文章の要素である単語そのものを心の中で決定した後、具体的な言葉の発言という言動を表す人間という存在が、その要素の数（６０兆の細胞）と比較して無限に近い数の要素（この要素は、例えば宇宙全体を構成する素粒子とその素粒子相互から導出される現象）から成る要求事象や処理事象やコンフリクト事象の総てを捉えることは、“小は大よりも小さいのだから、小さいものがそれよりも大きいものは捉えることはできない”という数学的原理からも不可能であるからである。
すべての事象を人間技で捉えることはできないということから、ソフトウェア開発の当事者には、
・スペシファィイング（仕様定義）、
・バリデーティング（その仕様の正統性の確認）、
・ベリファィイング（その仕様記述の間違い排除）、
及び
・テスティング（仕様どおりに作られているかのテスト）
というアクティビティ（作業）の実行によって、捉えられる範囲の要求事象や処理事象やコンフリクト事象を捉え、その範囲内で相互に矛盾のない対処方法を模索し、かかる模索結果を目的ソフトウェアとしてインプリメントしなければならないことになる。
このようなアクティビティの本質はとりも直さず、要求事象や処理事象やコンフリクト事象や対処方法の説明のため、文法によって単語を部分集合させた文章を作り、それにより説明するということに他ならない。
この単語とは自然言語を構成する要素である。その単語を部分集合化させた文章で漏れや齟齬のないように説明するためには、その構成要素である単語自身の選択がその事象を厳密に説明するにふさわしい単語であって、且つ、漏れのないようになっていなければならない。その為には、その単語を使おうとした意図が明確でなければならないし、その単語の意味をはっきりと理解していなければならない。
しかし、単語を使おうとした意図は人のこころの中に埋没しており、他人はおろか当人にも直接的には決してうかがい知れる事柄ではありえない。直接的にうかがい知れないことから、その意図をはっきりと捉える為には無限回の自問自答や質疑応答が必要となるのである。
また、単語の意味をはっきりと理解するために辞書をひいて理解しようとすると、辞書には数多くの説明文章があり、かつ、その説明文章も単語の集合であることから、当該単語の正確な意味を捉えることは至難の技となる。すなわち、単語の意味を理解しようとして辞書を引くと、そのひとつの単語を説明するために必要な単語は更に５０倍から１００倍も必要ということになる。その５０倍から１００倍の単語の意味をそれぞれ理解しようとして辞書を引くと更に結果として５０倍にも１００倍にも単語が膨らむ。これを繰り返していくと辞書を無限回調査して無限個の単語についてその意味を調べなければ、最初の単語の正確な意味は捉えられないことになる。しかし、無限というのは限界が定まらないということであるから、結局、単語の意味は無限であり不定ということになる。（このようなことは集合論において、ラッセルのパラドックスとかゲーデルの不確定性定理といわれてもいる）。
結論として、「単語の意味を理解しようとして開発要望（単語の集合）の意図を満たそうとするアプローチ」は、集合論におけるラッセルのパラドックスを回避できない限り、原理的に不可能ということになる。
つまり、完璧な製品をインプリメントするために前述のアクティビティが必要とされているのところ、そのアクティビティということを成立させる要素が単語の意図と意味なのであり、その単語の意図と意味を完璧にするためには無限回に近い回数分の自問自答や質疑応答や調査が必要であるということになるが、無限回に近いこのようなアクティビティの繰り返しは現実的に実行不可能である。
そこで、現実的には、限定的な回数のアクティビティに止め、その限定的な回数による成果として纏められた限定的な範囲の仕様に対し、開発要望者と技術者とが暫定的に合意するという手続きをソフトウェアにかかる従来技術では採用せざるを得なかった。
この結果、従来においては、完璧な製品は無限回のアクティビティの繰り返しを行わなければ実現できないことから、限定的な回数のアクティビティでお茶を濁さざるを得なかったこれまでのソフトウェア開発方法との間には「お客様満足度（ＣＳ）」の評価尺度とされているＱ（ｑｕａｌｉｔｙ），Ｃ（ｃｏｓｔ），Ｄ（ｄｅｌｉｖｅｒｙ）そのものに原理的な限界と矛盾が内在していたことになる。
このように、従来のソフトウェア開発には、開発要望のソフトウェア実現において、そもそも開発要望の捉え方という出発点からして原理的な限界と矛盾が内在するという問題があった。
発明の開示
本発明は上記の従来技術の問題を解決するためになされたもので、従来の原理的な限界と矛盾を解消することを目的とする。
本発明の更なる目的は、完璧な製品（開発要望者所望のソフトウェア）にするために必要とされるスペシファィイング、バリデーティング、ベリファィイング及びテスティングというアクティビティの無限回の繰り返しを実施したと同等の成果を実際のかかるアクティビティなしに達成することにある。
かかる課題を解決するため本発明は、生産するシステムに係る画面に表示するための送信情報を決定する第１のステップと、前記送信情報を編集するＷ０４パレットの識別子を記録しているデータ・フィールドのデータコードを検査する第２のステップと、前記第２のステップの結果、画面に表示するための送信情報がメニューである場合には当該システム内の総てのパレットを起動対象としてセットする第３のステップと、前記第２のステップの結果、当該画面に表示するための送信情報がメニューでない場合には必要（新規／継続の指定）に応じて使用済みデータ・フィールドを初期化する第４のステップと、前記送信情報を編集するＷ０４パレットを起動する第５のステップと、前記第５のステップにおいてＷ０４パレットにより編集されたデータコードを当該画面に送信する第６のステップと、前記画面上で操作されたデータコードの入力及びその処理指令とを受信する第７のステップと、前記受信されたデータコード及び処理指令を受け入れるＷ０２パレットを起動する第８のステップと、必要に応じてＷ０３パレット或いはＴ１にかかるパレット連鎖関数を起動する第９のステップと、前記第１のステップ乃至第９のステップをシステム閉塞に至るまで無限に繰り返す第１０のステップとを具備することを特徴とする。
「パレット連鎖関数」とは、本発明に係る理論的帰結であるシナリオ関数の構成要素の一つであり、同構成要素のＷ０２パレット関数、Ｗ０３パレット関数、及び、Ｗ０４パレット関数を起動する働きを持ち、かつ、その論理構造（プログラムとして実現された場合には、プログラミング構造）が、生産対象のソフトウェアの機能・種類に拘らずに所与であるものをいう。
上記の構成を備える本発明では、無限回の繰り返し構造によって単語の有意性を決定する仕組みを内在しているシナリオ関数の法則そのものをプログラミング言語で直接的にインプリメントすることだけで、従来法で完璧な製品（開発要望者所望のソフトウェア）にするために必要とされるスペシファィング、バリデーティング、ベリファィイング及びテスティングというアクティビティの無限回の繰り返しを実施したと同等の成果が達成される。
発明の概要
本発明の基本となる考え方は、Ｌｙｅｅと呼ばれる開発方法論であり、これについては、ＰＣＴ／ＪＰ９６／０３１８３、ＰＣＴ／ＪＰ９７／０１４９２、ＰＣＴ／ＪＰ９９／０１３９４、ＰＣＴ／ＪＰ００／０４００８、特願平１１−３２１７８８号、及び、特願平１２−１６０８８７号で開示されているものである。
Ｌｙｅｅと呼ぶ開発方法論において単語の有意性を決定する内面の法則として確立されているシナリオ関数は、次の式で表される。
2002042904.tif 000003
ここで、「Ｔ０」は、単語が属する媒体を、識別子Ｒ（Ｒｅｃｅｉｖｅ）にて指標される入力画面、及び、識別子Ｓ（Ｓｅｎｄ）にて指標される出力画面とするシナリオ関数であり、「Ｔ１」は、「Ｔ０」にかかる単語の有意性決定を補助する単語が属する媒体を、識別子ｒ（ｒｅａｄ）／にて指標される入力ファイル、及び、識別子ｗ（ｗｒｉｔｅ）にて指標される出力ファイルあるいは帳票とするシナリオ関数である。
シナリオ関数の右辺は、その単語の「意味になる何か」であるところの有意性であるデータコードをその媒体上のその単語で指標されるデータ・フィールドに具象化するプログラムである。
なお、「意味」とは、その単語で識別されるデータ・フィールドに具象化されたデータコードを見た人の心（マインド）に湧出した何か（言表不可能なもの）であると考える。そして、その「何か」とは、人の心で知覚され、その知覚を契機として人（生命体）が生命の続く限りそれに対して反応（言動などの生命現象）させる原因に相当する事柄と考える。
するとかかる「反応」こそ、完璧なプログラム製品にするために必要であるとされているスペシファィイング、バリデーティング、ベリファィイング及びテスティングというアクティビティそのものとみなせることになる。
その反応の回数をｎとすると、スペシファィイング、バリデーティング、ベリファィイング及びテスティングというアクティビティを経て実現されたプログラム製品が果たす機能ＰＡとは、
2002042904.tif 000004
と表記できる。
即ち、Ｌｙｅｅの方法で実現されるプログラムＴ０は「ｎ回分のアクティビティ（即ち、完璧なプログラム製品にするために必要であるとされているスペシファィイング、バリデーティング、ベリファィイング及びテスティング）を経たものではない」のであるが、「その同じプログラム（シナリオ関数の右辺）をｎ回繰り返したものが要望を満たすための機能を果たすプログラム製品である」ということでもある。ｎ回繰り返すプログラムが常時同じＴ０であるということは、プログラムＴ０は個々のアクティビティ毎に変わることないということでもある。それ故、結果としてプログラムＴ０はｎ回分のアクティビティを繰り返した状態に至っているということがいえる。
そのシナリオ関数の右辺のうち、「Φ０（＋｛｝Ｒ＋｛｝＋｛｝Ｓ）」並びに「Φ１（＋｛｝＋｛｝＋｛｝）」をパレット連鎖関数と呼び、その構造法則をプログラミング言語で記述すればプログラムとなる。
「Φｐ｛，，，｝」はパレット関数と呼び、その構造法則をプログラミング言語で記述すればプログラムとなる。
「Ｙｎ（）」，「Ｒｎ（）」，「Ｌｎ（）」，「Ｌｎ（）」，「Ｐｎ（）」は総称して基底論理と呼び、その構造法則をプログラミング言語で記述すればプログラムとなる。
その内、
「Ｙｎ（）」は位相要素、
「Ｒｎ（）」はＲ型位相要素、
「Ｌｎ（）」は、
「Ｌ３（Ｒ，ｉ）」、「Ｌ３（ｒ，ｉ）」を位相要素型論理要素；
「Ｌ２（Ｒ，ｉ）」、「Ｌ３（Ｓ，ｉ）」、「Ｌ４（Ｓ，ｉ）」、「Ｌ２（ｒ，ｉ）」、「Ｌ３（ｗ，ｉ）」、　「Ｌ４（ｗ，ｉ）」は論理要素、
「Ｐｎ（）」は総称して作用要素、
その内、「Ｐ２（，Ｇ）」，「Ｐ４（，Ｐ）」を指令要素と、「Ｐｎ（，ｊ）」を経路要素と構造要素と呼ぶ。
ところで、単語とはソフトウェアの開発要望として開発要望者が自然言語で発した意味を有することになる情報の最小の単位となるものに対応する。
一方、シナリオ関数とは開発要望者がソフトウェアの開発要望としてその単語をその単語として発言しようと心のなかで決めた意図（つまり、これが意味なのであるが）をその単語自身を変数として求める関数でもある。
即ち、ｙ＝ｆ（ｘ）で表す関数の場合、変数はｘであるように、シナリオ関数の場合の変数は単語ｉ、より厳密には単語ｉに係る識別子である（以下では、便宜上、「シナリオ関数の場合の変数は単語ｉである」といういい方もする）。
即ち、
2002042904.tif 000005
である。
このとき、開発要望者がソフトウェアの開発要望を単語の部分集合の文章として発した「局面」を、情報処理システムの場合は「画面」など人が５感で直接的に認識できる媒体とみなしたのである。従ってかかる「局面」は、必ずしもいわゆる「画面」だけに限定するのではなく人が５感で認識できる媒体であればよい。
そのような媒体を識別する識別子Ｒ、Ｓ、ｒ、ｗを定義体識別子と呼び、また、それらの媒体上にペースト（貼り付け）された単語を識別する識別子ｉを単語体識別子と呼び、作用要素の場合はその作用要素を識別する識別子Ｇ、Ｐ、ｊを作用子と呼ぶ。
このシナリオ関数におけるパレット連鎖関数の「Φ０（＋｛｝Ｒ＋｛＋｛｝Ｓ｝）並びに「Φ１（＋｛｝＋｛＋｛｝｝）において、‘（’は定義体からのデータのＧＥＴ機能（受信機能やＲＥＡＤ機能）に対応する。
一方、‘）’は定義体へのデータのＰＵＴ機能（送信機能やＷＲＩＴＥ機能）に対応し、‘＋’はプログラムの起動機能に対応する。‘｛｝Ｄ’は｛｝内の要素を定義体識別子Ｄに属す分だけ集めるという意味であり、具体的にはＤで指標されるプログラムを起動の対象に含めるという意味である。
なお、Ｔ１の場合の添え字「２」、「４」で集められるグループ、及びＴ０及びＴ１の場合の添え字「３」で集められるグループについてはＤが添字になっていないから、それぞれのグループのプログラムは１本だけである。このようなグループをパレットと呼び、添え字「２」で集められるグループをＷ０２パレット、添え字「３」で集められるグループをＷ０３パレット及び添え字「４」で集められるグループをＷ０４パレットと呼ぶ。
またシナリオ関数におけるパレット関数の「Φｐ｛，，，｝」において、‘｛｝’は｛｝内の要素即ち基底論理を集めるという意味である。その集める範囲は＜Ｌ（第１の変数、第２の変数）＞で表される各基底論理の第１の変数に対応する定義体に属する第２の変数に対応する単語ごとのプログラム分である。この集めるということをＣＡＬＬ命令やＰＥＲＦＯＲＭ命令で代替させてもよい。
第１図乃至第３図は、本発明に係るシナリオ関数のコンポーネントであるパレット連鎖関数、パレット関数及び基底論理（論理要素）の論理構造を説明するためのフローチャートである。
すなわち、同図に示すようにパレット連鎖関数においては、まず、システムに係る画面に表示するための送信情報を決定する（ステップ１０１）。
次に、その送信情報を編集するＷ０４パレットの識別子を記録しているデータ・フィールドのデータコードを検査する（ステップ１０２）。
かかる第２のステップの結果、かかる画面に表示するための送信情報がメニューである場合には当該システム内の総てのパレットを起動対象としてセットする（ステップ１０３）。
ステップ１０２の結果、かかる画面に表示するための送信情報がメニューでない場合には必要（新規／継続の指定）に応じて使用済みデータ・フィールドを初期化する（ステップ１０４）。
次に、その送信情報を編集するＷ０４パレットを起動する（ステップ１０５）。
続いてステップ１０５においてＷ０４パレットにより編集されたデータコードを当該画面に送信する（ステップ１０６）。
この結果、かかる画面に対して利用者が操作し終わることを待ち（ステップ１０７）、かかる画面上で操作されたデータコードの入力及びその処理指令とを受信する（ステップ１０８）。
次に、かかる受信されたデータコード及び処理指令を受け入れるＷ０２パレットを起動する（ステップ１０９）。
必要に応じてＷ０３パレット或いはＴ１にかかるパレット連鎖関数を起動する（ステップ１１０）。
そしてこれらのステップ１０１乃至ステップ１１０をシステム閉塞に至るまで無限に繰り返す（ステップ１１１）。
次に、パレット関数は、パレット連鎖関数のステップ１０６で送信される情報を表示する画面ごとに設けられるＷ０４パレット、同じくパレット連鎖関数のステップ１０８で受信される情報が存在していた画面ごとに設けられるＷ０２パレット及びシステムに１つだけ設けられるＷ０３パレットに実装される。
第２図に示すようにパレット関数は、シナリオ関数の三つ目のコンポーネントであるところの基底論理を「その単語の有意性が成立する（再起動フラグがリセットされる）まで無限に起動を繰り返す」ステップを具備することが特徴的である。
最後に、基底論理（論理要素）は、画面に属する単語（この単語は開発を要望された適用業務や適用機能を説明する文章を構成している単語そのものである）ごとに設けられ、当該画面に対応するＷ０４パレットとＷ０２パレット及びＷ０３パレットに実装される。この基底論理は、前述したパレット関数によって「その単語の有意性が成立する（再起動フラグがリセットされる）まで無限に」起動を繰り返されて作動する。
その基底論理の論理構造は、第３図に示される。
即ち、まず、画面で識別されるメディアに対応する自パレットに属す自単語によって識別されるデータフィールドにその自単語の有意性が成立していないか（データコードが存在していないか）否かを確かめる（ステップ３０１）。
次に、ステップ３０１でデータフィールドに自単語の有意性が成立していない（データコードが存在していない）ときには、他のメディアに属し自単語と同じ識別子で指標される自パレットに属すデータフィールドにあるデータコードからの代入の試行か、もしくは当該自単語と同じとは限らない識別子で指標される自パレットに属すデータフィールドにあるデータコードによる演算の試行かのいずれか（この代入と演算によるデータコードの化体化を「データ結合」と呼ぶ）により自単語の有意性を化体化する試行を行い、その化体化された有意性を当該画面で識別されるメディアに係る自パレットに属す当該自単語で識別される作業用のデータフィールドに生成する（ステップ３０２）。
続いてステップ３０２の化体化試行が成立したか（データコードが存在しているか）否かを確かめる（ステップ３０３）。
ステップ３０３で化体化試行が成立している場合は化体した自単語の有意性を正統とするか否かを判断する（ステップ３０４）。
ステップ３０４で「正統」の場合には当該作業用データフィールドに存在している自単語の化体化有意性を自単語のデータフィールドへセットし、かつ当該基底論理の不成立状態を示すフラグの成立化を行う（ステップ３０５）。
更に、他の基底論理におけるデータ結合のみによる有意性化体化を再起動させるフラグの設定を行う（ステップ３０６）。
以上の説明において、パレット連鎖関数における「システム閉塞に至るまで無限に繰り返す」ということと、パレット関数における「その単語の有意性が成立する（再起動フラグがリセットされる）まで無限に起動を繰り返す」ということ、及び、基底論理における「他の基底論理におけるデータ結合のみによる有意性化体化を再起動させるフラグの設定を行う」ということとは、次のような密接な関係をもっている。
即ち、基底論理においては自己の単語の有意性が化体化されたことを以って「他の基底論理におけるデータ結合のみによる有意性化体化を再起動させるフラグの設定」を行う。
次に、パレット関数はその再起動フラグが設定されていればそれを初期化したのち基底論理を再起動する。
再起動された基底論理では、
・自己の単語の有意性が化体化されているか、
・自己の単語の有意性についての化体化の試行が失敗したか、
・化体化された自己の単語の有意性が正統でないか、
のいずれかならば、何の処理もせずに終了するから再起動フラグがセットされることはない。
総ての基底論理がそのような状態になり、次にパレット関数が作動すると再起動フラグが設定されていないので、そのＷ０３パレットを閉塞する。そして次のＷ０４パレットを経てその単語の有意性がパレット連鎖関数によって画面に送信される。
その具象化された単語の有意性を見たユーザがシステム閉塞の指示をすればパレット連鎖関数は自律的に閉塞するが、システム閉塞ではない指示をすればパレット連鎖関数が具備する論理によって再度Ｗ０２パレット、Ｗ０３パレット及びＷ０４パレットが作動する。つまり、システム閉塞ではない指示に従ってその単語の新たな有意性の化体化が行われる。
このようなシナリオ関数の「単語の有意性化体化」とは、開発を要望された適用業務や適用機能を説明する文章を構成している単語そのものに対して、
・スペシファィイング（前述基底論理のステップ３０２）、
・バリデーティング（前述基底論理のステップ３０３及び３０４）、
・ベリファィイング（前述基底論理のステップ３０１）、及び、
・テスティング（前述基底論理のステップ３０５）
というアクティビティを、その単語が有意となるまでｎ回（ｎには制限がない）実行しているものと見なすことができる。
開発要望の文章をきっかけにして要求事象や処理事象やコンフリクト事象とその対処方法を説明する文章がスペシファイイング、バリデーティング、ベリファィイング、及びテスティングという技術者の属人的なアクティビティによってスペシフィケーションというドキュメントに纏められ、それに基づいてインプリメントするというこれまでの方法に対し、Ｌｙｅｅでは個別の単語をその基底論理が有する法則に適合するように直接的にプログラミング言語で記述して実行すれば、システム内全単語の基底論理の有意性が総て同時的に成立するように働き、結果としてスペシファィイングとバリデーティングとベリファィイングとテスティングをした結果と等価な状態になるのである。
以上の特徴を有するシナリオ関数の持つ仕組みは、実はわれわれ人類のメンタルな「思考の仕組み」つまり「意識と認識の仕組み（構造）」即ち「ニューロンの仕組み」そのものとみなせることができる。
第４図は、本発明の一実施形態に係る単語が集合化された文章という開発要望と処理装置との関係を説明する概念図である。
すなわち、意識や認識を成立させる究極的不可分の要素が言動化した事柄をＬｙｅｅでは「単語」と呼ぶ。換言すれば「単語」とは「意味」を成立させ、それに基づく生命作用と生命現象を成立させる究極的不可分な要素である。
われわれ人類の言動という生命現象は、メンタルな世界における生命作用が単語ごとの有意性を知覚し、その結果として単語の発言という言動として具象化し、本人及び他人によって認識が可能となったものであると考える。
それが例えば適用業務や適用機能をソフトウェアとして実現したいとする開発要望を構成する単語の発言なのであり、またその適用業務や適用機能を例えばスタンドアローン型ソフトウェアに、また例えばクライアント／サーバ型ソフトウェアに、また例えばクライアント／フロントサーバ／アプリケーションサーバ型ソフトウェアになど、処理装置のさまざまな構成に対してインプリメントしたいとする開発要望を構成する単語の発言なのである。
そのようなわれわれ人類の言動という生命現象を引き起こすメンタルな世界の生命作用の仕組み（構造）が持つ普遍的法則を確立したものが取りも直さずシナリオ関数なのである。
つまり、われわれ人類は意識する／しないに関わらず、具象化されている事柄を第６感（気配）で知覚し、視覚、聴覚、触覚、嗅覚、及び味覚などにより生命作用のきっかけを与えられる。そして、その生命作用（即ち、思考作用）の帰結としてその事柄の意味を捉えて認識が行われ、言動と記憶という生命現象を引き起こす。
その具象化された事柄という現象を、さらに、意識する／しないに関わらず第６感（気配）で知覚し、視覚、聴覚、触覚、嗅覚、及び味覚などにより生命作用のきっかけを与えられる、という具合に生命現象と生命作用とが生命ある限り連綿と繰り返されることになる。
インプリメントするソフトウェアのスペシファィイング、バリデーティング、ベリファィイング及びテスティングというアクティビティは、このような生命現象と生命作用の永遠的な繰り返しによって適用業務や適用機能を説明するための単語の有意性を成立させようしていることに他ならないのである。
次に、このアクティビティをシナリオ関数の仕組みで説明する。
まず、開発要望が開発要望者の言動という生命現象として自然言語で表明する。この開発要望は単語が集合化された文章というものである。
第４図に示すように、この表明に至る開発要望者の生命作用の仕組み（ニューロンの仕組み）は、シナリオ関数のＷ０４パレットの作用と同じ仕組みで単語に属す性質（属性）並びに実体（単語の字面）として編集され、前述したパレット連鎖関数のステップ１０６の作用（画面への送信）と同じ仕組みで言動化（画面への単語の実体と実体に属す性質である属性とで表示化）されたものと見なすのである。
この開発要望は開発要望者の開発意図が実体とその属性として具現化したものであるが、その開発意図は、既に具象化されている適用業務や適用機能が呈している事柄を開発要望者の第６感（気配）で知覚し、視覚、聴覚、触覚、嗅覚、及び、味覚などにより与えられて働いた生命作用（認識作用）のなせる技であったものと考える。
つまり、既に具象化された事柄を開発要望者の第６感（気配）で知覚し、視覚、聴覚、触覚、嗅覚、及び、味覚などにより与えられるということは前述のパレット連鎖関数のステップ１０８の作用（画面からの受信）と同じ仕組みで行われたものと同義であるとする。
この画面からの受信を契機に、Ｗ０２パレット及びＷ０３パレットの作用と同じ仕組みによって発言（単語の実体と属性として画面に表示）された開発要望が意図を満たしているかのスペシファィイング、バリデーティング、ベリファィイング及びテスティングをしていくのである。
従って、開発要望の意図とは既に具象化されている適用業務や適用機能が呈している事柄を説明する単語の実体と属性とを導出する生命作用ということになる。
画面表示の形で開発要望の文章を構成する単語の実体と属性が表明されるに至るＷ０２パレット、Ｗ０３パレット及びＷ０４パレットの作用と同じ仕組みの生命作用を可逆化（発言された単語の実体と属性を意識の世界に在った筈のその単語の由来である意識連鎖に位相させ、そこから再度Ｗ０２パレット、Ｗ０３パレット及びＷ０４パレットを辿ること）すれば開発要望の意図は満たせるということになる。
即ち、表明された開発要望の単語に係るＷ０２パレットの作用と同じ仕組みのアクティビティを実行し、次にＷ０３パレットの作用と同じ仕組みのアクティビティを実行し、最後にＷ０４パレットの作用と同じ仕組みのアクティビティを実行すれば、単語の有意性が化体化され、その化体化された有意性が開発要望の意図として把握できることになるのである。
結局、シナリオ関数はインプリメントするソフトウェアのスペシファィイング、バリデーティング、ベリファィイング及びテスティングというアクティビティを単語の有意性の化体化という形態により実現していることになるのである。
これに対して、Ｌｙｅｅ以外の従来方法ではそのようなアクティビティを何ら法則性を持たない属人的な経験と知識と能力による生命作用と生命現象をその都度実行しなければならないのである。
Ｌｙｅｅでは、処理装置のさまざまな構成に対して適用業務や適用機能をソフトウェアとしてインプリメントするに際し、適用業務や適用機能からのさまざまな事象と処理装置のさまざまな構成から誘導されるさまざまな事象とのさまざまなコンフリクト（衝突）事象に耐える仕組みを確立するというのも、スペシファィイング、バリデーティング、ベリファィイング及びテスティングという生命作用と生命現象であるのだから、それらはすべてシナリオ関数の仕組み、つまり、適用業務や適用機能並びに処理装置のさまざまな事象を説明する単語を基底論理の仕組みを前提としてプログラミング言語でインプリメントし、それらを集めたＷ０４パレット、Ｗ０２パレット及びＷ０３パレットをパレット連鎖関数の作用と同じ仕組みで作動させるだけで、即、処理装置のさまざまな構成に適用される適用業務や適用機能のソフトウェアを自動的にスペシファイイング、バリデーティング、テスティング及びベリファイイング及びテスティングというアクティビティが継続的に行われることになるのである。
発明を実施するための最良の形態
以下、図面を参照して本発明の実施形態を説明する。
（１）スタンドアローン型処理装置へソフトウェアをインプリメントするに必要なスペシファィイング、バリデーティング、ベリフィケーション及びテスティング
開発要望者による開発要望は表面的には網羅性と正鵠性に欠けた文章で表明される。例えば「顧客が預金残高を確認できるソフトウェアを開発して欲しい」という具合に、例えば「預金元帳」という言葉が欠如した状態で表明される。
この開発要望は実際上、開発要望者の生命作用（思考作用）で決定され、言動という生命現象として表明されたものであるが、その生命作用と生命現象は開発要望者の深層心理に潜在しているシナリオ関数の持つ法則と等価な法則の成せる技であると本発明では考える。
すなわち、シナリオ関数の各コンポーネントの持つ論理構造はプログラミング言語で記述され、第４図に示したように処理装置の内部（主メモリ）にローディングされて作動する。
第５図は、本発明の一実施形態に係るシナリオ関数の三つめのコンポーネントである単語ごとの基底論理が生命作用を司るニューロンとみなした場合の生命作用と生命現象との関係を説明するブロック図である。
処理装置を生命体と見なすと、シナリオ関数の三つめのコンポーネントである単語ごとの基底論理は同図に示すように生命作用５０を司るニューロンの如くその生命体の深層心理に内在し、その作用によって単語の発言という言動（生命現象５２）が行われたと考えるのである。
すなわち、第５図において、
・Ｌ２（）はＷ０２パレット５０１に実装する基底論理（論理要素）
・Ｙ３（）はＷ０３パレット５０３に実装する基底論理（位相要素）
・Ｌ３（）はＷ０３パレット５０３に実装する基底論理（論理要素）
・Ｙ４（）はＷ０４パレット５０５に実装する基底論理（位相要素）
・Ｌ４（）はＷ０４パレット５０５に実装する基底論理（論理要素）
をそれぞれ意味し、ニューロンと見なせるものとする。
括弧内はそのニューロンによる生命作用で決定され生命現象５２として表明される開発要望を構成する単語である。
生命現象５２として表明されるこの開発要望を満たすソフトウェアをインプリメントするためのスペシファィイング、バリデーティング、ベリファィイング及びテスティングとは、既に表明された単語ごとのこれらの基底論理がシナリオ関数の有する法則を忠実に満たしてインプリメントされ、作動することを以て自ずから達成される。
従って、開発要望を満たすソフトウェアをインプリメントするためのスペシファィイング、バリデーティング、ベリファィイング及びテスティングとはシナリオ関数の有する法則を忠実に満たしてインプリメントするということと同義となる。
換言すれば、Ｗ０２パレット５０１に実装される基底論理の持つシナリオ関数の法則は、言動という現象として開発要望を具象されることになる個々の単語の字面という実体を成立させるに相応しいその単語に属す性質（属性）という有意性を決定する作用である。この作用を達成するためのシナリオ関数の法則を満たすには、まず、単語が表明されたという事実に着目する。この事実はその単語に対応するニューロンが深層心理に存在し作用したから生じた筈である。そのニューロンの仕組みをソフトウェアとして実現するためのアクティビティはベリファィイング（その仕様記述の間違いの排除）である。
すなわち、その単語に対応するデータ・フィールド並びに基底論理が実現されているかをチェックするというアクティビティがなされて、問題のないことが保証されなければならない。
これに対するシナリオ関数の法則は、パレット連鎖関数によるＷ０２パレット５０１の起動、起動されたＷ０２パレット５０１のパレット関数による基底論理の起動部分及び基底論理のステップ３０１部分が該当する。
パレット連鎖関数によるＷ０２パレット５０１の起動部分（ステップ１０９）の法則をＶｉｓｕａｌ　Ｂａｓｉｃ（以下、これを「ＶＢ」と表記する）なるプログラミング言語で記述すると、
2002042904.tif 000006
2002042904.tif 000007
となる。ここで、ｋはその開発要望として表明された文章を識別する識別子であり、情報処理装置の場合はその開発要望の単語を表示する画面の識別子である。今、前述した開発要望の文章を識別する識別子を「残高照会」とすると、パレット連鎖関数によるパレットの起動部分は各画面ごとに、
2002042904.tif 000008
となる。
このプログラムの意味するところは、開発要望として表明された文章が画面を介して表明されたとみなした場合、その画面に対応するパレットを引数なしで無条件に起動するということである。この記述によって、対応する基底論理が実装されているパレットが存在しなければコンパイラにより自ずからベリファィイングされ、その仕様記述が間違ったまま作動することがなくなる。即ち仕様記述の間違いの排除がなされることになる。
次に、パレット関数による基底論理の起動部分の法則をＶＢで記述すると、
2002042904.tif 000009
となる。ここで、ｉはやはり開発要望として表明された単語の実体（字面）であり、ｋもやはりその開発要望として表明された文章を識別する識別子である。今、前述した開発要望の文章を識別する識別子を「残高照会」とすると、パレット連鎖関数によるパレットの起動部分は各画面ごとに、
2002042904.tif 000010
となる。
このプログラムの意味するところは、開発要望として表明された文章に存在する単語ごとの基底論理なる関数を引数なしで無条件に起動するということである。この記述によって、対応する基底論理が存在しなければコンパイラにより自ずからベリファィイングされ、その仕様記述が間違ったまま作動することがなくなる。即ち仕様記述の間違いの排除がなされることになる。
次に、基底論理のステップ３０１の部分の法則は、その単語の実体（字面）を成立させ得る属性という有意性が決定されているかどうか、つまり、その単語の実体で指標されるデータ・フィールドがＷ０２パレット５０１に存在し、そのデータ・フィールドに属性を検査できるデータコードが存在するかどうかを検査する法則である。この法則をＶＢで記述すると、
2002042904.tif 000011
となる。従って、基底論理の第１のステップ部分は各単語ごとに、
2002042904.tif 000012
となる。
このプログラムの意味するところは、開発要望として表明された文章に存在する単語ごとのデータフィールド（Ｗ０２．残高照会．顧客、Ｗ０２．残高照会．が、Ｗ０２．残高照会．預金、Ｗ０２．残高照会．残高、Ｗ０２．残高照会．を、Ｗ０２．残高照会．確認、Ｗ０２．残高照会．できる）がＷ０２パレット５０１に存在し、属性を検査できるデータコードが存在しない（＝　“”）かどうかのチェック（Ｉｆ）ということである。この記述によって、対応するデータフィールドが存在しなければコンパイラにより自ずからベリファィイングされることになる。
この三つの部分は開発要望として表明された単語とその単語が属す文章に対応する定義体だけを扱っており、開発要望者の意図を一切歪めてはいない。すなわち、開発要望の意図を完璧（１００％）に満たしていることになる。
次に、Ｗ０２パレット５０１に実装される基底論理のステップ３０２の部分は、その単語の実体（字面）で識別されるＷ０２パレット５０１に属するフィールドを、その単語の字面という実体を成立させるに相応しい属性を定義するスペシファィイングというアクティビティに相当し、同時にそのとおりの属性として定義されているかどうかのバリデーティングとベリファィイングというアクティビティを行うという法則でもある。この法則をＶＢで記述すると、
2002042904.tif 000013
となる。ここで、ｉはやはり開発要望として表明された単語の実体（字面）であり、ｋもやはりその開発要望として表明された文章を識別する識別子であり、情報処理装置の場合はその開発要望の単語を表示する画面の識別子である。
今、例えば、「顧客」という単語は、番号という「数字属性」で「入力属性」と定義すればステップ３０２のスペシファィイングが満たされ、バリデーティングとベリファィイングはその単語の実体（字面）で識別されるＷ０２パレット５０１に属するフィールド（Ｗ０２．残高照会．顧客）の属性がそのとおりの属性（Ｎｕｍｅｒｉｃ）かの検査であるから、
2002042904.tif 000014
となり、スペシファィイングとバリデーティングとベリファィイングというアクティビティとインプリメントが同時に完了したことになるのである。
最後に、Ｗ０２パレット５０１に実装される基底論理のステップ３０３の部分は、前述のバリデーティングとベリファィイングの結果が偽であった場合、その単語の属性という有意性が成立できなかった旨を後続するパレットが判断できるようにしておくというテスティングの法則である。
この法則をＶＢで記述すると、
2002042904.tif 000015
となる。ここで、Ｎｏｎは有意性が成立できなかった旨を表すフラグであるということを意味し「不成立フラグ」と呼ぶ。
今、例えば、「顧客」という単語の場合は、
2002042904.tif 000016
となり、テスティングというアクティビティとインプリメントが同時に完了したことになるのである。
次に、Ｗ０３パレットに実装される基底論理の持つ法則は、言動という現象で開発要望を具象されることになる個々の単語の字面という実体を成立させるに相応しいバリュー（値を現すデータコード）を生成する作用である。この作用は位相要素あるいは論理要素のいずれかにより達成する。
位相要素の第１のステップは、その単語の字面で識別されるＷ０２パレットに属するフィールドに属性という有意性が成立しているかどうか、つまり、スペシファィイングとベリファィイングとバリデーティングが済んでいるかどうかを検査するというのが法則であって、テスティングというアクティビティに相当する。
この法則はその単語の字面で識別されるＷ０２パレットに属するフィールドにデータが存在し、不成立フラグがＦａｌｓｅであることを調べることで十分である。
この法則をＶＢで記述すると、
2002042904.tif 000017
となる。
今、例えば、「顧客」という単語は、
2002042904.tif 000018
となり、テスティングというアクティビティとインプリメントが同時に完了したことになるのである。
次の第２のステップは、属性という有意性が成立していればそのデータコードをその単語の字面で識別されるＷ０３パレット５０３に属するフィールドにセットするというスペシファィイングの法則である。この法則をＶＢで記述すると、
2002042904.tif 000019
となる。
今、例えば、「顧客」という単語は、
2002042904.tif 000020
となり、スペシファィイングというアクティビティとインプリメントが同時に完了したことになるのである。
論理要素の第１のステップは、その単語の字面で識別されるＷ０３パレットに属するフィールドにバリューが生成されていないかどうか、つまり、位相要素によってスペシファィイングが完了しているかどうかのテスティングの実行という法則である。この法則をＶＢで記述すると、
2002042904.tif 000021
となる。
今、例えば、「顧客」という単語は、
2002042904.tif 000022
となり、テスティングというアクティビティとインプリメントが同時に完了したことになるのである。
次の第２のステップは、その単語の字面で識別されるＷ０３パレット５０３に属するフィールドにバリューが生成されていなければ、その単語のバリューをその単語の字面で識別されるＷ０３パレット５０３に属する作業用フィールドに生成するという法則であり、スペシフィケーションというアクティビティに相当する。例えば、
・「顧客」という単語は「入力属性」であるから位相要素で生成されるので論理要素としてはロジックを持たない。
・「が」という単語は単なる「ラベル属性」であるからロジックを持たない。
・「預金」という単語は「入力属性」であるから位相要素で生成されるので論理要素としてはロジックを持たない。
・「残高」という単語は「出力属性」であるから元帳に属する残高で生成されるので論理要素としてはロジックを持たない。
・「を」という単語は単なる「ラベル属性」であるからロジックを持たない。
・「確認」という単語は「入力属性」であるから位相要素で生成されるので論理要素としてはロジックを持たない。
・「できる」という単語は単なる「ラベル属性」であるからロジックを持たない。としてスペシファィイングする。この法則をＶＢで記述すると、
2002042904.tif 000023
となる。
今、例えば、「残高」という単語は、「元帳に属する残高で生成」としてスペシファィイングされたので、
2002042904.tif 000024
となり、スペシファィイングというアクティビティとインプリメントが同時に完了したことになるのである。
ここで、「元帳に属する残高」という当初の開発要望としては顕在化してはおらず当初の開発要望に潜在していた単語がスペシファィイングの法則を満たすようにアクティビティすることによって浮かび上がってきたことになる。この「元帳に属する残高」という新たな単語が及ぼす影響とシナリオ関数の法則との関係については後述する。
次の第３のステップは、前述の第２のステップが成立したか（バリューが生成できたか）否かを確かめるベリファィイングに相当するアクティビティの法則である。この法則をＶＢで記述すると、
2002042904.tif 000025
となる。
今、例えば、「残高」という単語は、
2002042904.tif 000026
となる。何故に、これがベリファィイングかといえば、前述の第２のステップが成立するためにはバリュー生成式が正しくなければならないからである。
例えば、
2002042904.tif 000027
というバリュー生成式が必然的に成立するためには、右辺のデータフィールドが存在していることが必要であり、その為には右辺に対応する単語が定義されていなければならないのである。
しかし、この時点では「元帳上の残高」という単語は第５図上に現れていない。
この結果、このプログラムはこのままでは必ず異常終了することになる。この異常終了を引き起こさないようにすることこそベリファィイングの目的であるから、この第３ステップの法則を満たしたことにより、このままでは不足する「元帳上の残高」という単語をこの開発要望を説明する単語として充足するというアクティビティが必然的に必要になったことになる。
結果として、ベリフィケーションというアクティビティとインプリメントが同時に完了したことになるのである。そして「元帳上の残高」という単語はバリューという有意性が記憶ということを司る元帳という媒体に属する単語であるから、シナリオ関数の法則によればシナリオ関数Ｔ１で扱う単語となり、かつ、境界単語としてシナリオ関数Ｔ０にも属させることがシナリオ関数の法則から導き出せるのである。このようにして、バリューという有意性を生成させるスペシフィケーションをシナリオ関数の法則を満たすように執行していけば完璧なスペシフィケーションが自ずから達成されるのである。
次の第４のステップは、前述の第３のステップが成立している場合は化体したバリューという有意性を正統とするか否かを判断するバリデーティングに相当するアクティビティの法則である。この法則は前述の第２のステップのバリュー生成式が複数の単語で演算する場合のみ必要となる法則である。
すなわち、前述のようにバリュー生成式が１個の単語による代入式の場合は前述の第３のステップでベリファィイングされ、その結果としてバリデーティングもされるのであるが、複数の場合は譬えベリファィイングされていたとしても、数学的な意味で生成が成立するとは限らないからである。例えば、Ａ＝Ｂ＋Ｃという計算式が必然的に成立するためには、ＢとＣのいずれかに有意なバリューが存在しなければならないのである。
このような理由から、この第４のステップでは前述の第２のステップのバリュー生成式が複数の単語で演算する場合のみ、その生成式を必然的に成立させる条件を調べるというバリデーティングに相当するアクティビティを行う。
例えば、前記「Ａ＝Ｂ＋Ｃ」の場合は、
2002042904.tif 000028
となり、バリデーティングというアクティビティとインプリメントが同時に完了したことになるのである。
次の第５のステップと第６のステップは、前述の第４のステップが正統の場合には前述の作業用データフィールドに生成されているバリューという有意性を自己のデータフィールドへセットし、かつ当該基底論理の不成立状態を示すフラグの成立化を行い、更にＷ０３パレット５０３に属する他の総ての基底論理におけるデータ結合のみによるバリューという有意性化体化を再起動させるフラグの設定を行うというバリデーションに相当するアクティビティの法則である。この法則をＶＢで記述すると、
2002042904.tif 000029
となる。ここで、Ｎｏｎは有意性が成立できなかった旨を表す「不成立フラグ」であることを意味し、Ｗ０３．Ｒｅｃａｌｌ＿ＦＬＧは再起動させるフラグで「再起フラグ」と呼ぶ。
今、例えば、「残高」という単語は、
2002042904.tif 000030
となり、バリデーティングというアクティビティとインプリメントが同時に完了したことになるのである。
このようにこの単語にかかるバリューという有意性が成立して再起フラグがセットされた結果、Ｗ０３パレットに実装されたすべての基底論理が再び作動し始めることになる。そして、第１のステップでバリューという有意性が成立しているか、第３のステップでバリューという有意性が成立していないか、第４のステップでバリューという有意性が正統でないかのいずれかの状態にすべての基底論理が同時に至るまで無限に繰り返されることになる。
即ち、無限回のスペシファィイングとバリデーティングとベリファィイングとテスティングがされ、途中、異常終了することなしに、すべての単語において第１のステップでバリューという有意性が成立しているか、第３のステップでバリューという有意性が成立していないか、第４のステップでバリューという有意性が正統でないかのいずれかの状態に同時に至れば不定でない完璧なソフトウェアが生成されたことになる。
上述した一連の働きを、同期式スペシファィイング、同期式ベリファィイング、同期式バリデーティング及び同期式テスティングと呼ぶ。なお、第３のステップでバリューという有意性が成立していない場合と、第４のステップでバリューという有意性が正統でない場合は、インプリメントされたソフトウェアを利用する人間側の操作事象か処理装置の故障事象かに限定されるので次のＷ０４パレットに実装される基底論理によって利用者への報告事象として実現されることになる。
次に、Ｗ０４パレット５０５に実装される基底論理の持つ法則は、言動という現象で開発要望を具象されることになる個々の単語の字面という実体を成立させるに相応しい「形式」という属性にかかる有意性を編集する作用である。この作用は位相要素及び論理要素とにより達成する。
位相要素の第１のステップは、その単語の字面で識別されるＷ０２パレット５０１に属するフィールドに属性という有意性が成立しているかどうかを調べ、もし成立していれば、それをその単語の字面で識別されるＷ０４パレット５０５に属するフィールドにセットする。もし、成立していなければ、その単語の字面で識別されるＷ０３パレット５０３に属するフィールドに属性という有意性が成立しているかどうかを調べ、もし、成立していればそれをその単語の字面で識別されるＷ０４パレット５０５に属するフィールドにセットするというテスティングとバリデーティングとスペシフィケーションというアクティビティに相当するのが法則である。この法則をＶＢで記述すると、
2002042904.tif 000031
となる。
今、例えば、「残高」という単語は、
2002042904.tif 000032
となり、テスティングというアクティビティとインプリメントが同時に完了したことになるのである。
論理要素の第１のステップは、その単語の字面で識別されるＷ０４パレットに属するフィールドにバリューという有意性が成立しているかどうか、つまり、位相要素によってバリューという有意性が成立しているかかどうかを検査するバリデーションというアクティビティに相当する法則である。しかし、Ｗ０２パレット５０１及びＷ０３パレット５０３を異常終了することなしに作動したということは、ここまでのスペシファィイングとベリファィイングとバリデーティングとテスティングは完璧であることを意味するのであるから、何らかの有意性は必ず成立していることになる。従って、この第１のステップの結果は必ず真となり第２のステップに進めるようでなければならない。
この法則をＶＢで記述すると、
2002042904.tif 000033
となる。
今、例えば、「残高」という単語の場合は、
2002042904.tif 000034
となる。
次の第２のステップは、そのバリューという有意性をその単語の字面で識別されるＷ０４パレット５０５に属するフィールドにその単語の字面という実体を成立させるに相応しい形式に編集するというスペシフィケーションというアクティビティに相当する法則である。その単語の字面という実体を成立させるに相応しい形式に編集するということは、例えば、「残高」という単語は「通貨記号を数字の先頭に付与する」という形式に編集する、というスペシファィイングに相当する。これをＶＢで記述すると、
2002042904.tif 000035
となり、スペシファィイングとインプリメントとが同時に完了する。
次の第３のステップは、前述のＷ０２パレット５０１乃至Ｗ０３パレット５０３の基底論理が目的を達成したかどうかを否かを確かめ、不成立フラグがセットされていたならば、不成立の旨をＭＳＧなる単語で報告するスペシファィイングというアクティビティに相当する法則である。この法則をＶＢで記述すると、
2002042904.tif 000036
となる。
今、例えば、「残高」という単語の場合は、
2002042904.tif 000037
となり、エラー事象に対するスペシファィイングとインプリメントとが同時に完了するのである。
このようにして、開発要望を表明するために発言された単語からその開発要望を満たすソフトウェアをインプリメントするためのスペシフィケーションとバリデーションとベリフィケーションというドキュメントを作成することなく、その単語の発言に至るメンタルな領域での思考の仕組みをシナリオ関数の法則に当てはめてプログラミング言語でインプリメントするだけで、スペシファィイングとバリデーティングとベリファィイングとテスティングというアクティビティが執行されたと等価なソフトウェアを完成できるのである。
第６図は、このようにしてインプリメントされたプログラムの構成と作動の順序を説明するブロック図である。
同図において二重矢線はパレット連鎖関数Φ０（６０）というプログラムである。Φｐ４（６０１）、Φｐ２（６０３）及びΦｐ３（６０５）はパレット関数である。Ｙｎ（）は位相要素でありＬｎ（）は論理要素である。作用要素は図中省略してある。
さて、開発要望の表明は画面表示と等価である。そして、画面上の単語はその単語ごとの５つの基底論理が有する法則と等価とみなせるニューロンの作用でその実体と属性という有意性が決定され発言された事柄と考える。
その基底論理が有する法則は前述のとおりその単語の有意性決定のためのスペシファィイングとバリデーティングとベリファィイングとテスティングの法則を具現化したのであるから、このような基底論理が作動するということは開発要望として表明された単語のスペシファィイングとバリデーティングとベリファィイングとテスティングというアクティビティが同時に行われているということができるのである。
（２）クライアント／サーバー型処理装置へソフトウェアをインプリメントするに必要なスペシファィイング、バリデーティング、ベリフィケーション及びテスティング
前述したように、ソフトウェアを開発したいという要望は自然言語の単語からなる文章で表明される。その文章を構成する一つの単語の表明に至るメンタルな領域での思考の仕組みをシナリス関数の仕組みと等価であると見なせば、その単語はその単語の実体に属す性質（属性）との関係だけでバリューがセットされ、その結果として表明という事実に至ったのではなく、一つの単語のバリューがセットされたその延長でこの単語にかかる再起フラグがセットされ、その帰結としてその単語にかかる元帳上の残高を含むＷ０３パレットに属しているすべての単語の基底論理が同期式にスペシファィイングされ、同期式にベリファィイングされ、同期式にバリデーティングされかつ同期式にテスティングされた結果であるということになる。
即ち、スタンドアローン型に対して適用業務や適用機能をソフトウェアとしてインプリメントするということは、開発要望者がメンタルな領域でその適用業務や適用機能をイメージしていたのである。その開発要望者という生命体を一つの処理装置とし、その思考作用はその一つの処理装置上の主メモリにストアしたシナリオ関数で規定されたソフトウェアと見なした場合の実現形態がスタンドアローン型なのである。
この適用業務を例えばクライアント／サーバ型のソフトウェアとしてインプリメントするということは、もともと一つの生命体でイメージしたものを今度は二つの生命体で一つの適用業務或いは適用機能をイメージする場合に相当する。
本来一つの生命体で執行しようとしていた適用業務あるいは適用機能を二つの生命体で同じ適用業務あるいは適用機能を執行するに際しては、二つの生命体の勝手な要求事象や処理事象とのコンフリクト事象をあたかも一つの生命体として作用するように対処しなければならない。この対処方法がいわゆるプロトコルという概念である。
第７図は、本発明の一実施形態に係る適用業務や適用機能を二つの処理装置がクライアントとサーバ型とに分かれて執行するソフトウエアをシナリオ関数の立場で説明する概念的ブロック図である。
同図に示すとおり、一つの処理装置７０上での適用業務や適用機能を二つの処理装置、クライアント７２とサーバ７４とに分かれて執行することをシナリオ関数の法則で説明すれば、
シナリオ関数Ｔ０をクライアントに、
シナリオ関数Ｔ１をサーバに、
それぞれ割り当てるということになる。
そして、スタンドアローン型７０の場合、シナリオ関数Ｔ０とシナリオ関数Ｔ１との関係は一つの生命体を前提としていたのであるからプロトコルは一切不要で双方はＷ０３パレット（７０１、７０３）を介して逐次的に交信するだけであったのであるが、クライアント／サーバ型（７２、７４）にあっては二つの生命体はそれぞれ自律的な生命作用と生命現象を行うので、ここにコンフリクト事象が発生する。しかし、適用業務や適用機能を遂行するという使命は維持されざるを得ないので、双方の生命体同士の間でプロトコルが自ずから行われなければならない。
第８図は、双方の生命体同士の間でひとつの目的を達成するに必要となるプロトコルを説明するためのシークェンシャル・チャートである。
同図に示すように、適用業務や適用機能を二つの処理装置でクライアントとサーバとに分かれて分担するソフトウェアとしてインプリメントする場合に従来法では必須とされていたプロトコル制御のための状態遷移図やデシジョンテーブルの作成ということをせずに、適用業務や適用機能を遂行するために二つの生命体から表明される第８図に示されるプロトコルに係る単語をシナリオ関数Ｔ１の法則に当てはめプログラミング言語でインプリメントするだけで、従来におけるプロトコルの概念が達成されるのである。
具体的には第９図に示すように、プロトコルに係る単語（９０１、９０３、９０５、９０７、９０９）を、シナリオ関数Ｔ１を具現化するプログラムである各パレットＷ０４（９２）、Ｗ０２（９４）、Ｗ０３（９６）中の定型的な（変数）識別子挿入位置に貼り付けることで実現される。
因みにＷ０４（９２）、Ｗ０２（９４）、Ｗ０３（９６）は、上述のように、シナリオ関数の持つ法則性により、かかる定型的な（変数）識別子挿入位置以外はプログラムの種類・機能、単語の異同等に関係なく所与の構造を持つ。
（３）クライアント／フロントサーバ／アプリケーションサーバ型処理装置へソフトウェアをインプリメントするに必要なスペシファィイング、バリデーティング、ベリフィケーション及びテスティング
クライアント／フロントサーバ／アプリケーションサーバからなるインターネットという処理装置構成の基で一つの適用業務や適用機能を遂行するソフトウェアをインプリメントする場合のスペシファィイング、バリデーティング、ベリフィケーション及びテスティングというアクティビティをシナリオ関数ではどのようになるかを考察する。
第１０図は、本発明の一実施形態に係る適用業務や適用機能を三つの処理装置がクライアントとフロントサーバとアプリケーション・サーバとに分かれて執行するソフトウェアをシナリオ関数の立場で説明するための概念的ブロック図である。
インターネットという処理装置構成はクライアント／サーバ型を２層と見ると同図に示すように、一見３層で構成されているかのように見える。しかしながら、実態は、２層からなるクライアント／サーバ（ｂ）におけるクライアント部分１１０の画面部分１１０Ａと処理装置部分１１０Ｂとを分割した（１３０、１４０）にすぎない。これは、クライアント／サーバ型（ｂ）において行っていた画面の定義をＨＴＭＬというインターネット特有の言語でおこない、その画面をブラウザとスクリプトと呼ぶ標準化されたソフトウェアで制御する方式である。
従って、基本的には適用業務や適用機能をクライアント／フロントサーバ／アプリケーションサーバ型（ｃ）の処理装置１４０，１５０上のソフトウェアとしてインプリメントする場合のスペシファィイング、バリデーティング、ベリフィケーション及びテスティングにおいては、クライアント（画面１３０）とフロントサーバ１４０との間をＨＴＭＬで定義された情報を画面１３０に送信し、ＵＲＬで定義された画面１３０からの情報を受信するコマンド作用要素の法則に当てはめてインプリメントし、他の部分はクライアント／サーバ型（ｂ）の場合と同じ方法でインプリメントすれば良いのである。
第１１図は、以上詳細に説明した点を概念的に表したコンセプチュアル・チャートである。
同図に示されるように、開発要望を表明するために発言された単語からその開発要望を満たすソフトウェアをインプリメントするためのスペシフィケーションとバリデーションとベリフィケーションというドキュメントを作成することなく、その単語の発言に至るメンタルな領域での思考の仕組みをシナリオ関数の法則に当てはめてプログラミング言語でインプリメントするだけで、スペシファィイングとバリデーティングとベリファィイングとテスティングというアクティビティが執行されたと等価なソフトウェアを完成できるのである。
以上詳細に説明したように、本実施形態に係る本発明のソフトウェアの同期式スペシファィイング（ｓｐｅｃｉｆｙｉｎｇ）方法、バリデーティング（ｖａｌｉｄａｔｉｎｇ）方法、ベリファィイング（ｖｅｒｉｆｙｉｎｇ）方法、及びテスティング（ｔｅｓｔｉｎｇ）方法によれば、完璧な製品にするために必要とされるスペシファィング、バリデーティング、ベリファィイング及びテスティングというアクティビティの無限回の繰り返しを実施したと同等の成果を、無限回の繰り返し構造によって単語の有意性を決定する仕組みを内在しているシナリオ関数の法則そのものをプログラミング言語で直接的にインプリメントすることだけで、達成が可能となる。
産業上の利用可能性
以上詳述したように、本発明によれば、無限回の繰り返し構造によって単語の有意性を決定する仕組みを内在しているシナリオ関数の法則そのものをプログラミング言語で直接的にインプリメントすることにより、スペシファィイングとバリデーティングとベリファィイングとテスティングというアクティビティが執行されたと等価なソフトウェアを完成できる。
なお、本発明は、上述した実施形態には限定されず、本発明の技術思想の範囲内で様々な変形が可能である。
例えば、上述した実施形態では、主にソフトウェアを実現する方法を例にとり説明したが、例えばかかるソフトウェア実現方法をプログラムすることも可能である。
また、上述した実施形態において、定義体は上述したものに限定されず、例えば伝送媒体、紙媒体のようなものであっても本発明は実現される。
【図面の簡単な説明】
第１図は、本発明に係るシナリオ関数のコンポーネントであるパレット連鎖関数の論理構造を説明するためのフローチャートである。
第２図は、本発明に係るシナリオ関数のコンポーネントであるパレット関数の論理構造を説明するためのフローチャートである。
第３図は、本発明に係るシナリオ関数のコンポーネントである基底論理（論理要素）の論理構造を説明するためのフローチャートである。
第４図は、本発明の一実施形態に係る単語が集合化された文章という開発要望と処理装置との関係を説明する概念図である。
第５図は、本発明の一実施形態に係るシナリオ関数の三つめのコンポーネントである単語ごとの基底論理が生命作用を司るニューロンとみなした場合の生命作用と生命現象との関係を説明するブロック図である。
第６図は、本発明の一実施形態に係るインプリメントされたプログラムの構成と作動の順序を説明するブロック図である。
第７図は、本発明の一実施形態に係る適用業務や適用機能を二つの処理装置がクライアントとサーバ型とに分かれて執行するソフトウェアをシナリオ関数の立場で説明する概念的ブロック図である。
第８図は、本発明に係る双方の生命体同士の間でひとつの目的を達成するに必要となるプロトコルを説明するためのシークエンシャル・チャートである。
第９図は、本発明の一実施形態に係るプロトコルに係る単語を、シナリオ関数Ｔ１を具現化するプログラムである各パレットＷ０４、Ｗ０２、Ｗ０３中の定型的な（変数）識別子挿入位置に貼り付ける様子を説明する概念的ブロック図である。
第１０図は、本発明の一実施形態に係る適用業務や適用機能を三つの処理装置がクライアントとフロントサーバとアプリケーション・サーバとに分かれて執行するソフトウェアをシナリオ関数の立場で説明するための概念的ブロック図である。
第１１図は、本発明の一実施形態に係る考え方を概念的に表したコンセプチュアル・チャートである。
【図１】
2002042904.tif 000038
【図２】
2002042904.tif 000039
【図３】
2002042904.tif 000040
【図４】
2002042904.tif 000041
【図５】
2002042904.tif 000042
【図６】
2002042904.tif 000043
【図７】
2002042904.tif 000044
【図８】
2002042904.tif 000045
【図９】
2002042904.tif 000046
【図１０】
2002042904.tif 000047
【図１１】
2002042904.tif 000048
【国際調査報告】
2002042904.tif 000049
2002042904.tif 000050