(57)【特許請求の範囲】
【請求項１】
データ項目に対する処理を行う業務処理プログラムを作成するにあたりコンピュータに格納されている複数のカプセル化されたコンポーネントを使用してそれらを組み合せオブジェクト指向のプログラムを実行するとき、連動させたい各クラスのコンポーネントを１つの親から継承して派生させることにより子オブジェクトの全てから親オブジェクトの変数を共有できるようにし、プログラム実行時に親クラスのオブジェクトに子オブジェクトの固有の情報（インスタンス値）を集めることによって子オブジェクト同士の特定の対応関係と動的なバインド（連動）を実現することを特徴とするオブジェクト指向のプログラムの作成方法。
【請求項２】
請求項１のオブジェクト指向のプログラム作成方法において、動的にバインドする子オブジェクトの情報を用いて親オブジェクトに集められた情報に基づき、プログラム実行時に動的にＳＱＬ文を生成するオブジェクト指向のプログラム作成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュ−タプログラムの規格化，部品化されたコンポ−ネント（部品）を任意，自由に組合せることにより、オブジェクト指向のプログラム作成方法に関するものである。
【０００２】
【従来の技術】
従来、コンピュ−タ用のアプリケ−ションソフトのプログラム（業務処理プログラム）は、プログラマが手作業によりプログラムコ−ドを、ロジックを考慮しつつコ−ディングすることにより作成されている。
【０００３】
このため、個々の顧客の要望や仕様に対応したプログラムを作成するには、多大な時間と労力を必要とするため、コストも高く、また、プログラマの手作業による作成であるために、品質も一定ではない上に、納期に長期間を要することも少なくない。
【０００４】
この点に鑑み、オブジェクト指向のプログラムの自動作成手法が提案されている。この手法は、プログラムの内容を、あるデ−タとそれによる機能とを一つの部品（コンポ−ネント）にまとめてカプセル化したクラスという概念のコンポ−ネントをコピ−すること（インスタンスの生成）により、一つのまとまった別のプログラムを自動的に作成するものである。
【０００５】
しかし、上記のオブジェクト指向のプログラム作成手法では、複数のクラスコンポ−ネント同士を、継承やメッセ−ジパッシングという各コンポ−ネント同士の連動手段を経由させて、一つのまとまったプログラムとして動くようにするため、各コンポ−ネント同士が結合的に連繋されてしまい、従って、例えば、その中の一つのコンポ−ネントについて、追加や変更、或は、削除といった修正を加えると、他のコンポ−ネントがその影響を受けて一つのまとまったプログラムとして動かなくなるという問題がある。
【０００６】
【発明が解決しようとする課題】
本発明はこのような点に鑑み、従来のオブジェクト指向のプログラミングでは、カプセル化されたコンポ−ネント同士の連動手段として不可欠であった継承やメッセ−ジパッシングを使用せずに、各コンポ−ネント同士を連動させることができるクラスライブラリィの作成方法を提供することを、その課題とするものである。
【０００７】
【課題を解決するための手段】
上記課題を解決することを目的としてなされた本発明方法の構成は、データ項目に対する処理を行う業務処理プログラムを作成するにあたりコンピュータに格納されている複数のカプセル化されたコンポーネントを使用してそれらを組み合せオブジェクト指向のプログラムを実行するとき、連動させたい各クラスのコンポーネントを１つの親から継承して派生させることにより子オブジェクトの全てから親オブジェクトの変数を共有できるようにし、プログラム実行時に親クラスのオブジェクトに子オブジェクトの固有の情報（インスタンス値）を集めることによって子オブジェクト同士の特定の対応関係と動的なバインド（連動）を実現することを特徴とするものである。
【０００８】
本発明は、連動していないカプセル化された各クラスのコンポ−ネント同士における連動させたい各クラスのコンポーネントを１つの親から継承して派生させることにより子オブジェクトの全てから親オブジェクトの変数を共有できるようにし、プログラム実行時に親クラスのオブジェクトに子オブジェクトの固有の情報（インスタンス値）を集めることによって子オブジェクト同士の特定の対応関係と動的なバインド（連動）を実現するので、プログラム開発の生産性と保守性を高めることができる。また、各クラスのコンポ−ネント同士は、直接継承されず、また、メッセ−ジパッシングにより連動する関係にはないので、各コンポ−ネントの独立性を保持でき、従って、夫々のコンポ−ネントに修正を加えても、それが他のコンポ−ネントに影響しないという特徴がある。
【０００９】
【発明の実施の形態】
次に、本発明の実施の形態について図に拠り説明する。図１は本発明方法における各クラスのコンポーネントの独立性を保持した継承の構造又は形態を模式的に表わしたブロック図、図２は本発明方法によるプログラム作成時の画面表示の一例の正面図、図３は画面起動時の処理のフロ−図、図４は検索ボタン押下時の処理のフロ−図である。
【００１０】
図１において、１はカプセル化された入力デ−タフィ−ルドクラスで、例えば、テ−ブル名１、項目名１などのデ−タが、コンピュ−タの内部でそれぞれのデ−タに固有のプライベ−ト変数（インスタンス値）を付与されている。
【００１１】
２は、従来手法においてはメッセ−ジパッシングにより前記のデ−タフィ−ルドクラス１と連動させられるようになっていたカプセル化された検索ボタンクラスであるが、本発明ではデ−タフィ−ルドクラス１とのメッセ−ジパッシングは行われない。この検索ボタンクラス２は、ＳＥＬＥＣＴ文を発行してデ−タベ−スを検索し、デ−タベ−スを読込むためのクラスである。
【００１２】
３は、前記デ−タフィ−ルドクラス１と検索ボタンクラス２との間にあって、両クラス１，２を、独立性を保持できる特定の対応関係に関係付けて動的に連動（バインド）させるための親クラスで、ここではパブリック変数のテ−ブルと項目とを具備している。
【００１３】
上記の親クラス３と検索ボタンクラス２，入力デ−タフィ−ルドクラス１とは、画面Ｄｐ上に、一例として図２のように表示される。図２の画面Ｄｐの上において、Ｓｂは検索ボタン、イ，ロ，ハ，ニは入力デ−タフィ−ルドクラス１の内容で、イは、項目名１＝Ａ，テ−ブル名１＝Tableとして、ロは項目名１＝Ｂ，テ−ブル名１＝Tableとして、ハは項目名１＝Ｃ，テ−ブル名１＝Tableとして、ニは項目名１＝Ｄ，テ−ブル名１＝Tableとして表示されている。
【００１４】
上記画面Ｄｐの起動時に、図１の検索ボタンクラス２と入力デ−タフィ−ルドクラス１を連動させるための処理は、次のようになされる。即ち、親クラス３は、入力デ−タフィ−ルドクラス１の各項目のプライベ−ト変数（インスタンス値）を読込み、親クラス３における前記各項目のバブリック変数を申告させる処理を行う。その処理手順は、一例として図３のフロ−図のようになされる。
【００１５】
図３において、ステップＳ1でスタ−トボタンを押すと、ステップＳ2では最終項目か否かが判別され、最終項目でないときステップＳ3で「項目＝項目＋項目名１」の処理がなされ、ステップＳ4でテ−ブル名の有無が判別され、テ−ブル名がないときのみステップＳ5で「テ−ブル＝テ−ブル名１」の処理を実行し、ステップＳ6で次の項目のプライベ−ト変数を読むためステップＳ2に戻る。そして、最終項目のプライベ−ト変数（インスタンス値）が読込まれると、ここでの処理が終了する。
【００１６】
上記の処理においては、１回目のル−プでは項目＝Ａ，２回目のル−プで項目＝Ａ，Ｂ・・・・といったように処理され、最終的にテ−ブル名＝Ｔａｂｌｅ、項目＝Ａ，Ｂ，Ｃ，Ｄと編集されるのである。
【００１７】
一方、検索ボタンＳｂを押下時の処理について図４のフロ−により説明する。
ここでは、親クラス３に申告されて集計されたパブリック変数の内容で動的にＳＱＬ文を生成して発行する。検索ボタンＳｂを押下してスタ−トすると、親クラス３に集計されているパブリック変数を参照してセレクト文が合成される。その文は例えば、「ＳＥＬＥＣＴ  項目  ＦＲＯＭ  テ−ブル」となるが、これは、「ＳＥＬＥＣＴ  Ａ，Ｂ，Ｃ，Ｄ  ＦＲＯＭ  Ｔａｂｌｅ」と同義である。この文による検索命令によってデ−タベ−スを検索し、検索内容を入力デ−タフィ−ルドクラスに表示して、処理を終了する。
【００１８】
従来手法によりクラスライブラリィを作成するには、カプセル化した各クラス同士を継承やメッセ−ジパッシングを経て連動するようにしているが、本発明では、継承やメッセ−ジパッシングを使用せず、連動させたい各クラスのコンポーネントを１つの親から継承して派生させることにより子オブジェクトの全てから親オブジェクトの変数を共有できるようにし、プログラム実行時に親クラスのオブジェクトに子オブジェクトの固有の情報（インスタンス値）を集めることによって子オブジェクト同士の特定の対応関係と動的なバインド（連動）を実現するようにしている。従って、夫々のクラス同士は、直接に継承された関係にはないので、夫々のクラスに追加，変更，削除といった修正を加えても、それが他のクラスに何ら影響しないので、各クラスの独立性が高く、また、保守性も良好であるという利点がある。
【００１９】
本発明では、入力デ−タフィ−ルドクラスとマルチラインデ−タフィ−ルドなどの入力データフィ−ルドクラスは、連動させたい各クラスのコンポーネントを１つの親から継承して派生させることにより子オブジェクトの全てから親オブジェクトの変数を共有できるようにし、プログラム実行時に親クラスのオブジェクトに子オブジェクトの固有の情報（インスタンス値）を集めることによって子オブジェクト同士の特定の対応関係と動的なバインド（連動）によって、検索ボタンクラス，追加，更新，削除などの各ボタンクラスに、インスタンス値を継承させ、更新の対象としている。
【００２０】
例えば、入力デ−タフィ−ルドクラスのデ−タＡとデ−タＢがあるとき、起動時に、それぞれのインスタンス値は、親クラスのクラス変数（パブリック変数）に申告される。そして検索ボタンや追加ボタンなどの操作により、前記親クラスのクラス変数を用いて、前記デ−タＡ，Ｂを動的にデ−タベ−スから読込むためのＳＱＬ文を自動合成する。これが本発明における連動させたい各クラスのコンポーネントを１つの親から継承して派生させることにより子オブジェクトの全てから親オブジェクトの変数を共有できるようにし、プログラム実行時に親クラスのオブジェクトに子オブジェクトの固有の情報（インスタンス値）を集めることによって果される機能である。
【００２１】
これによって、特定の対応関係にある各クラスは、夫々のクラスがどのような追加，変更を受けても前記ボタンを操作して作成するクラスライブラリィの作成ロジックに影響することはない。このことは、ウィンドウクラスとボタンクラスの独立性を高め、その自由な変更を可能にすることを意味する。
【００２２】
なお、上記以外のテ−ブルクラス，参照クラスはメッセ−ジによって検索する。また、ラジオボタンやチェックボックス，コンポボックス，リストボックスの各クラスの処理及び読込みもメッセ−ジによって実行する。例えば、参照クラスの検索、テ−ブルクラスの読込み、ラジオボタンクラスやチェックボックスクラスの処理のために、主として検索ボタンクラス等のクラスからメッセ−ジを発行し、発行されたメッセ−ジが間接継承したクラスのデ−タと同期をとって出力されるようになっている。
【００２３】
【発明の効果】
本発明は以上の通りであって、データ項目に対する処理を行う業務処理プログラムを作成するにあたりコンピュータに格納されている複数のカプセル化されたコンポーネントを使用してそれらを組み合せオブジェクト指向のプログラムを実行するのに、従来の継承やメッセ−ジパッシングにより各クラスを連動させる手法を用いず、連動させたい各クラスのコンポーネントを１つの親から継承して派生させることにより子オブジェクトの全てから親オブジェクトの変数を共有できるようにし、プログラム実行時に親クラスのオブジェクトに子オブジェクトの固有の情報（インスタンス値）を集めることによって子オブジェクト同士の特定の対応関係を作成しておき、各クラス同士を直接連繋させることなく、連動するように関係づけるので、個々のクラスに変更，追加，削除といった修正が加えられても、これが他のクラスに何ら影響することがない。従って、そのように修正を加えた各クラスのコンポ−ネントであっても、それらをプラットホ−ムに配置するだけで、連動するように関係づけることができるから、各クラスを一つのまとまったプログラムとして動くようにすることができる。これによりコンピュ−タ用のアプリケ−ションソフトのオブジェクト指向プログラムの作成がきわめて容易になる。
【図面の簡単な説明】
【図１】本発明方法における各クラスのコンポーネントの独立性を保持した継承の構造又は形態を模式的に表わしたブロック図。
【図２】本発明方法によるプログラム作成時の画面表示の一例の正面図。
【図３】画面起動時の処理のフロ−図。
【図４】検索ボタン押下時の処理のフロ−図。
【符号の説明】
１    デ−タフィ−ルドクラス
２    検索ボタンクラス
３    親クラス
Ｄｐ  画面
Ｓｂ  検索ボタン
【図１】
0003572150.tif 000002
【図２】
0003572150.tif 000003
【図３】
0003572150.tif 000004
【図４】
0003572150.tif 000005