(57)【特許請求の範囲】
【請求項１】
グラフィカルユーザインタフェースを利用してプログラムを生成するプログラム生成装置であって、
プログラムのひな型を有する処理を示す処理オブジェクトを提供する処理オブジェクト提供手段と、
前記処理オブジェクト提供手段により提供された処理オブジェクトを複数組み合わせて処理オブジェクトの構成を受け付けるプログラム構成生成手段と、
前記処理オブジェクトに入力されるコメント文を付加するコメント付加手段と、
前記処理オブジェクトによりプログラムを生成するためのパラメータ入力欄を表示するパラメータ入力欄表示手段と、
前記処理オブジェクトと関連する入力操作により、前記コメント付加手段で付加されたコメントは表示したまま、前記パラメータ入力欄表示手段で表示されるパラメータ入力欄を表示させるか否かを受け付ける操作受付手段と、
前記操作受付手段により前記処理オブジェクトのパラメータ入力欄を表示させないことを受け付けた場合、該パラメータ入力欄を隠蔽し、前記コメント付加手段で付加されたコメントと前記プログラム構成生成手段で生成されたプログラムの構成とを表示する表示手段と、
前記処理オブジェクトで象徴される処理のプログラムのひな型に、前記パラメータ入力欄表示手段で表示されたパラメータ入力欄に入力された値を適応させ、前記プログラム構成生成手段で組み合わされた処理オブジェクトの構成によってソースプログラムを生成するソースプログラム生成手段と、
を備えることを特徴とするプログラム生成装置。
【請求項２】
前記表示手段は、
前記隠蔽されたパラメータ入力欄を前記処理オブジェクトと関連する入力操作により、前記処理オブジェクトと関連する入力操作により、該処理オブジェクトのパラメータ入力欄を表示させることを特徴とする請求項１に記載のプログラム生成装置。
【請求項３】
処理が未定義であることを象徴する処理未定義図形オブジェクトを提供する処理未定義図形オブジェクト提供手段と、
前記プログラム構成生成手段は、前記処理未定義図形オブジェクト提供手段により提供された処理未定義図形オブジェクトを複数組み合わせてソースプログラムの構成を受け付け、
前記処理未定義図形オブジェクトを、処理を定義する複数種類の処理プログラムに対応した複数種類の処理を象徴する処理定義図形オブジェクトへの変更を受け付ける処理定義変更手段と、
を備えることを特徴とする請求項１または２に記載のプログラム生成装置。
【請求項４】
前記処理定義変更手段により変更を受け付けた処理定義図形オブジェクトに対応した処理プログラムに必要なパラメータの入力を受け付けるパラメータ入力手段とを有し、
前記ソースプログラム生成手段は、前記処理定義図形オブジェクト毎に定義された処理プログラムと前記パラメータ入力手段により入力されたパラメータとからソースプログラムを生成することを特徴とする請求項３に記載のプログラム生成装置。
【請求項５】
前記表示手段で表示されたプログラムの構成から、前記パラメータ入力手段で入力されたパラメータを表示させるかを受け付ける処理内容非表示手段と
を有することを特徴とする請求項４に記載のプログラム生成装置。
【請求項６】
前記処理内容非表示手段は、前記パラメータを表示の有無に関わらず、前記コメント付加手段で付加されたコメントは表示させることを特徴とする請求項５に記載のプログラム生成装置。
【請求項７】
前記表示手段で表示されたプログラムの構成から、前記処理定義図形オブジェクトの構成の変更を受け付ける処理定義図形オブジェクト位置移動受付手段と、
前記処理定義図形オブジェクトの構成の変更が適切かを判断する処理定義図形オブジェクト位置移動判定手段と、
前記処理定義図形オブジェクト位置移動判定手段により処理定義図形オブジェクトの構成の変更が適切と判断される場合に前記処理定義図形オブジェクト位置移動受付手段が受け付けた処理定義図形オブジェクトの構成を変更する処理定義図形オブジェクト位置移動手段と、
を有することを特徴とする請求項３乃至６に記載のプログラム生成装置。
【請求項８】
グラフィカルユーザインタフェースを利用してプログラムを生成するプログラム生成装置におけるプログラム生成方法であって、
プログラムのひな型を有する処理を示す処理オブジェクトを提供する処理オブジェクト提供工程と、
前記処理オブジェクト提供工程により提供された処理オブジェクトを複数組み合わせて処理オブジェクトの構成を受け付けるプログラム構成生成工程と、
前記処理オブジェクトに入力されるコメント文を付加するコメント付加工程と、
前記処理オブジェクトによりプログラムを生成するためのパラメータ入力欄を表示するパラメータ入力欄表示工程と、
前記処理オブジェクトと関連する入力操作により、前記コメント付加工程で付加されたコメントは表示したまま、前記パラメータ入力欄表示工程で表示されるパラメータ入力欄を表示させるか否かを受け付ける操作受付工程と、
前記操作受付工程により前記処理オブジェクトのパラメータ入力欄を表示させないことを受け付けた場合、該パラメータ入力欄を隠蔽し、前記コメント付加工程で付加されたコメントと前記プログラム構成生成工程で生成されたプログラムの構成とを表示する表示工程と、
前記処理オブジェクトで象徴される処理のプログラムのひな型に、前記パラメータ入力欄表示工程で表示されたパラメータ入力欄に入力された値を適応させ、前記プログラム構成生成工程で組み合わされた処理オブジェクトの構成によってソースプログラムを生成するソースプログラム生成工程と、
を備えることを特徴とするプログラム生成方法。
【請求項９】
グラフィカルユーザインタフェースを利用してプログラムを生成するプログラム生成装置で読み取り実行されるプログラムであって、
前記プログラム生成装置を、
プログラムのひな型を有する処理を示す処理オブジェクトを提供する処理オブジェクト提供手段と、
前記処理オブジェクト提供手段により提供された処理オブジェクトを複数組み合わせて処理オブジェクトの構成を受け付けるプログラム構成生成手段と、
前記処理オブジェクトに入力されるコメント文を付加するコメント付加手段と、
前記処理オブジェクトによりプログラムを生成するためのパラメータ入力欄を表示するパラメータ入力欄表示手段と、
前記処理オブジェクトと関連する入力操作により、前記コメント付加手段で付加されたコメントは表示したまま、前記パラメータ入力欄表示手段で表示されるパラメータ入力欄を表示させるか否かを受け付ける操作受付手段と、
前記操作受付手段により前記処理オブジェクトのパラメータ入力欄を表示させないことを受け付けた場合、該パラメータ入力欄を隠蔽し、前記コメント付加手段で付加されたコメントと前記プログラム構成生成手段で生成されたプログラムの構成とを表示する表示手段と、
前記処理オブジェクトで象徴される処理のプログラムのひな型に、前記パラメータ入力欄表示手段で表示されたパラメータ入力欄に入力された値を適応させ、前記プログラム構成生成手段で組み合わされた処理オブジェクトの構成によってソースプログラムを生成するソースプログラム生成手段と、
して機能させる事を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを生成するプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
従来より、ソースプログラムを作成する際にソースプログラムに併記してコメントを記述する場合がある。ソースプログラムに併記されたコメントは、ユーザがソースプログラムの内容を容易に理解できるように記述する場合が多い。
【０００３】
特許文献１では、プログラムのコメント部分の階層構造を簡単に設定でき、プログラムの階層構造に応じてコメントを折り畳み、表示することが出来る構成が記載されている。
【特許文献１】特開２０１１−８６１１８
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１はソースプログラム生成後にコメントを付して、後に内容を解釈するユーザへのソースプログラムの理解を助けるための技術が記載されているが、ソースプログラムの作成前や作成している最中にソースプログラム作成を支援する技術については記載されてはいない。
【０００５】
すなわち、ユーザがソースプログラムを作成する前や作成している過程で、コメントを付加した処理未定義のブロック（まだソースプログラムが記載されていない処理ブロック）を予め配置して、ソースプログラムの全体の構成を把握し易くすることは特許文献１では実現できない。
【０００６】
本発明の目的は、ユーザがソースプログラムを作成する前や作成している過程で、コメントを付加した処理ブロックを用いて、ソースプログラムの全体の構成を把握し易くさせて、ユーザのソースプログラム生成を補助することである。
【課題を解決するための手段】
【０００７】
本発明は、グラフィカルユーザインタフェースを利用してプログラムを生成するプログラム生成装置であって、プログラムのひな型を有する処理を示す処理オブジェクトを提供する処理オブジェクト提供手段と、前記処理オブジェクト提供手段により提供された処理オブジェクトを複数組み合わせて処理オブジェクトの構成を受け付けるプログラム構成生成手段と、前記処理オブジェクトに入力されるコメント文を付加するコメント付加手段と、
前記処理オブジェクトによりプログラムを生成するためのパラメータ入力欄を表示するパラメータ入力欄表示手段と、前記処理オブジェクトと関連する入力操作により、前記コメント付加手段で付加されたコメントは表示したまま、前記パラメータ入力欄表示手段で表示されるパラメータ入力欄を表示させるか否かを受け付ける操作受付手段と、前記操作受付手段により前記処理オブジェクトのパラメータ入力欄を表示させないことを受け付けた場合、該パラメータ入力欄を隠蔽し、前記コメント付加手段で付加されたコメントと前記プログラム構成生成手段で生成されたプログラムの構成とを表示する表示手段と、前記処理オブジェクトで象徴される処理のプログラムのひな型に、前記パラメータ入力欄表示手段で表示されたパラメータ入力欄に入力された値を適応させ、前記プログラム構成生成手段で組み合わされた処理オブジェクトの構成によってソースプログラムを生成するソースプログラム生成手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、コメントを付加した処理ブロックを予め配置して、処理ブロックの全体構成を把握し易くすることにより、ユーザがソースプログラムを作成する前や作成している過程で、プログラムの全体構成の間違いに気付くことができ、ソースプログラム作成の支援が可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係わるプログラム開発装置（開発者端末）、プログラム開発サーバ、データベース、アプリケーションクライアント（クライアント端末）、アプリケーションサーバの構成の一例を示すシステム構成図である。
【図２】本発明の実施形態における各種装置のハードウェア構成を示す図である。
【図３】本発明の実施形態におけるプログラム生成装置１００のソフトウェア構成を示す図である。
【図４】本発明の実施形態におけるプログラム生成装置１００の基本的な処理フローを示す図の一例である。
【図５】本発明の実施形態におけるプログラム生成装置１００のロジック入力の処理フローを示す図の一例である。
【図６】本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成する初期画面の模式図である。
【図７】本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成するフォーム作成画面の模式図である。
【図８】データベースサーバが管理するデータベースの一例を示す図であり、ＰＣデータテーブルの例である。
【図９】本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成する項目を定義する項目定義画面の模式図である。
【図１０】本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成するアクション作成画面の模式図である。
【図１１】本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成するアクション作成画面の模式図である。
【図１２】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の初期画面の模式図である。
【図１３】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図１４】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図１５】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図１６】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図１７】本発明の実施形態におけるプログラム生成装置１００が生成するプログラムの例である。
【図１８】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図１９】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図２０】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図２１】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図２２】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図２３】本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【図２４】本発明に係る情報処理装置で読み取り可能なプログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【図２５】本発明に係る情報処理装置で読み取り可能なプログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【図２６】本発明の実施形態におけるプログラム生成装置１００が有する雛型プログラムの例である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１１】
図１は、本発明に係わるプログラム開発装置（開発者端末）、プログラム開発サーバ、データベース、アプリケーションクライアント（クライアント端末）、アプリケーションサーバの構成の一例を示すシステム構成図である（情報処理システム）。
【００１２】
プログラム開発装置１００（情報処理装置）は、開発者の操作に従って画面レイアウトおよびデータベース検索のアクションなどを定義する。プログラム開発装置１００単体では、ユーザの入力受付、後述するプログラム開発サーバ１０２に実際のプログラム生成処理をさせてもよいし、プログラム開発装置単体でプログラム生成まで処理してもよい。
【００１３】
プログラム開発サーバ１０２ａ〜１０２ｂ（情報処理装置）は、プログラム開発装置１００により入力された開発者の指示に従って、プログラムを開発する。プログラム開発サーバ１０２ａはＬＡＮなどのネットワーク１０６内に配置されてもよいし、プログラム開発サーバ１０２ｂはインターネット上やクラウド上に配置されてもよい。
【００１４】
データベース１０３ａ〜１０３ｃ（情報処理装置）は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも利用する。例えば、開発者が利用するためにデータベース１０３ａは、プログラム開発装置１００と同一の装置で構成されていてもよいし、ＬＡＮなどのネットワーク１０６内に配置されてもよい（データベース１０３ｂ）し、またインターネット上やクラウド上に配置されてもよい（データベース１０３ｃ）。また、プログラム開発装置１００が、プログラム開発サーバ１０２と協調する場合には、プログラム開発サーバ１０２とデータベースが同一の装置内に構成されていてもよい。
【００１５】
アプリケーションサーバ１０５ａ〜１０５ｂ（情報処理装置）は、プログラム開発装置１００で開発されたアプリケーションを実行する。ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションサーバ１０５ａ）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションサーバ１０５ｂ）。また、ネットワーク１０６、インターネット、クラウド上のデータベース１０３と接続して動作する可能である。
【００１６】
アプリケーションクライアント１０４ａ〜１０４ｂ（情報処理装置）は、アプリケーションサーバ１０５と協調してプログラム開発装置１００で開発したアプリケーションプログラムを動作させる、ユーザの入力端末である。ＬＡＮなどのネットワーク１０６内に配置されてもよい（アプリケーションクライアント１０４ａ）し、またインターネット上やクラウド上に配置されてもよい（アプリケーションクライアント１０４ｂ）。携帯端末などの情報処理装置であってもよい。
【００１７】
次に、図２を参照して、図１に示したプログラム生成装置１００およびプログラム開発サーバ１０２、ならびにデータベースサーバ１０３、アプリケーションクライアント１０４、アプリケーションサーバ１０５のハードウェア構成について説明する。
【００１８】
図２は、本発明の実施形態における各種装置のハードウェア構成を示す図である。
【００１９】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２０】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２１】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２２】
また、入力コントローラ（入力Ｃ）２０５は、キーボード２０９や不図示のマウス等のポインティングデバイスからの入力を制御する。
【００２３】
ビデオコントローラ（ＶＣ）２０６は、ディスプレイ２１０等の表示器への表示を制御する。表示器はＣＲＴでも良いし、液晶ディスプレイでも構わない。
【００２４】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２５】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２６】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２７】
本発明を実現するためのプログラムは外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明で生成されるプログラムやプロキシクラスファイル、プログラムが用いる定義ファイル及び各種情報テーブルは外部メモリ２１１に格納されており、これらについての詳細な説明は後述する。
【００２８】
なお、図１の構成は一例であり、用途や目的に応じて様々な構成例があることは云うまでもない。その他の構成例として、プログラム生成装置が、ネットワークと接続され、通信可能な不図示のパーソナルコンピュータ等の情報処理装置からプログラム生成命令を受けることによって、プログラムの生成を行うことも可能である。
【００２９】
すなわち、本発明の機能が実現されるものであれば、単体の機器であっても、複数の機器からなるシステムであっても、ネットワークを介して処理が行われるシステムであっても本発明を適用することができる。
【００３０】
また、ここで、ハードディスクドライブ（ＨＤＤ）等の外部メモリ２１１に記憶された情報は、それぞれデータベース（ＤＢ）等に格納されていても良い。
【００３１】
次に、図３を参照して、図１に示したプログラム生成装置１００のソフトウェア構成について説明する。
【００３２】
図３は、本発明の実施形態におけるプログラム生成装置１００のソフトウェア構成を示す図である。
【００３３】
３０１は、処理未定義図形オブジェクト提供部であり、開発者ユーザがプログラム生成装置の入力手段によりプログラム生成プログラム上の処理ブロック配置エリア（図１２の１２０６）に配置する処理未定義図形オブジェクト（処理が定義されていない処理未定義ブロック１２０３）を提供している。
【００３４】
３０２は、コメント付加部であり、処理未定義図形オブジェクトや処理定義図形オブジェクト（後述）に開発者ユーザがプログラム生成装置の入力手段により付加するコメントを受け付ける機能（図１３の１３０２）を有する。
【００３５】
３０３は、処理定義変更部であり、処理未定義図形オブジェクト提供部により配置された処理未定義図形オブジェクトの処理定義を開発者ユーザから受け付ける機能（図１４の１４０３）を有する。
【００３６】
３０４は、ソースプログラム生成部であり、開発者ユーザが作成した処理ロジック（処理ブロック配置エリア（図１５の１５０７））から、各処理ブロックが有する雛型を用いて、ソースプログラムを生成する機能を有する。
【００３７】
３０５は、処理定義図形オブジェクト提供部であり、開発者ユーザがプログラム生成装置の入力手段によりプログラム生成プログラム上の処理ブロック配置エリア（図１５の１５０７）に配置する処理定義図形オブジェクト（処理が定義されてる処理定義ブロック１２０２）を提供している。
【００３８】
３０６は、パラメータ入力部であり、開発者ユーザがプログラム生成装置の入力手段によりプログラム生成プログラム上の処理ブロック配置エリア（図１５の１５０７）に配置された処理定義された処理ブロックのパラメータの入力を受け付ける機能である。
【００３９】
３０７は、プログラム構成生成部であり、プログラム生成プログラム上に処理定義図形オブジェクト及び処理未定義図形オブジェクトを複数組み合わせて配置し、ソースプログラムの構成を受け付ける処理ブロック配置エリア（図１５の１５０７）である。
【００４０】
次に、プログラム生成装置１００の基本的な処理フローについて、図４を参照して説明する。
【００４１】
図４は、本発明の実施形態におけるプログラム生成装置１００の基本的な処理フローを示す図の一例である。なお、図４のフローチャートはプログラム生成装置１００のＣＰＵ２０１により実行されるものである。
【００４２】
図４のフローチャートは、プログラム生成装置１００において、開発者ユーザがプログラムを生成するプログラムを起動した際に開始される。以下、混乱を防ぐために生成される結果のプログラムをソースプログラムと呼び、前記ソースプログラムを生成するプログラムを単にプログラムと呼ぶ。
【００４３】
図４のステップＳ４０１において、開発者ユーザはプログラムを起動すると、プログラム生成装置１００のＣＰＵ２０１は、図６のような起動画面を生成し、ディスプレイ２１０に表示する。
【００４４】
図６は、本発明のプログラム生成装置１００における処理ロジックを生成する初期画面の模式図である。
以下の説明は、開発者ユーザの操作の一例を示す。
【００４５】
Ｓ４０１において、開発者ユーザは図示しないマウスやキーボード２０９により、６０１の「アプリケーション」欄を押下し出力されるドロップダウンリストから、図示しない「新しいアプリケーションを作成する」ボタンを押下する。
【００４６】
新規作成されたアプリケーションのディスプレイ２１０への表示例を図６の６０２に示す。
【００４７】
図６の６０２の場合は、プロジェクトＩＤが「ｃｈｉｚａｉ」、アプリケーションＩＤが「ＰＣ」、アプリケーションタイトルが「ＰＣ管理」というアプリケーションが開発者ユーザにより作成された例である。
【００４８】
開発者ユーザは次に、図示しないマウスやキーボード２０９により、６０１の「アプリケーション」欄を押下し出力されるドロップダウンリストから、図示しない「新しいフォームを作成する」ボタンを押下する。
【００４９】
「新しいフォームを作成する」ボタンを押下すると、新しいフォームＩＤとフォームのタイトルを入力する図示しない画面が生成され、開発者ユーザが新しいフォームＩＤとフォームのタイトルを入力する。
【００５０】
次に、開発者ユーザが図６の「フォーム」欄６０３を押下すると、プログラム生成装置１００のＣＰＵ２０１は、６０４の欄に新規作成されたフォームＩＤとフォームタイトル、その他の情報をディスプレイ２１０に表示する。
【００５１】
新規に作成されたフォームＩＤの行６０４を開発者ユーザがダブルクリック等を実施すると、プログラム生成装置１００のＣＰＵ２０１は、図７のようなフォーム作成画面を生成し、ディスプレイ２１０に表示する。
【００５２】
図７は、本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成するフォーム作成画面の模式図である。
【００５３】
図７の７０１が、作成するフォーム（画面レイアウト）上に配置するオブジェクトであり、７０１の中にラベルオブジェクト７０２や入力テキストオブジェクト７０３、テキストリンクオブジェクト７０４、チェックボックスオブジェクト７０５、ドロップダウンリストオブジェクト７０６、ラジオボタンオブジェクト７０７や通常のボタンオブジェクト７０８などがある。
【００５４】
これらのオブジェクトを開発者ユーザが図７のレイアウトエリア７１１に配置することにより、アプリケーションの画面レイアウトを作成する。
【００５５】
レイアウトエリア７１１にオブジェクトを配置した後、配置したオブジェクトを指定すると、７１９のようなオブジェクト設定エリアを表示する。
【００５６】
オブジェクト設定エリア７１９では、配置したオブジェクトの名前、キャプション（表示する文字）、項目種別（オブジェクトの種類）などを指定する。
【００５７】
具体的には、例えば、開発者ユーザが７１３の位置には７０３の入力テキストオブジェクトを配置する。更に開発者ユーザは、オブジェクト設定エリア７１９に表示されているように、名前を「ＰＣ＿ＮＯ」、キャプションを「ＰＣ管理番号」、項目種別を「入力テキスト」と指定している
【００５８】
同様に、開発者ユーザがレイアウトエリア７１１の７１２の位置に７０２の「ＰＣ管理メンテナンス」というキャプション付きのラベルオブジェクトを配置し、７１４の位置に７０４の「ＰＣ管理番号を入力してここをクリックしてください」というキャプション付きのテキストリンクオブジェクト、７１５の位置に７０５の「使用状態」というキャプション付きのチェックボックスオブジェクト、７１６の位置に７０６の「メーカー」というキャプション付きのドロップダウンリストオブジェクト、７１７の位置に７０７の「取得状態」というキャプション付きのラジオボタンオブジェクト、７１８の位置に７０８の「登録」というキャプション付きのボタンオブジェクトをそれぞれ配置する。
【００５９】
なお、図７のアプリケーションの例は、会社や大学など複数のパーソナルコンピュータ（ＰＣ）を管理している団体において、ＰＣの使用者やメーカー情報、リースか経費購入か、また設置場所は何階かなどの情報を管理するための画面レイアウトであり、図８のようなデータベースへの登録、修正、削除、データベースの閲覧を実施するための画面レイアウトである。図８を参照して、データベースの例を説明する。
【００６０】
図８は、データベースサーバが管理するデータベースの一例を示す図であり、ＰＣデータテーブルの例である。
【００６１】
図８の８０１は、管理しているＰＣのＰＣ管理番号であり、このデータベースのキーとなるユニークなＩＤである。
【００６２】
８０２はユーザコードであり、８０３のユーザ名と紐付けられているＰＣの使用ユーザを識別するためのＩＤである。
【００６３】
８０４は、ＰＣのメーカーであり、８０５はＰＣの設置フロアである。８０６はＰＣの使用状態を示し、１であれば使用中、０であれば休止中を意味する。また、８０７は取得状態であり、１は経費購入、２はリースである。
【００６４】
なお、図８のようなデータベースはデータベースサーバが保持していても良いし、プログラム開発装置で保持しておいても良い。図７の画面レイアウトの説明に戻る。
【００６５】
図７のレイアウトエリア７１１のようにそれぞれのオブジェクトを配置する際、開発者ユーザは関連するオブジェクトをグループオブジェクトとして定義できる。
【００６６】
開発者ユーザは、例えば、図７の７２１のように使用者でグループ化できる「ユーザコード」と「ユーザ名」をオブジェクト設定エリア７１９で、グループ名を「ｇｒｏｕｐ＿１」、キャプションを「使用者」として定義する。
【００６７】
同様に７２２のＰＣ情報としてグループ化できる「メーカー」と「取得状態」とを、グループ名が「ｇｒｏｕｐ＿２」でキャプションが「ＰＣ情報」とする。また、７２３の「設置フロア」を、グループ名が「ｇｒｏｕｐ＿３」でキャプションが「設置場所」のグループと定義する。
【００６８】
なお、上記グループに属していない７１１のベースエリアに配置されている入力テキストオブジェクト７１３やテキストリンクオブジェクト７１４、チェックボックスオブジェクト７１５、ボタンオブジェクト７１８は、ベースのグループ名「ｒｏｏｔ」に属していると設定する。
【００６９】
開発者ユーザが画面レイアウトを設定した後、開発者ユーザは項目定義タブ７２０を押下して、各オブジェクトの入出力項目を定義する。
【００７０】
項目定義タブ７２０が押下されると、プログラム生成装置１００のＣＰＵ２０１は、図９のような項目定義画面を生成し、ディスプレイ２１０に表示する。（図４のステップＳ４０２）
【００７１】
図９は、本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成する項目を定義する項目定義画面の模式図である。
【００７２】
図９の９００では、フォーム作成画面で設定したオブジェクトの内、データを入出力に関わる項目についての項目を開発者ユーザが定義する。
【００７３】
図９の９０１から９０４、９０８は、図７の７１９のオブジェクト設定エリアでそれぞれ定義された値が表示される。
【００７４】
例えば、７１９で指定されている名前が「ＰＣ＿ＮＯ」で、キャプションとして「ＰＣ管理番号」、項目種別として「入力テキスト」、必須項目にチェックが指定されている入出力項目は、図９の９００の１行目（９０９の行）に該当し、名前９０１が「ＰＣ＿ＮＯ」、キャプション９０２が「ＰＣ管理番号」、項目種別９０３が「ＩＮＰＵＴ＿ＴＥＸＴ」、必須項目９０４が有効となっている。また、グループ名９０８はベースのグループである「ｒｏｏｔ」となっている。
【００７５】
図９の９０５から９０７のデータ型などは、項目定義画面のそれぞれの行を選択し、９１０に表示される項目詳細定義エリアで指定する。
【００７６】
具体的に、９１０には９０９の行を開発者ユーザが指定した場合として、データ型を「ＳＴＲＩＮＧ」と指定し、入力が必須項目であると開発者ユーザが定義した例である。
【００７７】
図９の項目定義画面でそれぞれの項目の定義をした後、開発者ユーザがアクションタブ９２０を押下して、図７および図９で定義した上記オブジェクトのアクションを設定する。
【００７８】
アクションタブ９２０が押下されると、プログラム生成装置１００のＣＰＵ２０１は、図１０のようなアクション作成画面を生成し、ディスプレイ２１０に表示する。（図４のステップＳ４０３）
【００７９】
図１０は、本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成するアクション作成画面の模式図である。
【００８０】
図１０の１００１には、図７の７１１上にあるアクション（ボタン押下やデータ入力、ラジオボタン選択など）を含むオブジェクトが１行ごとに記載されている。
【００８１】
開発者ユーザが各オブジェクト毎にそれぞれのアクションをアクション記入エリア１００２に設定する。
【００８２】
例えば、１００３の登録ボタンに対応するアクション（図７の登録ボタン７１８に該当）の行を開発者ユーザが選択すると、アクション記入エリア１００２に図７の登録ボタンのｃｌｉｃｋ時のアクションとしてのパラメータ入力画面を表示する。
【００８３】
アクション記入エリア１００２にＰＣ管理番号の登録に関するアクションを開発者ユーザが記入する。記入した結果を図１１を参照して説明する。
【００８４】
図１１は、本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成するアクション作成画面の模式図である。
【００８５】
図１１の１１０１は、１００３で選択されているＰＣ管理情報登録の際のアクションに開発者ユーザが入力した画面であり、図７の７１８が押下された際に実行するアクションを定義している。
【００８６】
１１０１の入力欄を詳細に説明すると、図７の登録ボタン７１８のアクションにはＰＣ管理情報を登録するため、パラメータとして図９の項目定義で定義した全ての情報を構造体のパラメータとして取得する。そのため、登録アクションの入力パラメータ欄１１０２には、「ｇｒｏｕｐ＿１」、「ｇｒｏｕｐ＿２」、「ｇｒｏｕｐ＿３」とベースのグループ「ｒｏｏｔ」の全てのグループ化された項目の情報１１０３を開発者ユーザが指定する。
【００８７】
パラメータの指定方法は、１１０４のボタンを押下して出てくる図示しないグループ名選択欄から、オブジェクト設定エリア７１９で設定したグループ名を選択する。
【００８８】
選択されたグループ名のパラメータ１１０３をこれから呼びだす処理ロジックで使用するために、使用するパラメータを１１０５のパラメータ入力欄に入力する。
【００８９】
具体的には、パラメータとして入力パラメータの領域（フォーム作成画面で作成した領域）が「＄Ｉ」と定義されている。それぞれのグループ名のパラメータは、１１０５に記載されているように、呼びだす処理ロジックのパラメータ「ｒｏｏｔ」として、入力パラメータ領域の「＄Ｉ．ｒｏｏｔ」を定義し、また、呼びだす処理ロジックのパラメータ「ｇ１」として、入力パラメータ領域の「＄Ｉ．ｇｒｏｕｐ＿１」を定義、呼びだす処理ロジックのパラメータ「ｇ２」として、入力パラメータ領域の「＄Ｉ．ｇｒｏｕｐ＿２」を定義、呼びだす処理ロジックのパラメータ「ｇ３」として、入力パラメータ領域の「＄Ｉ．ｇｒｏｕｐ＿３」を定義する。
【００９０】
次に、開発者ユーザは１１０６ボタンを押下し、呼びだす処理ロジックを指定もしくは新規作成する。
【００９１】
具体的には、１１０６ボタンが押下されると、プログラム生成装置１００のＣＰＵ２０１は、図示しない処理ロジックＩＤ入力画面を表示する。その後、既存の処理ロジックＩＤが指定されるか、新規作成であれば、新規の処理ロジックＩＤが入力されて、１１０７のように指定もしくは入力した処理ロジックＩＤを表示する。表示された処理ロジックＩＤ１１０７はリンクボタンになっており、１１０７を押下すると、処理ロジックＩＤの処理ロジック作成画面に移行する。（図４のステップＳ４０４）
【００９２】
図４のステップＳ４０４の処理の詳細を図５のフローチャートにて後述する。
【００９３】
ステップＳ４０４が終了し、処理ロジック作成が終了すると、ステップＳ４０５に移行し、それぞれの処理ブロック（後述する）毎のソースプログラムの雛型を利用して、実行可能なソースプログラムを生成して、処理を終了する。
【００９４】
以下、図４のステップＳ４０４の処理の詳細を図５のフローチャートを参照して説明する。
【００９５】
以降は、登録処理ロジック（図７の登録ボタン７１８のロジック）を作成する場合について説明する。
【００９６】
図５は、本発明の実施形態におけるプログラム生成装置１００のロジック入力の処理フローを示す図の一例である。なお、図５のフローチャートはプログラム生成装置１００のＣＰＵ２０１により実行されるものである。
【００９７】
図５のフローチャートは、プログラム生成装置１００において、開発者ユーザが処理ブロックを生成するプログラムを処理ロジックＩＤ１１０７のリンクボタンを押下した際などに開始される。
【００９８】
まず、図５のステップＳ５０１において、プログラム生成装置１００のＣＰＵ２０１は、図１２のような起動画面を生成し、ディスプレイ２１０に表示する。図１２〜図１７を参照して、本発明の実施形態を説明する。
【００９９】
図１２は、本発明のプログラム生成装置１００におけるソースプログラム生成プログラムが生成する処理ロジック生成画面の初期画面の模式図である。
【０１００】
図１２のパラメータ欄１２０１に、図１１のパラメータ入力欄１１０５で指定されたパラメータを読み込み、自動的にパラメータを入力する。
【０１０１】
次に図５のステップＳ５０２において、プログラム生成装置１００のＣＰＵ２０１は、開発者ユーザからのボタン入力を受け付ける。
【０１０２】
処理ロジックを記載する際に受け付けるボタンとしては、処理定義ブロックボタン（処理定義図形オブジェクト）１２０２、処理未定義ブロックボタン（処理未定義図形オブジェクト）１２０３、処理ブロック位置移動ボタン（処理定義図形オブジェクト位置移動）、１２０４、処理内容表示非表示ボタン（処理内容非表示）１２０５である。
【０１０３】
処理定義ブロックボタン１２０２は、処理の種類ごとに「スクリプト」処理１２２１、「データ構造宣言」処理１２２２、「子データ構造宣言」処理１２２３、「データベース操作」処理１２２４、「データベース検索」処理、「データ編集」処理、「ロジック呼出」処理、「条件分岐」処理、「条件（ＥＬＳＥ  ＩＦ）」処理、「繰り返し（ＦＯＲ  ＥＡＣＨ）」処理、「制御操作」処理などがあり、それぞれの処理のソースプログラムの雛型を有している。
【０１０４】
「スクリプト」処理１２２１は、処理ブロック配置エリア１２０６に処理ブロックを貼り付けた後で、処理ブロック内に記載したスクリプトを実行する。「スクリプト」処理に記載するスクリプトとしては、例えばＪａｖａＳｃｒｉｐｔ（登録商標）などがある。詳細は後述する図１５を参照して説明する。
【０１０５】
「データ構造宣言」処理１２２２は、指定されたデータベースのテーブル構造を有するデータ構造体を「ＩＲｅｃｏｒｄ」として名前を付してＲＡＭ２０３などにメモリエリアを作成し、作成したメモリエリアに指定されたパラメータの値を代入する処理である。詳細は後述する図１５を参照して説明する。
【０１０６】
「子データ構造宣言」処理１２２３は、「データ構造宣言」１２２２で指定されたデータベースと1対多の関係となるデータベースの構造をＲＡＭ２０３などのメモリエリアに作成し、指定されたパラメータの値を代入する処理である。なお、「子データ構造宣言」処理は「データ構造宣言」処理と親子関係にしかなりえない。その為、図１２では、「データ構造宣言」処理は選択可能なようにブリンクアップ（黒地に白文字）されているが、「子データ構造宣言」はブリンクアップされていない（白地に黒文字）。以下、同様に黒地に白文字のボタンが有効状態であり、白地に黒文字のボタンは無効状態とする。
【０１０７】
「データベース操作」処理１２２４は、「データ構造宣言」処理で指定されたデータベースに、「ＩＲｅｃｏｒｄ」の値を反映する処理であり、実行する操作としては、「ＩＮＳＥＲＴ」、「ＵＰＤＡＴＥ」、「ＥＲＡＳＥ」、「ＳＴＯＲＥ」、「ＳＴＯＲＥＡＬＬ」、「ＭＯＤＩＦＹ」などがある。実行する操作は、後述する図１６を参照して説明する。
【０１０８】
なお、親子の関係にある「データ構造宣言」処理１２２２及び「子データ構造宣言」処理１２２３で指定された「ＩＲｅｃｏｒｄ」に対して「データベース操作」処理を実行すると、「データ構造宣言」処理と「子データ構造宣言」処理で指定された両方のデータを含めた「データベース操作」処理を行う。
【０１０９】
この親子の関係のデータ構造宣言」処理ブロック及び「子データ構造宣言」処理ブロックで指定された「ＩＲｅｃｏｒｄ」に対して「データベース操作」処理を実行することにより、複数のデータベース操作を一つの処理で実施可能になり、これまで複数のデータベースそれぞれに「ＳＴＯＲＥ」や「ＵＰＤＡＴＥ」の操作を行っていた手間を省くことが出来、開発者ユーザの手間を省くことが可能となる。
次に、処理未定義ブロックボタン１２０３について説明する。
【０１１０】
処理未定義ブロックボタン１２０３（画面上では「プレーン」と表示）は、具体的な処理の内容は未定義だが、開発者ユーザが後程、処理内容を決定できるようにコメントを記載できる未定義の処理ブロックを配置するためのボタンである。
【０１１１】
図１２の処理ブロック配置エリア１２０６を選んだ状態で、処理未定義ブロックボタン１２０３を押下すると、処理未定義ブロック（以下、「プレーン」ブロックと呼ぶ）を処理ブロック配置エリア１２０６に配置する。なお、通常は１つのロジックには複数の処理ブロックが含まれるため、処理未定義ブロックボタン１２０３が押下されると、複数（例えば４つ）の「プレーン」ブロックを配置するようにしても良い。
【０１１２】
複数の「プレーン」ブロックを配置した例を、図１３を参照して説明する。
【０１１３】
図１３は、本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【０１１４】
図１３の処理ブロック配置エリア１３０１には、複数の「プレーン」ブロックを開発者ユーザが配置した状態である。
【０１１５】
開発者ユーザは「プレーン」ブロックを配置した後、「プレーン」ブロックのコメント入力欄１３０２に後程、処理内容を決定できるような概要コメントを記載する。
【０１１６】
コメント入力欄１３０２にコメントが入力されている例を、図１４を参照して説明する。
【０１１７】
図１４は、本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【０１１８】
図１４の処理ブロック配置エリア１４０１には、コメント入力欄１４０２にコメント「ＰＣテーブルの宣言（本体）」が入力されている。その為、開発者ユーザは処理未定義ブロック１４０５が、ＰＣ本体のテーブルを宣言する処理ブロックであることが容易に分かり、コメントに記載されている処理を実装できるようなパラメータやスクリプトを後程、開発者ユーザが入力するだけで処理ロジックが生成可能になる。
【０１１９】
同様に配置した「プレーン」ブロックのコメント入力欄へ処理の概要を入力した例を、１４０６に示す。
【０１２０】
「プレーン」ブロックを配置した後で開発者ユーザが処理ブロックを指定する場合を図１４及び図１５を参照して説明する。
【０１２１】
図１４の処理未定義ブロック（「プレーン」ブロック）１４０５の処理を指定する場合、１４０３の処理指定ドロップダウンリストを図示しないマウスなどでクリックし、リストアップされる１２０２に記載された処理定義ブロックの名前を選択し、１４０４の確定ボタンを押下する。
【０１２２】
図１４の処理確定ボタン１４０４が押下されると、図１５の１５０１のような画面イメージが表示される。
【０１２３】
図１５及び図１６は、本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。なお、この例では、処理ロジック生成画面はブラウザの１画面で表示できないので、図１５と図１６に分けて表示している。
【０１２４】
図１５の１５０１は、図１４の処理指定ドロップダウンリスト１４０３において、「データ構造宣言」処理が選ばれた際の画面イメージである。
【０１２５】
図１４の処理確定ボタン１４０４が押下された直後は、図１５の１５０１の「ＩＲｅｃｏｒｄの名前」欄、「操作対象のテーブル」欄、「パラメータ」欄は、それぞれ空欄であり、開発者ユーザが入力することにより、処理定義ブロック１５０１の処理を定義する。
【０１２６】
例えば、図１５の１５０１のように、開発者ユーザが「ＩＲｅｃｏｒｄの名前」を「ｔｅｍｐ＿ＲＯＯＴ」に、「操作対象のテーブル」を「ＰＣ」に、「パラメータ」を「ｒｏｏｔ」に指定している。これらの指定により、データ構造は「ＰＣ」データテーブルである「ｔｅｍｐ＿ＲＯＯＴ」と言う名前のデータ構造体を作成し、そのデータ構造体「ｔｅｍｐ＿ＲＯＯＴ」には１５０２で指定した「ｒｏｏｔ」の値（すなわち、入力パラメータ領域のｒｏｏｔグループである「ＰＣ管理番号」と「使用状態」のデータ）としている。
【０１２７】
データ構造宣言処理により生成されるプログラムの雛型プログラムを図２６を参照して説明する。
【０１２８】
図２６は、本発明の実施形態におけるプログラム生成装置１００が有する雛型プログラムの例である。
【０１２９】
図２６の２６０１〜２６０３は、プログラム生成装置１００の外部記憶装置２１１などに記憶されている雛型プログラムの例である。
【０１３０】
２６０１は、データ構造宣言処理の場合の雛型プログラムであり、アンダーラインとイタリックで記載した部分にそれぞれ、図１５の１５０１で示した入力欄の値が反映される。
【０１３１】
雛型プログラム２６０１に図１５の１５０１の値を入力した際に生成されるプログラムを図１７を参照して説明する。
【０１３２】
図１７は、本発明の実施形態におけるプログラム生成装置１００が生成するプログラムの例である。
【０１３３】
図１７の１７０１欄が、雛型プログラム２６０１から１５０１の入力値を使用して生成された結果のプログラムである。
【０１３４】
同様に図１４の１４０６で入力コメント欄に入力されたコメントに沿った処理を、開発者ユーザが１５０１と同様に「ＩＲｅｃｏｒｄの名前」や「操作対象のテーブル」、「パラメータ」欄を指定する。開発者ユーザにより指定された例が図１５の１５０３である。
【０１３５】
この場合も同様に、雛型プログラム２６０１に開発者ユーザにより指定された例１５０３を入力して生成された結果のプログラムが、図１７の１７０２である。
【０１３６】
また、図１４の１４０７において、処理指定ドロップダウンリスト１４１０に「スクリプト」処理が選択された例が図１５の１５０４の例である。
【０１３７】
１５０４では、１５０１、１５０３で定義された複数のデータ構造体（ＩＲｅｃｏｒｄ）を「ｔｅｍｐ＿ＲＯＯＴ」のデータ構造体にまとめるために、ユーザはスクリプト入力欄に「ｔｅｍｐ＿ＲＯＯＴ．ｃｏｐｙＢｙＮａｍｅ（ｔｅｍｐ＿ｇ１）」というスクリプトを入力する。
【０１３８】
スクリプト処理により生成されるプログラムの雛型プログラムの例が図２６の２６０２である。
【０１３９】
２６０２は、スクリプト処理の場合の雛型プログラムであり、アンダーラインとイタリックで記載した部分はそれぞれ、図１５の１５０４に示した入力欄の値が反映される。
【０１４０】
雛型プログラム２６０２に図１５の１５０４の値を入力した際に生成されるプログラムが図１７の１７０３である。
【０１４１】
同様に、図１４の１４０７の「プレーン」ブロックは、図１６の１６０１で表示されたスクリプトを開発者ユーザが入力することによりデータ構造体「ｔｅｍｐ＿ＲＯＯＴ」に各データ構造体「ｔｅｍｐ＿ｇ２」、「ｔｅｍｐ＿ｇ３」をまとめる為のスクリプトを入力する。
【０１４２】
図１４の１４０８では、入力された１２０１のパラメータをそれぞれ、データベースの「ＰＣ」テーブルに登録するため、１４０７でまとめたデータ構造体を「ＰＣ」テーブルに登録する処理を開発者ユーザが記載する。
【０１４３】
１４０８の処理指定ドロップダウンリスト１４１１において、開発者ユーザは「データベース操作」処理を選択する。
【０１４４】
その後、図１６の１６０２の画面に移行し、１６０３に記載のように、開発者ユーザがデータベース操作を行うデータ構造体「ｔｅｍｐ＿ＲＯＯＴ」を指定する。また、実行するデータベース操作として、開発者ユーザが１６０４のように「ＳＴＯＲＥ」操作を指定する。
【０１４５】
データベース操作処理１２２４により生成されるプログラムの雛型プログラムの例が、図２６の２６０３である。
【０１４６】
２６０３は、データベース操作処理１２２４の場合の雛型プログラムであり、アンダーラインとイタリックで記載した部分はそれぞれ、図１６の１６０２に示した入力欄の値が反映される。「実行する操作」欄１６０４のドロップダウンリストには、表記の「ＳＴＯＲＥ」のほかに、「ＩＮＳＥＲＴ」、「ＵＰＤＡＴＥ」、「ＥＲＡＳＥ」、「ＳＴＯＲＥＡＬＬ」、「ＭＯＤＩＦＹ」などがあり、それぞれ生成されるプログラムに、ｓｔｏｒｅ，  ｉｎｓｅｒｔ，  ｕｐｄａｔｅ，  ｅｒａｓｅ，  ｓｔｏｒｅａｌｌ，  ｍｏｄｉｆｙと入力する。
【０１４７】
なお、データベースへの登録に失敗した場合のメッセージとして、「Ｅ０００」と記載されている欄に任意のコメントを入力しておいて、表示させることもできる。
【０１４８】
図１４の１４０９において、データベース登録のメッセージをユーザに伝えるため、処理指定ドロップダウンリスト１４１２で、開発者ユーザが「スクリプト」処理を指定し、図１６のスクリプト入力欄に１６０５のように「登録しました。」と表示させるためのスクリプト「Ｍｓｇ．ｉｎｆｏ（‘登録しました。’）；」と入力する。
【０１４９】
以上のように開発者ユーザが入力することにより、プログラム生成装置１００のＣＰＵ２０１はそれぞれの処理に該当する雛型に入力することにより、図１７のようなスクリプトを生成することが出来る。
【０１５０】
図１２〜図１６の画面イメージの流れを図５のフローチャートに戻って説明する。
【０１５１】
図５のステップＳ５０２において、入力ボタンを受け付けた後、プログラム生成装置１００のＣＰＵ２０１は、受け付けたボタンが、処理ブロックボタン（図１２の１２０２や１２０３）か、処理ブロック移動ボタン（１２０４）か、処理内容表示非表示ボタン（１２０５）かを判断する（ステップＳ５０３）。
【０１５２】
ステップＳ５０３において、受け付けたボタンが処理ブロックボタンの場合は、ステップＳ５０４へと移行する。ステップＳ５０４の処理の詳細を図２４を参照して説明する。
【０１５３】
図２４は、本発明の実施形態におけるプログラム生成装置１００のロジック入力の処理フローを示す図の一例である。なお、図２４のフローチャートはプログラム生成装置１００のＣＰＵ２０１により実行されるものである。
【０１５４】
図２４のフローチャートは、プログラム生成装置１００において、開発者ユーザが図１２〜図１６のような処理ロジック生成画面で、一つの処理ブロックを選択した状態において、新たな処理ブロックを追加するために、図１２の１２０２や１２０３の処理ブロックボタンが押下された際に開始される。
【０１５５】
まず、ステップＳ２４０１において、プログラム生成装置のＣＰＵ２０１は、ユーザにより押下された処理ブロックボタン１２０２や１２０３のボタンが、子ブロックかどうかを判断する。子ブロックとは、図１２の１２０２内の１２２３などの白地に黒文字の処理ブロックを指し、親ブロックとは子ブロックの真上に処理ブロックを指す。
【０１５６】
例えば、１２２２の「データ構造宣言」処理ブロックが親ブロックで、その下にある１２２３の「子データ構造宣言」処理ブロックが子ブロックに該当する。
【０１５７】
なお、ステップＳ２４０１以下のフローは後述するステップＳ５１１〜Ｓ５１４、Ｓ５２１と同様なので、説明を省略する。なお、ステップＳ５１１〜Ｓ５１４、Ｓ５２１の「移動」という言葉は「追加」に、変更して解釈する。
【０１５８】
次に、ステップＳ５０５において、配置した処理ブロックに開発ユーザがコメントを入力する。（図１４の１４０２）
【０１５９】
次に、ステップＳ５０６において、プログラム生成装置１００のＣＰＵ２０１は、ステップＳ５０４で配置された処理ブロックがプレーン処理ブロックかそうでないかを判断する。
【０１６０】
ステップＳ５０６において、配置された処理ブロックがプレーン処理ブロックの場合には、ステップＳ５０７に移行し、プレーン処理ブロックでない場合はステップＳ５０８へと移行する。
【０１６１】
ステップＳ５０７に移行すると、プログラム生成装置１００のＣＰＵ２０１は、処理ブロックの種類を処理指定ドロップダウンリスト（図１４の１４０３や１４１０、１４１１等）によりユーザから受け取り、プレーン処理ブロックから選択された処理ブロックに変更する。
【０１６２】
このステップＳ５０７の処理は、ユーザが任意のタイミングで入力することが可能であり、必ずしも、図５のタイミングで入力する必要はなく、ステップＳ５０７以降よりも先にステップＳ５０２以降を再度繰り返しても良い。ステップＳ５０７以降よりも先にステップＳ５０２以降を再度繰り返す例として、図１３の処理ブロック配置エリア１３０１や、図１４の処理ブロック配置エリア１４０１などのように入力されている例がある。
【０１６３】
次にステップＳ５０８において、プログラム生成装置１００のＣＰＵ２０１は、ステップＳ５０４もしくはステップＳ５０７で指定された処理ブロックがスクリプト処理ブロックかスクリプト処理ブロック以外かを判断する。
【０１６４】
ステップＳ５０４もしくはステップＳ５０７で指定された処理ブロックがスクリプト処理ブロックの場合は、ステップＳ５０９において、プログラム生成装置１００のＣＰＵ２０１は、スクリプト入力欄にスクリプトの入力を受け付ける。（図１５の１５０４、図１６の１６０１、１６０５等）
【０１６５】
一方、ステップＳ５０４もしくはステップＳ５０７で指定された処理ブロックがスクリプト処理ブロックでない場合は、プログラム生成装置１００のＣＰＵ２０１は、ステップＳ５１０において、各処理ブロックのパラメータの入力を受け付ける。なお、ステップＳ５０９のスクリプトの入力は各処理ブロックにおけるスクリプト処理のパラメータとすると、ステップＳ５０８の判断は必要なく、ステップＳ５１０のみの処理となる。
【０１６６】
その後、ステップＳ５２０において、プログラム生成装置１００のＣＰＵ２０１は、全ての処理内容が入力されたかをユーザに確認し、全ての処理内容の入力が完了していれば、このフローを終了し、全ての処理内容が入力されていなければ、ステップＳ５０２へと処理を移行する。
【０１６７】
次にステップＳ５０２において、受け付けた入力ボタンが拡縮ボタン１２０５の場合のフローを説明する。
【０１６８】
ステップＳ５０２において、受け付けた入力ボタンが拡縮ボタン１２０５の場合、ステップＳ５０３において、プログラム生成装置１００のＣＰＵ２０１は、ステップＳ５１５へと移行する。
【０１６９】
ステップＳ５１５において、プログラム生成装置１００のＣＰＵ２０１は、押下されたボタンが、拡張化ボタンか縮小化ボタンかを判断する。図１５及び図１８を参照して、拡縮ボタン押下の前後の画面イメージを説明する。
【０１７０】
図１８は、本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。
【０１７１】
図１５の１５０５のように下向き三角の場合は、既に拡張済みの縮小化ボタンであり、１５０５を押下すると、元は図１５、図１６のような表示イメージだった画面を、図１８の処理ブロック配置エリア１８０１のような、処理ブロックの詳細情報を隠蔽し、コメント部分だけを表示させる処理を行う（ステップＳ５１８）。
【０１７２】
その後、拡縮ボタンを拡張化ボタンに変更し、１８０２のような右向き三角を表示する（ステップＳ５１９）。
【０１７３】
この縮小化ボタンを活用することで、ソースプログラムを作成している途中で全体の構成の把握を容易にすることが出来る。そのため、開発者ユーザは誤った構成やソースプログラムを作成する前に間違いに気付くことができ、ソースプログラム作成の支援が可能となる。更には、処理ブロックが定義されている、されていないに関わらず、全体の構成がわかるため、処理ロジックに未定義の処理ブロックが含まれていたとしても、修正の要否を早期に確認可能となる。従って、開発者ユーザは開発している途中で、都度このツールを使うことにより、手戻りが少なくなり開発コストの大幅な削減が見込まれる。
【０１７４】
一方、一度縮小化されて、処理ブロックの内容を隠蔽してしまっている１８０１のような場合は、拡縮ボタン１８０２のいずれかのボタンが押下されると（ステップＳ５１５）、右向き三角の処理ブロック内の隠蔽されている処理ブロックの詳細情報（パラメータやスクリプトなど）を表示する（ステップＳ５１６）。
【０１７５】
図１８の拡縮ボタン１８０３が押下されると、処理ブロック配置エリア１８０１にあるように、全体の処理ブロックが拡張化されるので、図１５及び図１６のような結果が表示される。
【０１７６】
その後、拡縮ボタンを縮小化ボタンに変更し、１５０５のような下向き三角を表示する（ステップＳ５１７）。
【０１７７】
一方、拡縮ボタン１５０６などのように一つの処理ブロックの縮小化ボタンが押下された場合は、縮小化ボタンの押された処理ブロックに含まれる子ブロックを特定する。
【０１７８】
そして、押された処理ブロックと特定した子ブロックのコメントのみを表示し、押された処理ブロックと特定した子ブロックの詳細情報を隠蔽する。
【０１７９】
さらに、図１８のように全ての処理ブロックが縮小表示されている状況で、拡縮ボタン１８０４が押下されると、１８０４で押下された処理ブロックのみを拡大表示して、１５０１の処理ブロックのように拡大表示させる。
【０１８０】
この処理ブロック毎の拡縮ボタンを活用することで、ソースプログラムを作成している途中で処理ブロックの一部の構成の把握を容易にすることが出来る。そのため、開発者ユーザは一定の開発単位ごとに、誤った構成やソースプログラムを作成する前に間違いに気付くことができる。
【０１８１】
拡縮ボタン押下後は、ステップＳ５２０へと移行し、全ての処理内容が入力されていなければ、ステップＳ５０２へと移行する。
【０１８２】
次にステップＳ５０２において、受け付けた入力ボタンが処理ブロック移動ボタン１２０４（処理定義図形オブジェクト位置移動）の場合のフローを説明する。
【０１８３】
ステップＳ５０２において、受け付けた入力ボタンが上下の処理ブロック移動ボタン１２０４の場合、ステップＳ５０３において、プログラム生成装置１００のＣＰＵ２０１は、ステップＳ５１１の処理へと移行する。
【０１８４】
ステップＳ５１１の処理に移行すると、プログラム生成装置１００のＣＰＵ２０１は、移動対象の処理ブロックが子ブロックかどうかの判断をする。なお、移動対象の処理ブロックは事前にユーザによる図示しないマウスなどで指定されているとする。
【０１８５】
ステップＳ５１１において、移動対象ブロックが子ブロックである場合は、ステップＳ５１３の処理へと移行し、移動対象ブロックが子ブロックでない場合はステップＳ５１２の処理へと移行する。すなわち、移動対象ブロックが上もしくは下のブロックへ移動可能かどうかの判断を実行する。図１９、図２０を参照して処理ブロックの移動について説明する。
【０１８６】
図１９及び図２０は、本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。なお、図１９、図２０では、処理ブロックの詳細情報（パラメータやスクリプト等）は隠蔽した状態で説明する。
【０１８７】
ステップＳ５１３の処理へと移行すると、移動対象ブロックである子ブロックが移動先の処理ブロックに含まれることができるかどうかを判断する。子ブロックが移動先の処理ブロックに含まれることができる場合、例えば、図１９の１９０２の「データ構造宣言」処理ブロックの内部に、１９０１の「子データ構造宣言」処理ブロックが配置されており、ユーザが下の「データ構造宣言」処理ブロック１９０３に「子データ構造宣言」処理ブロック１９０１を移動させたい場合は、１９０１をユーザが選択後、１２０４の「下へ」ボタンを押下する。
【０１８８】
１２０４の「下へ」ボタンが押下されると、１９０１の「子データ構造宣言」処理ブロックが２００１の「子データ構造宣言」処理ブロックへと移動し、「子データ構造宣言」されるデータ構造が１９０２から１９０３へと移行する（ステップＳ５１４）。
【０１８９】
なお、図２０の「子データ構造宣言」処理ブロック２００１の子ブロックを更に下に移動させようとすると、２００１より下に「子データ構造宣言」処理ブロックを受け付ける「データ構造宣言」処理ブロックが存在しない為、ステップＳ５１３のＮＯの処理に移行し、何もせずステップＳ５２０の処理へ移行する。
【０１９０】
なお、子ブロックであっても、移動できない場合には移動させない。例えば、子ブロックが「条件（ＥＬＳE  ＩＦ）」処理ブロックの場合、移動先の親ブロックが「条件分岐」処理ブロックの場合であっても、元の「条件分岐」処理ブロックと分岐条件が変わることになるので、移動させないものと判定する。つまり、親ブロック−子ブロックとの関係を判定するだけでなく、分岐条件をも加味して移動の要否を判定しているのである。
【０１９１】
一方、ステップＳ５１１において、移動対象の処理ブロックが子ブロックではない場合のステップＳ５１２の処理について、図２１、図２２を参照して説明する。
【０１９２】
図２１〜図２３は、本発明のプログラム生成装置１００における処理ロジックを生成する処理ロジック生成画面の模式図である。なお、図２１〜図２３では、処理ブロックの詳細情報（パラメータやスクリプト等）は隠蔽した状態で説明する。
【０１９３】
図２１〜図２３は、２１０１の「データベース操作」処理をユーザが移動させる場合の例である。
【０１９４】
図２１の「データベース操作」処理ブロック２１０１を「データ構造宣言」処理ブロック２１０２の下、すなわちデータ構造宣言処理の後で実行したい場合、まずユーザは２１０１を図示しないマウスなどで指定する。
【０１９５】
２１０１が指定された状態で１２０４の「下へ」ボタンを押下すると、「データベース操作」処理ブロック２１０１は図２２の２２０１の位置に移動し、「データ構造宣言」処理ブロックの子ブロックにはならない。
【０１９６】
一方、図２２の２２０１の位置の「データベース操作」処理ブロックを指定した状態で更に、下へボタンを押下すると、「データベース操作」処理ブロック２２０１は次の条件分岐の子ブロックとなり、図２３の２３０１の位置に移動する。これは、条件分岐が制御処理であり、条件分岐の制御により実行する場合としない場合が存在するためである。
【０１９７】
図２１〜図２３の画面イメージの流れを図５のフローチャートに戻って説明する。
【０１９８】
図５のステップＳ５１１において、移動対象の処理ブロックが子ブロックではないと判断される場合、ステップＳ５１２において、プログラム生成装置１００のＣＰＵ２０１は、移動先の受け入れ処理ブロックが制御処理ブロックかどうかを判断する。
【０１９９】
ステップＳ５１２において、移動先の受け入れ処理ブロックが制御処理ブロックであった場合は、ステップＳ５１４へと移行し、制御処理ブロックの子ブロックとして移動先に移動する（図２２の２２０１からず２３の２３０１への移動）。
【０２００】
一方、ステップＳ５１２において、移動先の受け入れ処理ブロックが制御処理ブロックではない場合は、ステップＳ５２１へと移行し、処理ブロック配置エリア（２２０３のエリア）の次の位置に移動させる。すなわち、移動先の処理ブロックの子ブロックにはならない（図２１の２１０１から図２２の２２０１への移動）。
【０２０１】
上記のように、本発明の処理ブロックの移動機能により、処理ブロックを上下のボタンで容易に移動可能であるが、処理ブロックを移動させると誤りになる場合には、処理ブロックの移動を制限することにより、ソースプログラムの作成ミスを防ぐことができる。
【０２０２】
また、他の例としては、例えば「データ構造宣言」処理ブロックの配置より前に、「データベース操作」処理ブロックや「データ編集」処理ブロックを配置できなくしたり、これらの処理ブロックを処理指定ドロップダウンリストで指定する際に警告を出す、もしくはパラメータを指定する際に「ＩＲｅｃｏｒｄの名前」が宣言されていないと、警告を出すなどの方法で、ソースプログラムの作成ミスを防ぐことが出来る。
【０２０３】
以上説明したように、本発明によれば、プログラムの設計情報としての全体の構成を考える開発者が各処理ブロックでの概要を記載し、各処理ブロックに関しては、開発ツールやプログラム言語を使える開発者が入力するという分業が可能になり、効率的なプログラム生成が可能になる等の効果を奏する。
【０２０４】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０２０５】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２０６】
以下、図２５に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なプログラムの構成について説明する。
【０２０７】
図２５は、本発明に係る情報処理装置で読み取り可能なプログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０２０８】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２０９】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２１０】
本実施形態における図４、図５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２１１】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２１２】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０２１３】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０２１４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２１５】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２１６】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２１７】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２１８】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０２１９】
１００  プログラム生成装置
３０１  処理未定義図形オブジェクト提供部
３０２  コメント付加部
３０３  処理定義変更部
３０４  ソースプログラム生成部
３０５  処理定義図形オブジェクト提供部
３０６  パラメータ入力部
３０７  プログラム構成生成部
【図１】
0005447621.tif 000002
【図２】
0005447621.tif 000003
【図３】
0005447621.tif 000004
【図４】
0005447621.tif 000005
【図５】
0005447621.tif 000006
【図６】
0005447621.tif 000007
【図７】
0005447621.tif 000008
【図８】
0005447621.tif 000009
【図９】
0005447621.tif 000010
【図１０】
0005447621.tif 000011
【図１１】
0005447621.tif 000012
【図１２】
0005447621.tif 000013
【図１３】
0005447621.tif 000014
【図１４】
0005447621.tif 000015
【図１５】
0005447621.tif 000016
【図１６】
0005447621.tif 000017
【図１７】
0005447621.tif 000018
【図１８】
0005447621.tif 000019
【図１９】
0005447621.tif 000020
【図２０】
0005447621.tif 000021
【図２１】
0005447621.tif 000022
【図２２】
0005447621.tif 000023
【図２３】
0005447621.tif 000024
【図２４】
0005447621.tif 000025
【図２５】
0005447621.tif 000026
【図２６】
0005447621.tif 000027