(57)【特許請求の範囲】
【請求項１】
少なくとも演算処理装置と記憶媒体とを備えるコンピュータにおいて、実行可能なプログラムの雛形を自動生成する知識再利用システムであって、
前記演算処理装置には、
前記記憶媒体に記憶されたプログラム及び／又はデータベースを読み込み、前記読み込んだプログラム及び／又はデータベースにおける公開情報の物理的特徴と論理的特徴とを有する電子化知識を生成し、前記記憶媒体へ記憶させるインターフェイス形式化手段と、
前記記憶媒体に記憶させた前記インターフェイス形式化手段で生成した電子化知識を読み込み、実行可能なプログラムの雛形の自動生成を行わせる開発者が指定したプログラム生成方式定義における、前記生成した電子化知識を補正するための補正用生成様式に基づいて、前記演算処理装置により、前記電子化知識の追加及び／又は修正及び／又は集約を行い、解決された電子化知識を生成して、前記記憶媒体へ記憶させる補正手段と、
前記解決された電子化知識を読み込み、前記プログラム生成方式定義において指定されている、前記解決された電子化知識の検証を行うための検証用生成様式に従って、前記演算処理装置により、前記解決された電子化知識を前記演算処理装置により検証を行う検証手段と、
前記プログラム生成方式定義において指定されている、前記解決された電子化知識に含まれる物理的特徴と論理的特徴に応じてプログラムの雛形を生成するための生成規則を生成するための生成規則生成用生成様式を読み込み、前記演算処理装置により、前記解決された電子化知識に、前記生成規則生成用生成様式を適用してプログラム生成規則を生成し、生成したプログラム生成規則を前記記憶媒体へ記憶させるプログラム生成規則生成手段と、
前記プログラム生成方式定義において指定されている、前記プログラムの雛形を生成するためのプログラム生成様式と前記生成したプログラム生成規則とを読み込み、前記プログラム生成規則において指定される、前記解決された電子化知識を読み込み、前記演算処理装置により、前記解決された電子化知識に含まれる物理的特徴と論理的特徴に対する前記プログラム生成様式での指定に応じて人間可読なプログラムの雛形を生成し、生成したプログラム生成規則を前記記憶媒体へ記憶させる雛形生成手段と、
前記プログラム生成方式定義において指定されている、前記電子化知識に含まれる物理的特徴と論理的特徴に応じてプログラムの雛形を実行可能な形式へ構成するための構成規則を生成するための構成規則生成用生成様式を読み込み、前記演算処理装置により、前記解決された電子化知識に、前記構成規則生成用生成様式を適用して、プログラム構成規則を生成し、生成したプログラム構成規則を前記記憶媒体へ記憶させるプログラム構成規則生成手段と、
前記自動生成した人間可読なプログラムの雛形と、前記生成したプログラム構成規則とを読み込み、前記プログラム構成規則に基づいて、前記人間可読なプログラムの雛形を、機械可読に変換する目的プログラム生成手段と、
を備えることを特徴とする知識再利用システム。
【請求項２】
前記インターフェイス形式化手段は、
原始プログラムを読み込み、前記読み込んだ原始プログラムに於ける公開情報の物理的特徴と論理的特徴とを有する電子化知識を生成する原始プログラムインターフェイス形式化手段を
有することを特徴とする請求項１に記載の知識再利用システム。
【請求項３】
前記インターフェイス形式化手段は、
目的プログラムを読み込み、前記読み込んだ目的プログラムに於ける公開情報の物理的特徴と論理的特徴とを有する電子化知識を生成する目的プログラムインターフェイス形式化手段を
有することを特徴とする請求項１に記載の知識再利用システム。
【請求項４】
前記インターフェイス形式化手段は、
データベースを読み込み、前記読み込んだデータベースに於けるテーブル・ビューの物理的特徴と論理的特徴とを有する電子化知識を生成するモデリング情報形式化手段を
有することを特徴とする請求項１に記載の知識再利用システム。
【請求項５】
前記プログラム及び／又はデータベースの公開情報は、変数、クラス、メソッド、テーブル・ビューの少なくとも一以上を含む
ことを特徴とする請求項１から請求項４のいずれかに記載の知識再利用システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムを開発する際に、既存のプログラムを再利用し、その開発支援を行う知識再利用システムに関する。
【０００２】
【従来の技術】
プログラムが近年高度化・大規模化するのに伴い、プログラムを開発する為のＣＡＳＥツール（Computer Aided Software Engineering）、ＩＤＥツール（Intergrated Development Environment）等の開発支援ツールが存在している。
【０００３】
ＣＡＳＥツールは、複数のプログラマー（以下、開発者）間でシステム開発作業の処理を効率化することを目的とする開発支援ツールである。ＣＡＳＥツールの代表的な例としては、日本ラショナルソフトウェア株式会社の販売する製品である、Ｒａｔｉｏｎａｌ  Ｒｏｓｅがその一例として挙げられる。
【０００４】
ＩＤＥツールは、エディタ、コンパイラ、デバッガ等のプログラムを開発する際に必要となる複数の開発環境を、統合された一つの開発環境で行うことを目的とする開発支援ツールである。ＩＤＥツールの代表的な例としては、マイクロソフト株式会社の販売する製品である、Ｍｉｃｒｏｓｏｆｔ  Ｖｉｓｕａｌ  Ｓｔｕｄｉｏがその一例として挙げられる。
【０００５】
これらの開発支援ツールを用いることによって、プログラムの論理的特徴、物理的特徴のいずれか一方に限定された情報を管理することが可能となり、プログラムの雛形を生成する機能を実現している。
【０００６】
尚、本明細書に於いて物理的特徴とは、プログラム、データベース中に於いて、変数、クラス、メソッド、データ等がそれ自体で特徴づけられるものを意味し、論理的特徴とは、変数、クラス、メソッド、データ等が他の変数、クラス、メソッド、データ等との関係で特徴づけられるものを意味している。又物理的特徴には、変数、メソッド等と関係づけられるものもある。
【０００７】
【発明が解決しようとする課題】
しかし上記開発支援ツール等を用いた場合であっても、プログラムの構成要素が有する論理的特徴、物理的特徴が一体となって表現する方法が実現されていない為、業務知識やプログラム実現化知識とプログラムとの間でプログラムの知識を相互に自動的に利用することが不可能である。つまり、従来の開発支援ツールでは、物理的特徴、論理的特徴のいずれか一方からプログラムの雛形を生成しているので、変数等の特徴が一面（物理的特徴もしくは論理的特徴）からしか表現できず、効率的で完成度の高いプログラムの雛形が生成できていない。
【０００８】
又、プログラムの物理的特徴に基づいてプログラムを生成する機能が組み込まれている場合、その具体的な生成方法が開発支援ツール内に組み込まれており、プログラム実現方法に適した生成方法へ開発者が任意に変更することが不可能である。
【０００９】
更に、プログラムのインターフェイスで入出力されるデータ項目にユーザインターフェイス上の特徴を記述できない為にプログラムにあわせてユーザインターフェイス用のプログラムを開発者が人的に作成しなければならず、迅速な検証が困難である。
【００１０】
【課題を解決するための手段】
そこで本発明者は、プログラムの論理的特徴と物理的特徴とを機械可読且つ人間可読の形式で記録し、且つ特定の開発ツールやプログラムから独立させて一元的に記録することによって、プログラムに関する知識（以下、電子化知識）をプログラム開発の全ての工程で相互利用可能とし、変数等を物理的特徴と論理的特徴の両面から雛形を生成する知識再利用システムを発明した。
【００１１】
本発明に於いて、電子化知識に基づく各種の生成方法（以下、生成様式とする）を開発ツールから分離することにより、当該生成様式を切り替えることでプログラムの大部分を任意の生成様式でプログラム部品（実行可能なプログラムの雛形）の生成が可能となる。
【００１２】
更に電子化知識は、人間可読である為インターフェイス形式化機能を用いずに直接プログラムの設計・実装方法を記して作成することも可能である。即ち通常コンピュータに具備されているエディタを利用して電子化知識を作成／更新して、実行可能なプログラムの雛形を設計／作成していくことも可能となる。
【００１３】
請求項１の発明は、少なくとも演算処理装置と記憶媒体とを備えるコンピュータにおいて、実行可能なプログラムの雛形を自動生成する知識再利用システムであって、前記演算処理装置には、前記記憶媒体に記憶されたプログラム及び／又はデータベースを読み込み、前記読み込んだプログラム及び／又はデータベースにおける公開情報の物理的特徴と論理的特徴とを有する電子化知識を生成し、前記記憶媒体へ記憶させるインターフェイス形式化手段と、前記記憶媒体に記憶させた前記インターフェイス形式化手段で生成した電子化知識を読み込み、実行可能なプログラムの雛形の自動生成を行わせる開発者が指定したプログラム生成方式定義における、前記生成した電子化知識を補正するための補正用生成様式に基づいて、前記演算処理装置により、前記電子化知識の追加及び／又は修正及び／又は集約を行い、解決された電子化知識を生成して、前記記憶媒体へ記憶させる補正手段と、前記解決された電子化知識を読み込み、前記プログラム生成方式定義において指定されている、前記解決された電子化知識の検証を行うための検証用生成様式に従って、前記演算処理装置により、前記解決された電子化知識を前記演算処理装置により検証を行う検証手段と、前記プログラム生成方式定義において指定されている、前記解決された電子化知識に含まれる物理的特徴と論理的特徴に応じてプログラムの雛形を生成するための生成規則を生成するための生成規則生成用生成様式を読み込み、前記演算処理装置により、前記解決された電子化知識に、前記生成規則生成用生成様式を適用してプログラム生成規則を生成し、生成したプログラム生成規則を前記記憶媒体へ記憶させるプログラム生成規則生成手段と、前記プログラム生成方式定義において指定されている、前記プログラムの雛形を生成するためのプログラム生成様式と前記生成したプログラム生成規則とを読み込み、前記プログラム生成規則において指定される、前記解決された電子化知識を読み込み、前記演算処理装置により、前記解決された電子化知識に含まれる物理的特徴と論理的特徴に対する前記プログラム生成様式での指定に応じて人間可読なプログラムの雛形を生成し、生成したプログラム生成規則を前記記憶媒体へ記憶させる雛形生成手段と、前記プログラム生成方式定義において指定されている、前記電子化知識に含まれる物理的特徴と論理的特徴に応じてプログラムの雛形を実行可能な形式へ構成するための構成規則を生成するための構成規則生成用生成様式を読み込み、前記演算処理装置により、前記解決された電子化知識に、前記構成規則生成用生成様式を適用して、プログラム構成規則を生成し、生成したプログラム構成規則を前記記憶媒体へ記憶させるプログラム構成規則生成手段と、前記自動生成した人間可読なプログラムの雛形と、前記生成したプログラム構成規則とを読み込み、前記プログラム構成規則に基づいて、前記人間可読なプログラムの雛形を、機械可読に変換する目的プログラム生成手段と、を備える知識再利用システムである。
【００１４】
本発明によって、開発者は、少なくとも一以上のプログラム／データベースを読み込ませておくことによって、その公開情報に関する物理的特徴、論理的特徴を電子化知識として蓄積することが可能となる。そして、蓄積した電子化知識に基づいて、開発者がどのようなプログラムが必要かを指定することによって、この電子化知識の物理的特徴と論理的特徴とに基づいて、効率的で精度の良い実行可能なプログラムの雛形の自動生成が可能となる。
また、本発明によって、電子化知識と、予め定められた少なくとも一以上の生成方法（生成様式）とに基づいて、人間可読なプログラムの雛形の自動生成が可能となる。
そして、蓄積された電子化知識が当初から完全なものであることは、希である。従って、その使用に際しては、蓄積した電子化知識を、開発者が自動生成を希望するプログラムの雛形に応じた、補正等を付加することが好適である。又付加等されることによって生成された、解決された電子化知識が論理的整合性等が取れているかどうかを確認する必要もある。従ってその検証を行い、整合性が取れているならば、解決された電子化知識に基づいて、プログラムの雛形を生成することが好適である。本発明によってこれらの事項が行え、よりよい精度のプログラムの雛形の自動生成が可能となる。
加えて、本発明によって、自動生成したプログラムの雛形を機械可読な形式に変換することが可能となり、開発者は当該変換された実行可能なプログラムの雛形を使用するだけで良いこととなる。
【００１５】
請求項２の発明は、
前記インターフェイス形式化手段は、原始プログラムを読み込み、前記読み込んだ原始プログラムに於ける公開情報の物理的特徴と論理的特徴とを有する電子化知識を生成する原始プログラムインターフェイス形式化手段を有する知識再利用システムである。
【００１６】
請求項３の発明は、
前記インターフェイス形式化手段は、目的プログラムを読み込み、前記読み込んだ目的プログラムに於ける公開情報の物理的特徴と論理的特徴とを有する電子化知識を生成する目的プログラムインターフェイス形式化手段を有する知識再利用システムである。
【００１７】
請求項４の発明は、
前記インターフェイス形式化手段は、データベースを読み込み、前記読み込んだデータベースに於けるテーブル・ビューの物理的特徴と論理的特徴とを有する電子化知識を生成するモデリング情報形式化手段を有する知識再利用システムである。
【００１８】
請求項２から請求項４の発明によって、電子化知識として蓄積する元となるものには、人間可読な原始プログラム、機械可読な目的プログラム、データベースを使用することが可能となる。尚、ここで原始プログラムとは、プログラムのソースコード等の人間可読なものを示しており、目的プログラムとは、プログラムのソースコード等をコンパイルした結果、機械可読なものを示している。
【００２５】
請求項５の発明は、前記プログラム及び／又はデータベースの公開情報は、変数、クラス、メソッド、テーブル・ビューの少なくとも一以上を含む、知識再利用システムである。
【００２６】
【発明の実施の形態】
本発明の実施態様のシステム構成の一例を図１のシステム構成図に示す。知識再利用システム１は、インターフェイス形式化手段２とプログラム手段３と電子化知識４と少なくとも一以上の生成様式とを有している。
【００２７】
インターフェイス形式化手段２は、プログラム、データベースに於ける変数、クラス、メソッド、データベースのテーブル・ビュー等から、論理的特徴と物理的特徴とを抽出して電子化知識４として生成する手段である。インターフェイス形式化手段２は、原始プログラムインターフェイス形式化手段１０と目的プログラムインターフェイス形式化手段１１とモデリング情報形式化手段１２とを有している。
【００２８】
原始プログラムインターフェイス形式化手段１０は、原始プログラムから論理的特徴と物理的特徴とを抽出して電子化知識４として生成する手段である。尚、原始プログラムとは、プログラムのソースコード等の人間可読なものを示している。
【００２９】
目的プログラムインターフェイス形式化手段１１は、目的プログラムから論理的特徴と物理的特徴とを抽出して電子化知識４として生成する手段である。尚、目的プログラムとは、プログラムのソースコード等をコンパイル等した結果、機械可読なものを示している。
【００３０】
モデリング情報形式化手段１２は、データベースから論理的特徴と物理的特徴とを抽出して電子化知識４として生成する手段である。
【００３１】
プログラム手段３は、インターフェイス形式化手段２から生成された電子化知識４に基づいて、最終結果物たる最終目的プログラム（即ち自動的に生成された実行可能なプログラムの雛形であって機械可読のもの）を生成する手段であり、プログラム生成手段１３と目的プログラム生成手段１４とを有している。
【００３２】
プログラム生成手段１３は、インターフェイス形式化手段２で生成した電子化知識４に基づいて、修正等されたプログラムの雛形とプログラム構成規則とを生成する手段である。ここで生成されるプログラムの雛形は、人間可読なプログラムを示し、プログラム構成規則とは、前記生成したプログラムの雛形を、どの順番で目的プログラム生成手段１４に於いてコンパイル等し、機械可読なものに変換するかを規定する規則である。
【００３３】
目的プログラム生成手段１４は、プログラム生成手段１３に於いて生成したプログラムの雛形とプログラム構成規則とに基づいて、機械可読で実行可能な最終目的プログラムを生成する手段である。即ちコンパイラ等を示す。
【００３４】
プログラム生成手段１３は、補正手段１５と検証手段１６とプログラム生成規則生成手段１７と雛形生成手段１８とプログラム構成規則生成手段１９とを有している。
【００３５】
補正手段１５は、開発者が指定するプログラム生成方式定義に於ける補正用生成様式５に基づいて、インターフェイス形式化手段２に於いて生成した電子化知識４に不足している物理的特徴、論理的特徴を追加補正、複数の電子化知識４を一つに集約し電子化知識４を修正等する手段である。尚ここで追加、修正、集約等した電子化知識４を、解決された電子化知識と呼ぶ。ここで、開発者が指定するプログラム生成方式定義とは、開発者がどのような実行可能なプログラムの雛形（最終目的プログラム）を生成したいかを定義したコードであって、図１８にその一例を示す。
【００３６】
検証手段１６は、開発者が指定したプログラム生成方式定義に於ける検証用生成様式６に基づいて、前記解決された電子化知識が論理的に適合であるか否かの検証を行う手段である。
【００３７】
プログラム生成規則生成手段１７は、開発者が指定したプログラム生成方式定義に於ける生成規則生成用生成様式７に基づいて、解決された電子化知識を適用しプログラム生成規則を生成する手段である。
【００３８】
雛形生成手段１８は、プログラム生成規則生成手段１７で生成したプログラム生成規則とプログラム生成様式８と解決された電子化知識とに基づいて、解決された電子化知識に、当該生成規則生成用生成様式７を適用し人間可読なプログラムの雛形を生成する手段である。
【００３９】
プログラム構成規則生成手段１９は、開発者が指定したプログラム生成方式定義に於ける構成規則生成用生成様式９と解決された電子化知識とに基づいて、解決された電子化知識に、当該構成規則生成用生成様式９を適用しプログラム構成規則を生成する手段である。
【００４０】
【実施例】
次に本発明のプロセスの流れの一例を図３から図１１のフローチャート図と図１及び図２のシステム構成図とを用いて詳細に説明する。まず原始プログラム、目的プログラム、データベースから電子化知識４を生成するプロセスの流れの一例を示す。最初に原始プログラム、目的プログラムから電子化知識４を生成する場合のプロセスの流れの一例を図３から図６のフローチャート図を用いて説明する。尚、原始プログラムに対する電子化知識４の生成は、インターフェイス形式化手段２の原始プログラムインターフェイス形式化手段１０に於いて、目的プログラムに対する電子化知識４の生成は、インターフェイス形式化手段２の目的プログラムインターフェイス形式化手段１１に於いて各々処理が為されるが、プロセスの流れはほぼ同一であるので、本実施例に於いては原始プログラムの場合を説明する。従って目的プログラムの場合も、目的プログラムインターフェイス形式化手段１１に於いてほぼ同様のプロセスで処理が行えるが、簡略化の為説明を省略する。
【００４１】
電子化知識４を生成することを希望する際には、その電子化知識４を生成する為の元となる原始プログラムを知識再利用システム１に於けるインターフェイス形式化手段２の原始プログラムインターフェイス形式化手段１０に読み込ませる（Ｓ１００）。ここで読み込ませる元となる原始プログラムを図１２とする。
【００４２】
原始プログラムを読み込んだ原始プログラムインターフェイス形式化手段１０は、当該原始プログラムからクラス情報を取得する（Ｓ１１０）。従って図１２の場合に於いては、ＴｅｓｔＣｌａｓｓのクラス情報を取得する。
【００４３】
取得したクラス情報の中から、そこに含まれている公開変数、公開メソッド等の公開情報を抽出する（Ｓ１２０）。ここで公開情報とは、各クラスに於ける変数、メソッド等が、他のクラスから参照等可能なものであって、プログラム中に於いて全体的に操作可能なものを示し、例えばＪＡＶＡ言語（ＪＡＶＡはサン・マイクロシステムズ・インコーポレーテッドの登録商標である。以下同様）ではｐｕｂｌｉｃ型がそれを示している。従って例えば図１２の原始プログラムの関数ｓｅｔＰｒｏｐ１、ｓｅｔＰｒｏｐ２等のメソッド名、ｐｒｏｐ３の変数名等を取得することとなる。
【００４４】
取得したクラス情報に於ける公開情報に対して、電子化知識４として蓄積する為の処理を行う（Ｓ１３０）。このプロセスは後述する。
【００４５】
Ｓ１００からＳ１３０のクラスに於ける電子化知識４の蓄積を、原始プログラム中の全てのクラス情報を取得するまで反復し（Ｓ１４０）、電子化知識４として原始プログラムから蓄積する。尚、本明細書に於いては、ＪＡＶＡ言語を原始プログラムの例として取り上げたため、クラス毎に処理をすることとなっているが、当然のことながら、他のオブジェクト指向言語、オブジェクト指向言語を用いていないプログラミング言語の場合には、プログラム全体に対する処理が完了しているか否かを判別すればよい。
【００４６】
Ｓ１１０からＳ１４０を反復することによって生成した電子化知識４を保存する為の出力形式を定義した外部ファイルを取得し（Ｓ１５０）、取得した定義の形式に基づいて電子化知識４の出力を行う（Ｓ１６０）。
【００４７】
以上のようにＳ１１０及びＳ１２０に於ける処理が原始プログラムから物理的特徴を抽出するプロセスであり、後述するＳ１３０が、抽出した物理的特徴に基づいて論理的特徴を抽出するプロセスとなる。
【００４８】
次にＳ１３０に於ける公開情報の電子化知識化処理のプロセスの流れを図４から図６のフローチャート図を用いて説明する。
【００４９】
Ｓ１１０及びＳ１２０に於いて抽出したクラスに於ける公開変数の物理的特徴を電子化知識属性情報テーブルに追加する（Ｓ２００）。図１２の原始プログラムの例では、ｐｒｏｐ３が公開変数（ｐｕｂｌｉｃ型）であるので、この変数に対する物理的特徴を追加する。図１２の原始プログラムに於いて、公開変数の物理的特徴を追加した例を図１３の（ａ）に示す。
【００５０】
Ｓ２００に於いて追加した公開変数の物理的特徴に基づいて、その公開変数の論理的特徴（例えば、変数の型等）を電子化知識属性情報テーブルに追加する（Ｓ２１０）。論理的特徴を追加した例を図１３の（ｂ）に示す。図１２の例では、物理的特徴がｌｏｎｇ型であるので、ＪＡＶＡ言語に於いてはｌｏｎｇ型は整数型の倍精度を意味しているので、論理的特徴としては、ＬｏｎｇＩｎｔｅｇｅｒとなる。
【００５１】
Ｓ２００及びＳ２１０に於いて追加した物理的特徴と論理的特徴とに基づいて、当該公開変数が取得可能である旨と属性値の更新及び取得が可能であるか否かの情報（即ちｓｅｔから始まるメソッド名で参照可能か、ｇｅｔから始まるメソッド名で参照可能かを示す情報）を、電子化知識属性情報テーブルに追加する（Ｓ２２０）。Ｓ２２０の追加を行った例を図１３の（ｃ）に示す。Ｓ２００からＳ２２０の処理を、クラスに於ける公開変数全てに対して行う（Ｓ２３０）。
【００５２】
公開変数に対する電子化知識化処理終了後、次に公開メソッド（ｐｕｂｌｉｃ型のメソッド）に対する電子化知識化処理を行う。
【００５３】
クラスに於ける、公開メソッド名がｓｅｔで始まり且つ、当該公開メソッドに対する引数が一つであるか否かを判断し（Ｓ２４０）、条件を満たしている場合には、当該公開メソッド名から属性名を導出する（Ｓ２５０）。即ち、図１２に於ける原始プログラムでは、ｓｅｔＰｒｏｐ１の公開メソッドが抽出され、当該公開メソッドから、属性名としてｐｒｏｐ１が導出されることとなる。図１４（ａ）にこの例を示す。
【００５４】
Ｓ２５０に於いて導出した属性名が、電子化知識属性情報テーブルに存在するか否かを判断し（Ｓ２６０）、存在しなければ、当該導出した属性名を電子化知識属性情報テーブルに追加する。ここでは、既に電子化知識４として蓄積されている電子化知識属性情報テーブルにｐｒｏｐ１は、蓄積されていない（電子化知識属性情報テーブルにはｐｒｏｐ３のみ蓄積されている）ので、電子化知識４として新たにｐｒｏｐ１を追加する。
【００５５】
追加した公開メソッドの物理的特徴を、当該電子化知識属性情報テーブルに追加し（Ｓ２７０）、その後、当該物理的特徴から論理的特徴を作成し追加する（Ｓ２８０）。図１２の原始プログラムの例では、図１４（ｂ）及び（ｃ）に示した状態となる。図１４（ｂ）は物理的特徴を追加した状態であり、図１４（ｃ）は論理的特徴を追加した状態である。これらはいずれも原始プログラムに於ける公開メソッドの型、引数、戻り値等から公開変数時の際の処理と同様に、判別、追加が可能である。
【００５６】
物理的特徴及び論理的特徴の追加後、電子化知識属性情報テーブルに属性値更新可能であることを追加する（Ｓ２９０）。このようにＳ２４０からＳ２９０のプロセスを経ることによって、公開メソッドがｓｅｔで始まり、且つ引数が一つの場合の電子化知識４の蓄積を行える。図１２の原始プログラムのｓｅｔＰｒｏｐ２に対して同様の処理を行った場合の例を図１５に示す。
【００５７】
次に、クラスに於ける公開メソッド名がｇｅｔで始まり、且つ引数があるか否かを判断し（Ｓ３００）、条件を満たす場合には、Ｓ２４０からＳ２９０と同様に当該公開メソッド名から属性名を導出し（Ｓ３１０）、当該属性名が電子化知識属性情報テーブルに存在しているか否かを判断し（Ｓ３２０）、存在していなければ当該公開メソッドの物理的特徴と論理的特徴とを電子化知識属性情報テーブルに追加する（Ｓ３３０、Ｓ３４０）。又電子化知識属性情報テーブルに属性値が更新可能であることを追加する（Ｓ３５０）。図１２の原始プログラムのｇｅｔＰｒｏｐ１に対してＳ３１０からＳ３４０の処理を行った場合の例を図１６に示す。但し、ｇｅｔＰｒｏｐ１は、既に属性名ｐｒｏｐ１が電子化知識属性情報テーブルに存在する為、物理的特徴及び論理的特徴の処理は為されておらず、更新可能情報のみが追加されることとなる。
【００５８】
次にクラスに於ける、公開メソッド名がｉｓで始まり、且つ引数がなく、且つ戻り値の値が真偽値型であるか否かを判断し（Ｓ３６０）、条件を満たす場合にはＳ２４０からＳ２９０及びＳ３１０からＳ３５０と同様のプロセスを行う。即ち、当該公開メソッド名から属性名を導出し（Ｓ３７０）、当該属性名が電子化知識属性情報テーブルに存在しているか否かを判断し（Ｓ３８０）、存在していなければ当該公開メソッドの物理的特徴と論理的特徴とを電子化知識属性情報テーブルに追加する（Ｓ３９０、Ｓ４００）。又電子化知識属性情報テーブルに属性値が更新可能であることを追加する（Ｓ４１０）。
【００５９】
クラスに於ける公開メソッド名が、Ｓ２４０、Ｓ３００、Ｓ３６０のいずれの条件にも合致しない場合には、当該公開メソッド名を操作名として電子化知識操作情報テーブルに追加する（Ｓ４２０）。図１２の原始プログラムに於ける、公開メソッドｄｏＳｏｍｅｔｈｉｎｇは、Ｓ２４０、Ｓ３００、Ｓ３６０のいずれにも合致しないので、当該公開メソッド名ｄｏＳｏｍｅｔｈｉｎｇを操作名として電子化知識操作情報テーブルに追加することとなる。この場合の例を図１７（ａ）に示す。
【００６０】
電子化知識操作情報テーブルに追加した公開メソッド（この場合はｄｏＳｏｍｅｔｈｉｎｇ）の物理的特徴及び論理的特徴を同様に電子化知識操作情報テーブルに追加する（Ｓ４３０、Ｓ４４０）。この場合の例を図１７（ｂ）及び（ｃ）に示す。図１７（ｂ）は公開メソッドｄｏＳｏｍｅｔｈｉｎｇに於ける入力情報の物理的特徴及び論理的特徴を追加した例であって、図１７（ｃ）は公開メソッドｄｏＳｏｍｅｔｈｉｎｇに於ける出力情報の物理的特徴及び論理的特徴を追加した例である。
【００６１】
以上のように、Ｓ２４０からＳ４４０のプロセスを、クラスに於ける全ての公開メソッドに対して反復する（Ｓ４５０）。このようにして原始プログラムから物理的特徴と論理的特徴とを具備した電子化知識４を蓄積することが可能となる。即ち電子化知識属性情報テーブル及び電子化知識操作情報テーブルが電子化知識４となる。又、本発明に於いては、他のメソッドに変数等を引き渡すメソッドとしてそのメソッド名の先頭にｇｅｔを付与し、他のメソッドから変数等を取得するメソッドとしてそのメソッド名の先頭にｓｅｔを付与したが、これは各プログラムの処理形態に於いて任意に規則（ルール）として設定できるようにしておくことが好適である。
【００６２】
次に、インターフェイス形式化手段２のモデリング情報形式化手段１２に於いて、データベースから電子化知識４を蓄積する場合のプロセスの流れを図７及び図８のフローチャート図を用いて詳細に説明する。
【００６３】
データベースから電子化知識４を生成することを希望する際には、その電子化知識４を生成する元となるデータベースを知識再利用システム１に於けるインターフェイス形式化手段２のモデリング情報形式化手段１２に読み込ませる。ここで読み込ませるデータベースのテーブル例を図２３に示す。
【００６４】
データベースを読み込んだモデリング情報形式化手段１２は、当該データベースから指定テーブル・ビューの定義情報を取得する（Ｓ５００）。図２３の例ではデータベースからテーブルＤＡＴＡ＿ＴＡＢＬＥというテーブルが、電子化知識４の処理対象として開発者によって指定されており、従って、当該テーブルＤＡＴＡ＿ＴＡＢＬＥを取得することとなる。
【００６５】
取得した指定テーブル・ビューの定義情報から、そこに含まれている列名を取得する（Ｓ５１０）。図２３の例では、列ＰＲＯＰ１、ＰＲＯＰ２、ＰＲＯＰ３を取得することとなる。従って取得したテーブル名から論理的識別子を導出し、それを電子化知識属性情報テーブルに追加する（この場合は、ＤａｔａＴａｂｌｅ）。この状態の電子化知識属性情報テーブルを図２４（ａ）に示す。又併せてテーブル名を物理的特徴として抽出し、電子化知識属性情報テーブルに追加する。この状態の電子化知識属性情報テーブルを図２４（ｂ）に示す。
【００６６】
取得した各列から、当該列に於ける物理的特徴を抽出し、電子化知識属性情報テーブルに追加する（Ｓ５２０）。従って図２３に於いては、物理的特徴として、列名、型、長さ、整数値精度を抽出することとなる。列ＰＲＯＰ１では、列名としてＰＲＯＰ１、型としてＶＡＲＣＨＡＲ、長さとして２５６、精度はデータなしとして抽出することとなる。この状態の電子化知識属性情報テーブルの例を図２４（ｃ）に示す。
【００６７】
又取得したテーブル・ビューの定義情報から列の論理的特徴を導出して、電子化知識属性情報テーブルに追加する（Ｓ５３０）。図２３に於いては、論理的特徴として、論理的な型、長さ、空要素許容性情報を導出し、追加することとなる。従って、論理的な型としてはＳｔｒｉｎｇ（物理的特徴の型がＶＡＲＣＨＡＲ型であって、ＶＡＲＣＨＡＲ型は一般的に文字列型を意味している為）、長さとして２５６、空要素許容性情報としてｎｏ（許容しない）となる。この状態の電子化知識属性情報テーブルの例を図２４（ｄ）に示す。
【００６８】
物理的特徴、論理的特徴を取得後、テーブル・ビューの定義情報から一意制約情報を取得し（Ｓ５４０）、一意制約がある場合には（Ｓ５５０）、電子化知識属性情報テーブルに追加する（Ｓ５６０）。図２３に於いては、一意制約があるので、電子化知識属性情報テーブルに一意制約があることを示す「１」のフラグが立つこととなる。この状態の電子化知識属性情報テーブルの例を図２４（ｅ）に示す。一意制約がない場合にはこの情報を電子化知識属性情報テーブルに追加しなくて良い。
【００６９】
一意制約情報を電子化知識属性情報テーブルに追加した後、又は一意制約がない場合には、電子化知識属性情報テーブルに属性値の更新が可能であるか否か及び取得可能であるか否かの情報を電子化知識属性情報テーブルに追加する（Ｓ５７０）。図２３の場合には、属性値の更新及び取得が可能であるので、そのように電子化知識属性情報テーブルに追加することとなり、その状態の電子化知識属性情報テーブルを図２４（ｆ）に示す。
【００７０】
Ｓ５１０に於いて取得した全ての列に対してＳ５２０からＳ５７０の処理を反復する（Ｓ５８０）。各列に対して処理を行った例を、図２４（ｇ）及び（ｈ）に示す。
【００７１】
このようにして生成した電子化知識４を出力する為の出力形式指定ファイルを読み込み（Ｓ５９０）、当該読み込んだ出力形式指定ファイルに従って、電子化知識４を出力する（Ｓ６００）。
【００７２】
次にＳ１００からＳ６００に於いて蓄積した電子化知識４に基づいて、その知識を利用してプログラムを生成するプロセスの流れを図９から図１１のフローチャート図と図１と図２のシステム構成図とを用いて詳細に説明する。
【００７３】
蓄積した電子化知識４に基づきその知識を利用してプログラムを生成する場合には、蓄積した電子化知識４が完全なものである可能性が低い為、その電子化知識の補正をプログラム生成手段１３の補正手段１５に於いてまず行う必要がある。その為に、開発者は、どのような実行可能なプログラムの雛形を生成したいのかを定義したコード（プログラム生成方式定義）を指定又はコード化し、当該プログラム生成方式定義から補正用生成様式５（本実施態様に於いては、ＲｅｓｏｌｖｅＰａｔｔｅｒｎＣｏｍｐｏｎｅｎｔ．ｘｓｌ）を取得する（Ｓ７００）。図１８にプログラム生成方式定義を示す。
【００７４】
補正用生成様式５は、蓄積された電子化知識４に対して、その電子化知識４に不足している物理的特徴、論理的特徴等を追加・修正、電子化知識４が別の電子化知識４を参照している場合には、その電子化知識４を一つに集約する為の様式が格納されている。
【００７５】
まず電子化知識４に物理的特徴、論理的特徴等の追加・修正を行う場合を図１９及び図２０の電子化知識４を用いて説明する。図１９は、補正前の電子化知識４（インターフェイス形式化手段２が作成した電子化知識４）であり、図２０は、補正手段１５が図１９の電子化知識４に対して追加・修正を行った結果作成された、補正後の電子化知識４である。
【００７６】
図１９に記載されている電子化知識４には、ｐｒｏｐ２０の識別子に於けるｎａｍｅ、ｏｖｅｒｖｉｅｗ等の論理的特徴が不足している。従って、例えばｏｖｅｒｖｉｅｗの論理的特徴を追加する場合には、当該Ｓ７００に於いて取得した補正用生成様式５に於けるｏｖｅｒｖｉｅｗの記載方法（ここではＯｖｅｒｖｉｅｗ  ｏｆ  ”ｉｄｅｎｔｉｆｅｒ”  ”ｄａｔａｔｙｐｅ”のような記載で格納されており、”ｉｄｅｎｔｉｆｅｒ”は、タグｉｄｅｎｔｉｆｅｒに記載されている識別子を、”ｄａｔａｔｙｐｅ”は、タグｄａｔａＴｙｐｅに記載されている識別子のデータ型を追加することを意味している）に従って、論理的特徴であるｏｖｅｒｖｉｅｗのタグを追加することとなる。同様に物理的情報についても補正用生成様式５を参照しながら追加補正を行う。
【００７７】
次に電子化知識４が別の電子化知識４を参照している場合に、その電子化知識４を一つに集約する為の補正手段１５が行う場合を図２１の電子化知識４を用いて説明する。
【００７８】
図２１（ａ）は、集約前の電子化知識４であって、当該電子化知識４は、他の電子化知識４を参照している（タグｒｅｆｅｒｅｎｃｅ）。又図２１（ｂ）及び（ｃ）は、参照側となる電子化知識４であって、図２１（ｂ）はＲｅｆｅｒｅｎｃｅｄ−Ｐｒｏｐｅｒｔｙ１を図２１（ｃ）はＲｅｆｅｒｅｎｃｅｄ−Ｐｒｏｐｅｒｔｙ２である。
【００７９】
図２１（ａ）の電子化知識４に於いて、タグｒｅｆｅｒｅｎｃｅが存在していることから、当該電子化知識４がＲｅｆｅｒｅｎｃｅｄ−Ｐｒｏｐｅｒｔｙ１及びＲｅｆｅｒｅｎｃｅｄ−Ｐｒｏｐｅｒｔｙ２を参照していることが判明する。従ってこれらの電子化知識４を補正手段１５が参照し、図２１（ａ）の電子化知識４に、図２１（ｂ）及び（ｃ）の電子化知識４を反映させ、一つの電子化知識４に集約する。又この際に同じ電子化知識４を複数回参照している為には論理的整合性を取る必要から、異なる属性として認識しなければならず、識別子（タグｉｄｅｎｔｉｆｉｅｒ）が異なるものを自動的に付加する。このようなプロセスを経ることによって、図２２に示す、一つに集約された電子化知識４が得られることとなる。
【００８０】
Ｓ７００に於いて取得した補正用生成様式５に従って電子化知識４の集約・修正・追加を行うことによって、論理的整合性がより取れている電子化知識４が補正手段１５に於いて生成されたこととなる（Ｓ７１０）。ここで生成された、論理的整合性がより取れている電子化知識４を、解決された電子化知識と呼ぶこととする。
【００８１】
Ｓ７１０に於いて生成された、解決された電子化知識が実際に論理的整合性が取れているか否かを判別する為に、プログラム生成方式定義から検証用生成様式６（本実施態様に於いては、ＣｈｅｃｋＰａｔｔｅｒｎＣｏｍｐｏｎｅｎｔ．ｘｓｌ）を取得し（Ｓ７２０）、当該検証用生成様式６に従って、解決された電子化知識の検証を行う。即ち解決された電子化知識に当該検証用生成様式６を適用することによって、解決された電子化知識に論理的矛盾、文法的誤り等の警告が含まれているか、途中でエラー（検証結果が不適）であるか否かの検証結果を生成することとなる（Ｓ７３０）。
【００８２】
Ｓ７３０に於ける検証結果に警告が含まれている場合には（Ｓ７４０）、検証手段１６が当該警告の内容を通知する（Ｓ７５０）。又検証結果が不適であった場合（エラーになった場合等）では（Ｓ７６０）、その不適となった内容を通知し（Ｓ７７０）、終了する。
【００８３】
Ｓ７４０からＳ７７０に於いて、何らの通知も発生しなかった場合には、当該電子化知識４は正常に使用できるものであると判断出来る。従ってプログラム生成規則生成手段１７が、プログラム生成方式定義から生成規則生成用生成様式７（本実施態様に於いては、ＧｅｎｅｒａｔｅＧｅｎｅｒａｔｅＲｕｌｅ．ｘｓｌ）を取得し（Ｓ７８０）、生成規則生成用生成様式７を取得できたならば（Ｓ７９０）、解決された電子化知識に、前記取得した生成規則生成用生成様式７を適用してプログラム生成規則を生成する（Ｓ８００）。図２５に解決された電子化知識の例を示し、プログラム生成規則生成手段１７に於いて当該電子化知識４に生成規則生成用生成様式７を適用した結果生成されたプログラム生成規則を図２６に示す。この例の場合には、生成規則生成用生成様式７には、入力用電子化知識４、適用する生成様式、出力する実行可能なプログラムの雛形の名称が定義されている。
【００８４】
Ｓ７８０に於いてプログラム生成規則生成様式が取得できなかったならば、プログラム生成方式定義からプログラム生成規則を取得する（Ｓ８１０）。
【００８５】
Ｓ８００又はＳ８１０で生成したプログラム生成規則に於ける各生成単位から、適用する電子化知識名を雛形生成手段１８が取得し（Ｓ８２０）、取得した電子化知識名（本実施態様に於いてはＴｅｓｔＣｌａｓｓ．ｘｍｌ）が電子化知識４の電子化知識名と同一であれば（Ｓ８３０）、解決された電子化知識を電子化知識名に対応する電子化知識４とする（Ｓ８４０）。
【００８６】
Ｓ８２０で取得した電子化知識名が電子化知識４の電子化知識名と相違する場合には、当該電子化知識名に対応する電子化知識４を取得する（Ｓ８５０）。
【００８７】
雛形生成手段１８は、Ｓ８４０又はＳ８５０で取得した電子化知識４及びプログラム生成様式８に基づいて、プログラムの出力名に応じたプログラムを生成する。即ち当該プログラム生成規則の生成単位からプログラム生成様式８（ＣｒｅａｔｅＡｒｇｕｍｅｎｔＣｌａｓｓ．ｘｓｌ）を取得し、取得したプログラム生成様式８が電子化知識４の内容に応じた外部生成様式を参照する必要がある場合には（Ｓ８７０）、当該プログラム生成様式８に電子化知識４の内容に応じた外部生成様式への参照規則を追加する（Ｓ８８０）。Ｓ８７０に於いて外部生成様式を参照する必要がない場合又はＳ８８０で外部生成様式への参照規則を追加後、プログラム生成規則の各生成単位から、出力するプログラムの雛形の名称（本実施態様に於いては、ＣｒｅａｔｅｄＰｒｏｇｒａｍ１．ｊａｖａ）を取得し（Ｓ８９０）、プログラム生成様式８に解決された電子化知識（本実施態様に於いては、ＴｅｓｔＣｌａｓｓ．ｘｍｌ）を適用した結果を、プログラムの雛形の出力名（本実施態様では、ＡｒｇｕｍｅｎｔＣｌａｓｓ１．ｊａｖａ）に従って出力する（Ｓ９００）。ここで雛形生成手段１８が出力したプログラムの雛形（ＡｒｇｕｍｅｎｔＣｌａｓｓ１．ｊａｖａ）が、電子化知識４が適用された人間可読なプログラムである。
【００８８】
Ｓ８２０からＳ９００に於けるプロセスを、プログラム生成規則の各生成単位を処理するまで反復する（Ｓ９１０）。即ち図２６の例では、ＡｒｇｕｍｅｎｔＣｌａｓｓ１．ｊａｖａとＡｒｇｕｍｅｎｔＣｌａｓｓ２．ｊａｖａとを生成する。
【００８９】
プログラム生成規則の各生成単位の処理を終了後、プログラム構成規則生成手段１９が、プログラム生成方式定義から構成規則生成用生成様式９（本実施態様に於いては、ＧｅｎｅｒａｔｅＢｕｉｌｄＲｕｌｅ．ｘｓｌ）を読み込み（Ｓ９２０）、構成規則生成用生成様式９に電子化知識４を適用した結果であるプログラム構成規則をプログラムの出力名に従って出力する（Ｓ９３０）。ここでプログラム構成規則生成手段１９が生成した、プログラム構成規則は、雛形生成手段１８が生成したプログラムの雛形をどの順番で目的プログラム生成手段１４でコンパイル（プログラムを人間可読から機械可読に変換する）するかを決めている規則であって、所謂メイクファイル（ｍａｋｅｆｉｌｅ）を意味している。
【００９０】
目的プログラム生成手段１４は、雛形生成手段１８が生成したプログラムの雛形とプログラム構成規則生成手段１９が生成したプログラム構成規則とに基づいて、機械可読な（即ち実行可能な）最終目的プログラムを生成する。このようなＳ１００からＳ９３０のプロセスの流れを行うことによって、物理的特徴と論理的特徴とが反映された実行可能な最終目的プログラムの生成が可能となる。
【００９１】
尚、本明細書に於いては、ＪＡＶＡ言語又はデータベースから電子化知識４をＸＭＬ言語で生成し、当該生成したＸＭＬ言語の電子化知識４からＪＡＶＡ言語のプログラムの雛形を生成し、それを機械可読な最終目的プログラムとして生成する場合を説明したが、それ以外のプログラム言語で電子化知識４を生成し、当該生成する電子化知識４もＸＭＬ言語以外の電子化知識４で生成し、更にＪＡＶＡ言語以外のプログラムの雛形を生成しても良い。従ってＪＡＶＡ言語からＸＭＬ言語の電子化知識４を生成し、そこからＣ言語のプログラムの雛形を生成しても良いし、ＶｉｓｕａｌＢａｓｉｃ言語からＣ言語の電子化知識４を生成し、そこからＪＡＶＡ言語のプログラムの雛形を生成しても良い。
【００９２】
又知識再利用システム１に、ネットワークを介して他のコンピュータ端末とデータの送受信を行う公知の通信手段を具備することによって、ネットワークを介した実行可能なプログラムの雛形の生成が可能となる。
【００９３】
本発明に於ける各手段、データベースは、その機能が論理的に区別されているのみであって、物理上あるいは事実上は同一の領域を為していても良い。又データベースの代わりにデータファイルであっても良いことは言うまでもなく、データベースとの記載にはデータファイルをも含んでいる。
【００９４】
尚、本発明を実施するにあたり本実施態様の機能を実現するプログラムのプログラムを記録した記憶媒体をシステムに供給し、そのシステムのコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによって実現されることは当然である。
【００９５】
この場合、記憶媒体から読み出されたプログラム自体が前記した実施態様の機能を実現することとなり、そのプログラムを記憶した記憶媒体は本発明を当然のことながら構成することになる。
【００９６】
プログラムを供給する為の記憶媒体としては、例えば磁気ディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性のメモリカード等を使用することができる。
【００９７】
又、コンピュータが読み出したプログラムを実行することにより、上述した実施態様の機能が実現されるだけではなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムなどが実際の処理の一部又は全部を行い、その処理によって前記した実施態様の機能が実現される場合も含まれることは言うまでもない。
【００９８】
更に、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる不揮発性あるいは揮発性の記憶手段に書き込まれた後、そのプログラムの指示に基づき、機能拡張ボードあるいは機能拡張ユニットに備わる演算処理装置などが実際の処理の一部あるいは全部を行い、その処理により前記した実施態様の機能が実現される場合も含まれることは当然である。
【００９９】
【発明の効果】
本発明によって、電子化知識に基づくプログラム生成方式を開発ツールから分離することにより、プログラムの生成様式を切り替えることで、任意の生成様式で自動的に実行可能なプログラムの雛形の生成が可能となる。
【０１００】
又本発明によって、電子化知識に加え、ユーザインターフェイス上の特徴を一元的に記録しておくことにより、電子化知識に基づくユーザインターフェイスの為のプログラムの生成が可能となる。
【０１０１】
更に、電子化知識に基づくプログラム生成の仕組みを、インターネット等のネットワークを利用することによって、ネットワークを介したプログラムに関する知識の、実時間での共有と再利用が可能となる。
【図面の簡単な説明】
【図１】  本発明のシステム構成の一例を示すシステム構成図である。
【図２】  本発明のシステム構成の一例を示すシステム構成図である。
【図３】  原始
（目的）プログラムのインターフェイス形式化処理のプロセスの流れの一例を示すフローチャート図である。
【図４】  電子化知識化処理のプロセスの流れの一例を示すフローチャート図である。
【図５】  電子化知識化処理のプロセスの流れの一例を示すフローチャート図である。
【図６】  電子化知識化処理のプロセスの流れの一例を示すフローチャート図である。
【図７】  モデリング情報形式化処理のプロセスの流れの一例を示すフローチャート図である。
【図８】  モデリング情報形式化処理のプロセスの流れの一例を示すフローチャート図である。
【図９】  プログラム生成処理のプロセスの流れの一例を示すフローチャート図である。
【図１０】プログラム生成処理のプロセスの流れの一例を示すフローチャート図である。
【図１１】プログラム生成処理のプロセスの流れの一例を示すフローチャート図である。
【図１２】原始プログラムの一例を示す図である。
【図１３】公開変数に対する処理後を示す図である。
【図１４】公開メソッドに対する処理後を示す図である。
【図１５】公開メソッドに対する処理後の他の例を示す図である。
【図１６】公開メソッドに対する処理後の他の例を示す図である。
【図１７】公開メソッドに対する処理後の他の例を示す図である。
【図１８】プログラム生成方式定義を示す図である。
【図１９】追加補正前の電子化知識を示す図である。
【図２０】追加補正後の電子化知識を示す図である。
【図２１】複数の電子化知識を一つに集約する際の電子化知識を示す図である。
【図２２】一つの電子化知識に集約した後の電子化知識を示す図である。
【図２３】データベースの一例である。
【図２４】データベースから生成した電子化知識の一例を示す図である。
【図２５】解決された電子化知識の一例を示す。
【図２６】プログラム生成規則の一例を示す。
【符号の説明】
１：知識再利用システム
２：インターフェイス形式化手段
３：プログラム手段
４：電子化知識
５：補正用生成様式
６：検証用生成様式
７：生成規則生成用生成様式
８：プログラム生成様式
９：構成規則生成用生成様式
１０：原始プログラムインターフェイス形式化手段
１１：目的プログラムインターフェイス形式化手段
１２：モデリング情報形式化手段
１３：プログラム生成手段
１４：目的プログラム生成手段
１５：補正手段
１６：検証手段
１７：プログラム生成規則生成手段
１８：雛形生成手段
１９：プログラム構成規則生成手段
【図１】
0004154164.tif 000002
【図２】
0004154164.tif 000003
【図３】
0004154164.tif 000004
【図４】
0004154164.tif 000005
【図５】
0004154164.tif 000006
【図６】
0004154164.tif 000007
【図７】
0004154164.tif 000008
【図８】
0004154164.tif 000009
【図９】
0004154164.tif 000010
【図１０】
0004154164.tif 000011
【図１１】
0004154164.tif 000012
【図１２】
0004154164.tif 000013
【図１３】
0004154164.tif 000014
【図１４】
0004154164.tif 000015
【図１５】
0004154164.tif 000016
【図１６】
0004154164.tif 000017
【図１７】
0004154164.tif 000018
【図１８】
0004154164.tif 000019
【図１９】
0004154164.tif 000020
【図２０】
0004154164.tif 000021
【図２１】
0004154164.tif 000022
【図２２】
0004154164.tif 000023
【図２３】
0004154164.tif 000024
【図２４】
0004154164.tif 000025
【図２５】
0004154164.tif 000026
【図２６】
0004154164.tif 000027