(57)【要約】【課題】  Ｗｅｂアプリケーションのソースを作成する装置を提供する。【解決手段】  ソースプログラムを含むソースを作成するソース作成装置であって、画面項目の情報が格納された機能構成情報部と、画面操作により発生するイベントの処理情報が格納されたイベント情報部と、テンプレートとなるソースが格納されたテンプレートソース情報部と、前記テンプレートソース情報部に格納されたソースへ、前記機能構成情報部に格納された画面項目の情報を適用して、基本ソースを作成し、作成された基本ソースへ、前記イベント情報部に格納されたイベントの処理情報を適用して、ソースを作成するソース作成処理部と、を備える。【選択図】  図１
2019169002.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムを含むソースを作成するソース作成装置であって、
画面項目の情報が格納された機能構成情報部と、
画面操作により発生するイベントの処理情報が格納されたイベント情報部と、
テンプレートとなるソースが格納されたテンプレートソース情報部と、
前記テンプレートソース情報部に格納されたソースへ、前記機能構成情報部に格納された画面項目の情報を適用して、基本ソースを作成し、作成された基本ソースへ、前記イベント情報部に格納されたイベントの処理情報を適用して、ソースを作成するソース作成処理部と、
を備えたことを特徴とするソース作成装置。
【請求項２】
請求項１に記載のソース作成装置であって、
前記機能構成情報部は、
２以上の機能名と、前記テンプレートソース情報部に格納された１つのソースとが対応付けられた機能情報と、がさらに格納され、
前記ソース作成処理部は、
機能名が指定されると、指定された機能名に対応付けられたソースを前記テンプレートソース情報部の中で特定し、特定されたソースへ、前記機能構成情報部に格納された画面項目の情報を適用して、基本ソースを作成すること
を特徴とするソース作成装置。
【請求項３】
請求項１に記載のソース作成装置であって、
前記イベント情報部は、
前記ソースプログラムの複数のプログラム言語に応じたイベントの処理情報が格納され、
前記テンプレートソース情報部は、
前記ソースプログラムの複数のプログラム言語に応じたソースが格納され、
前記ソース作成処理部は、
プログラム言語が指定されると、指定されたプログラム言語に対応するソースを前記テンプレートソース情報部の中から特定し、指定されたプログラム言語に対応するイベントの処理情報を前記イベント情報部の中から特定し、特定されたソースへ、前記機能構成情報部に格納された画面項目の情報を適用して、基本ソースを作成し、作成された基本ソースへ、特定されたイベントの処理情報を適用して、ソースを作成すること
を特徴とするソース作成装置。
【請求項４】
請求項３に記載のソース作成装置であって、
前記ソースは、多層の処理の層ごとのソースであり、
層ごとのソースは、層ごとのソースプログラムを含み、
イベント情報部は、
前記ソースプログラムの層ごとの複数のプログラム言語に応じたイベントの処理情報が格納され、
前記テンプレートソース情報部は、
前記ソースプログラムの層ごとの複数のプログラム言語に応じたソースが格納され、
前記ソース作成処理部は、
層ごとのプログラム言語が指定されると、指定されたプログラム言語に対応するソースを前記テンプレートソース情報部の中から層ごとに特定し、指定されたプログラム言語に対応するイベントの処理情報を前記イベント情報部の中から層ごとに特定し、層ごとに特定されたソースへ、前記機能構成情報部に格納された画面項目の情報を適用して、層ごとの基本ソースを作成し、層ごとに作成された基本ソースへ、層ごとに特定されたイベントの処理情報を適用して、層ごとのソースを作成すること
を特徴とするソース作成装置。
【請求項５】
請求項４に記載のソース作成装置であって、
前記テンプレートソース情報部は、
さらに変更情報を含む命令文と宣言文を有するソースが格納され、
前記ソース作成処理部は、
層ごとに特定されたソースの命令文と宣言文に含まれる変更情報にしたがって、前記機能構成情報部に格納された情報を、層ごとに特定されたソースに埋め込むことにより、層ごとの基本ソースを作成すること
を特徴とするソース作成装置。
【請求項６】
請求項５に記載のソース作成装置であって、
前記ソースは、端末におけるプレゼンテーション層のソース、およびＷｅｂアプリケーションサーバにおけるアプリケーション層のソースとデータアクセス層のソースであること
を特徴とするソース作成装置。
【請求項７】
請求項６に記載のソース作成装置であって、
前記機能構成情報部は、
問合せ情報あるいはクエリ情報がさらに格納され、
前記ソース作成処理部は、
プレゼンテーション層、アプリケーション層、およびデータアクセス層それぞれのプログラム言語が指定されると、指定されたプログラム言語に対応するソースを前記テンプレートソース情報部の中から層ごとに特定し、指定されたプログラム言語に対応するイベントの処理情報を前記イベント情報部の中から層ごとに特定し、
プレゼンテーション層として特定されたソースの命令文と宣言文に含まれる変更情報にしがたって、前記機能構成情報部に格納された情報を、プレゼンテーション層として特定されたソースに埋め込み、前記機能構成情報部に格納された情報に基づいて、画面レイアウト情報を作成することにより、プレゼンテーション層の基本ソースを作成し、
アプリケーション層として特定されたソースの命令文と宣言文に含まれる変更情報にしがたって、前記機能構成情報部に格納された情報を、アプリケーション層として特定されたソースに埋め込み、前記イベント情報部に格納された情報と前記機能構成情報部に格納された情報に基づいて、他の層とのインターフェース用のプロパティを作成することにより、アプリケーション層の基本ソースを作成し、
データアクセス層として特定されたソースの命令文と宣言文に含まれる変更情報にしがたって、前記機能構成情報部に格納された情報を、データアクセス層として特定されたソースに埋め込み、前記機能構成情報部に格納された問合せ情報に基づいてクエリ情報を作成する、あるいは前記機能構成情報部に格納されたクエリ情報を使用することにより、データアクセス層の基本ソースを作成し、
プレゼンテーション層、アプリケーション層、およびデータアクセス層ごとに作成された基本ソースへ、プレゼンテーション層、アプリケーション層、およびデータアクセス層ごとに特定されたイベントの処理情報を適用して、プレゼンテーション層、アプリケーション層、およびデータアクセス層ごとのソースを作成すること
を特徴とするソース作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソース作成装置に関するものである。
【背景技術】
【０００２】
ソフトウェア開発では、低コスト化や納期の短縮化など、ソースプログラムを含むソースの生産性の向上が望まれている。また、Ｗｅｂアプリケーションのように、端末とサーバに処理が多層化され、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）をともなうアプリケーションが普及してきており、このようなアプリケーションのソースの生産性の向上は重要である。
【０００３】
ソースの生産性を向上させるために、ソースを自動生成するシステムも提案されており、例えば特許文献１には、第１雛形と対応付けられているソースコード生成規則を記憶する自動生成規則記憶部と、第１設計書及びソース雛形に基づいて、スケルトンクラスソースファイルを生成し、第２の設計書及びソースコード生成規則に基づいて、部品クラスソースファイルを生成するソースファイル生成部とを備える構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４１３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された構成を用いれば、ソース（ソースコード）の自動生成は可能になる。しかしながら、特許文献１には、Ｗｅｂアプリケーションのソースを自動生成するための十分な構成の開示は見当たらない。
【０００６】
本発明の目的は、Ｗｅｂアプリケーションのソースを作成する装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る代表的なソース作成装置は、ソースプログラムを含むソースを作成するソース作成装置であって、画面項目の情報が格納された機能構成情報部と、画面操作により発生するイベントの処理情報が格納されたイベント情報部と、テンプレートとなるソースが格納されたテンプレートソース情報部と、前記テンプレートソース情報部に格納されたソースへ、前記機能構成情報部に格納された画面項目の情報を適用して、基本ソースを作成し、作成された基本ソースへ、前記イベント情報部に格納されたイベントの処理情報を適用して、ソースを作成するソース作成処理部と、を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、Ｗｅｂアプリケーションのソースを作成する装置を提供することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】ソース作成装置の例を示す図である。
【図２】各層の例を示す図である。
【図３】層間の情報の流れの例を示す図である。
【図４Ａ】画面項目情報の例を示す図である。
【図４Ｂ】画面情報の例を示す図である。
【図４Ｃ】機能情報の例を示す図である。
【図４Ｄ】問合せの例を示す図である。
【図４Ｅ】クエリ情報の例を示す図である。
【図５Ａ】イベント定義情報の例を示す図である。
【図５Ｂ】画面イベントパターン情報の例を示す図である。
【図５Ｃ】機能イベントパターン情報の例を示す図である。
【図６】テンプレートソース情報の例を示す図である。
【図７】ソース作成処理の例を示す図である。
【図８Ａ】プレゼンテーション層基本ソース作成処理の例を示す図である。
【図８Ｂ】アプリケーション層基本ソース作成処理の例を示す図である。
【図８Ｃ】データアクセス層基本ソース作成処理の例を示す図である。
【図９】ソースイベント処理作成処理の例を示す図である。
【図１０】データアクセス層制御部品提供処理の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて、本発明を実施するための好ましい形態を実施例として説明する。
図１は、ソース作成装置１００の例を示す図である。ソース作成装置１００は、例えば一般的な計算機であってもよく、プロセッサ１８０と記憶装置１７０を備える。プロセッサ１８０は記憶装置１７０に格納されたプログラムを実行し、記憶装置１７０に格納されたデータを処理する。
【００１１】
ソース作成装置１００は、プロセッサ１８０と記憶装置１７０以外に、図示を省略したネットワークとのインターフェースあるいはユーザインターフェースとなる入出力装置を備えてもよい。また、ソース作成装置１００は、ネットワークで相互に接続された複数の計算機から構成されてもよい。
【００１２】
記憶装置１７０は、メモリ、ハードディスクドライブ、あるいはフラッシュメモリなどの記憶装置であり、これらの組合せであってもよい。機能構成情報部１１０は、データ（情報）であり、画面項目情報１１１、画面情報１１２、機能情報１１３、および問合せ情報１１４の各データから構成される。機能構成情報部１１０に関しては、図４Ａ〜４Ｅを用いて後でさらに説明する。
【００１３】
イベント情報部１２０は、データであり、機能イベントパターン情報１２１、画面イベントパターン情報１２２、およびイベント定義情報１２３の各データから構成される。イベント情報部１２０に関しては、図５Ａ〜５Ｃを用いて後でさらに説明する。
【００１４】
テンプレートソース情報部１３０は、データであり、１または複数のテンプレートソース情報１３１のデータを含む。テンプレートソース情報部１３０に関しては、図６を用いて後で説明する。
【００１５】
ソース作成処理部１４０ａは、プロセッサ１８０により実行されるプログラムであり、基本ソース作成部１４１ａとソースイベント処理作成部１４２ａの各プログラムから構成される。
【００１６】
ソース作成処理部１４０ａに関しては、図７と図９を用いて後でさらに説明するが、基本ソース作成部１４１ａとソースイベント処理作成部１４２ａのそれぞれが、基本ソース作成部１４１ｂ〜１４１ｄとソースイベント処理作成部１４２ｂ〜１４２ｄのそれぞれを呼び出す。
【００１７】
プレゼンテーション層ソース作成処理部１４０ｂ、アプリケーション層ソース作成処理部１４０ｃ、およびデータアクセス層ソース作成処理部１４０ｄのそれぞれは、プロセッサ１８０により実行されるプログラムであり、基本ソース作成部１４１ｂ〜１４１ｄおよびソースイベント処理作成部１４２ｂ〜１４２ｄそれぞれのいずれかのプログラムを含む。これらのプログラムに関しては、図８Ａ〜８Ｃを用いて後でさらに説明する。
【００１８】
データアクセス層制御部品提供部１５０は、プロセッサ１８０により実行されるプログラムであり、図１０を用いて後で説明する。
【００１９】
なお、記憶装置１７０に格納されたプログラム、例えばソース作成処理部１４０ａというプログラムを実行するプロセッサ１８０は、ソース作成処理部１４０ａという物すなわち回路とみなされてもよい。
【００２０】
また、記憶装置１７０に格納されたデータ、例えば機能構成情報部１１０というデータは、そのデータが読み書きされるプログラムを含むオブジェクトであってもよい。そして、機能構成情報部１１０を読み書きするプロセッサ１８０と、読み書きされるデータをまとめて機能構成情報部１１０という物すなわち回路とみなされてもよい。
【００２１】
このため、ソース作成装置１００は、３つの情報部、４つの処理部、および１つの提供部という物を備えた装置とみなされてもよい。
【００２２】
このようなソース作成処理部１４０ａは、プレゼンテーション層ソース作成処理部１４０ｂ、アプリケーション層ソース作成処理部１４０ｃ、データアクセス層ソース作成処理部１４０ｄ、およびデータアクセス層制御部品提供部１５０を利用して、機能構成情報部１１０、イベント情報部１２０、およびテンプレートソース情報部１３０のデータを処理し、各層のソース１６０を出力する。
【００２３】
各層のソース１６０は、プレゼンテーション層ソースファイル１６１、アプリケーション層ソースファイル１６２、データアクセス層ソースファイル１６３、およびデータアクセス制御部品ファイル１６４から構成され、これらのファイルに関して、図２を用いて次に説明する。
【００２４】
図２は、各層の例を示す図である。図２に示したシステムは、Ｗｅｂアプリケーションの例であり、ユーザ２５０が端末２１４（ブラウザ）を操作すると、端末２１４とネットワークで接続されたサーバ２２３（Ｗｅｂアプリケーションサーバ）が端末２１４と情報をやり取りし、サーバ２２３と接続されたＤＢサーバ２４２のＤＢ２４１にアクセスする。
【００２５】
このようなＷｅｂアプリケーションは、多層アプリケーションであり、端末２１４にプレゼンテーション層２１０、サーバ２２３にアプリケーション層２２０とデータアクセス層２３０、ＤＢサーバ２４２にＤＢ層が構成される。ただし、層は、これらの４層に限定されるものではなく、３層以下であってもよいし、５層以上であってもよい。
【００２６】
図２に示した各層のプログラムは互いに連携するものの、処理が分担される等により処理内容そのものは異なるとともに、各処理に適したプログラム言語でソースプログラムが作成されることが一般的であり、プログラム言語も異なる。
【００２７】
プレゼンテーション層２１０のソースプログラムは「言語Ａ」で作成される。「言語Ａ」は例えばＪａｖａＳｃｒｉｐｔ（登録商標）などである。アプリケーション層２２０のソースプログラムは「言語Ｂ」で作成される。「言語Ｂ」は例えばＣ＃などである。
【００２８】
データアクセス層２３０のソースプログラムは「言語Ｃ」で作成される。「言語Ｃ」は例えばＳＱＬなどである。さらに、ＤＢ層２４０のソースプログラムは「言語Ｄ」で作成されるというように、層ごとにソースプログラムの言語が異なる場合が多い。
【００２９】
また、ソースプログラムの生産性を別にすれば、データアクセス層２３０のソースプログラムを「言語Ｂ」で作成するなど、層とプログラム言語との組合せにバリエーションのある可能性もある。
【００３０】
プレゼンテーション層２１０は、静的ページ２１１、動的ページ２１２、およびスクリプト言語２１３を含み、これらは図１に示したプレゼンテーション層ソースファイル１６１が基となったオブジェクト（コード）である。
【００３１】
ただし、端末２１４においてインタープリタで処理される場合、オブジェクトはソースそのものであってもよいし、オブジェクトは中間言語のコードであってもよい。また、プレゼンテーション層２１０は、他のオブジェクトを含んでもよい。
【００３２】
アプリケーション層２２０は、サービスクラス２２１と部品クラス２２２を含む。サービスクラス２２１が、アプリケーション層ソースファイル１６２が基となったオブジェクトである。ただし、アプリケーション層２２０も、他のオブジェクトを含んでもよい。
【００３３】
データアクセス層２３０は、データアクセス制御クラス２３１、エンティティクラス２３２、およびクエリファイル２３３を含む。データアクセス制御クラス２３１の一部およびクエリファイルの一部が、データアクセス層ソースファイル１６３およびデータアクセス制御部品ファイル１６４が基となったオブジェクトである。以上の複数の層間での情報の流れに関して、図３を用いて次に説明する。
【００３４】
図３は、層間の情報の流れの例を示す図である。図２を用いて説明したものは、同じ符号を付けて説明を省略する。ユーザ２５０の操作などによりイベントが発生すると、発生時のページがイベント発生元ページ３１１となる。イベント発生元ページ３１１は、静的ページ２１１または動的ページ２１２である。
【００３５】
イベントに基づいて発生元画面項目情報他３２１が、プレゼンテーション層２１０からアプリケーション層２２０へ送られ、サービスクラス２２１で処理されて、遷移元画面データ３３１となる。遷移元画面データ３３１は、発生元画面項目情報他３４１としてアプリケーション層２２０からデータアクセス層２３０へ送られるとともに、遷移先画面項目データ３３２へ変換される。
【００３６】
データアクセス層制御部品３５２とイベントクエリ３５１は、図２に示したデータアクセス制御クラス２３１とクエリファイル２３３のそれぞれ一部である。データアクセス層制御部品３５２は、発生元画面項目情報他３４１とイベントクエリ３５１の情報に基づき、制御用部品群３５３を介して、ＤＢ２４１へアクセスし、ＤＢ２４１から得られた情報を基にして、発生先画面項目情報他３４２をアプリケーション層２２０へ送る。
【００３７】
ここで、エンティティクラス２３２と制御用部品群３５３は、ソース作成装置１００とは関係なく作成されたデータとオブジェクトであり、サーバ２２３へ予め格納されていてもよい。
【００３８】
発生先画面項目情報他３４２は、サービスクラス２２１で処理されて、遷移先画面項目データ３３２へ加えられる。遷移先画面項目データ３３２は、発生先画面項目情報他３２２としてアプリケーション層２２０からプレゼンテーション層２１０へ送られ、イベント発生先ページ３１２となり、ユーザ２５０へ表示される。
【００３９】
以上で説明した他に、例えばアプリケーション層２２０における部品クラス２２２などの各層における個別処理または専用処理が含まれてもよい。図２と図３では、ソース作成装置１００が作成する各層のソース１６０との関係を主に説明したが、Ｗｅｂアプリケーションにおけるオブジェクト（コード）の動作は、一般的なものと同じであるので、詳しい説明は省略する。
【００４０】
図４Ａは、画面項目情報１１１の例を示す図である。画面項目情報１１１は、図４Ａに示すように、多くの項目と情報（データ）を含むが、各項目は静的属性情報４１１と動的属性情報４１２に分けられる。
【００４１】
静的属性情報４１１は、ソース作成処理部１４０ａが各層のソース１６０の作成開始前に設定される情報である。ソース作成処理部１４０ａは、静的属性情報４１１に設定された情報を、各層のソース１６０のソースファイル、例えばソースプログラムあるいはソースプログラムが読み出すデータ領域に組み込む。
【００４２】
動的属性情報４１２は、ユーザ２５０の操作によりイベント発生元ページ３１１で入力される情報である。ソース作成処理部１４０ａは、動的属性情報４１２に設定された項目を変数として定義し、各層のソース１６０のソースファイルに組み込む。
【００４３】
例えば、問合せ情報１１４から作成されるクエリ情報が、動的な情報であり、条件分岐または繰り返しなどの制御文を含む場合、動的属性情報４１２に設定された項目から定義された変数は、制御文に組み込まれてもよい。なお、制御文には、静的属性情報４１１に設定された情報が組み込まれてもよい。
【００４４】
図４Ｂは画面情報１１２の例を示す図であり、図４Ｃは機能情報１１３の例を示す図である。図４Ｃに示した例では、「機能名」が「ユーザメンテナンス」と「カードメンテナンス」の両方に対し、「テンプレートソース」として１つの「テンプレートソースその１」が対応付けられている。
【００４５】
このように、機能名が異なる場合であっても、画面の項目情報が異なるだけであり、画面の構造または遷移などが同じ場合は、同じテンプレートソースを使用できるため、２以上の機能名に１つのテンプレートソースが対応付けられてもよい。
【００４６】
図４Ｄは問合せ情報１１４の例を示す図である。問合せ情報１１４の「クエリ名」はクエリ情報を指し示す情報であり、図４Ｄの例では「Ｑ００１」であって、「Ｑ００１」のクエリ情報４２１の例を図４Ｅに示す。
【００４７】
図４Ｅに示したクエリ情報４２１は、ＳＱＬで書かれたクエリ情報の例である。クエリ情報４２１はＳＱＬ以外の言語であってもよく、同じ内容の情報となるクエリ情報が複数の異なる言語で作成されてもよい。
【００４８】
クエリ情報は、内容ごとおよび言語ごとのテンプレートが予め設定され、指定された内容および言語にしたがってテンプレートが選択され、静的属性情報４１１または動的属性情報４１２に応じて変更されることにより、作成されてもよい。
【００４９】
なお、図４Ｂ〜４Ｄに示した画面情報１１２、機能情報１１３、および問合せ情報１１４も、静的属性情報と動的属性情報を含んでもよい。
【００５０】
図５Ａは、イベント定義情報１２３の例を示す図である。イベント定義情報１２３は、イベントの処理自体を定義する情報であり、図５Ａに示すようにイベントごとに各層の処理が定義されている。イベントにはサブイベントが定義されてもよく、複数のイベントにて同じ処理がある場合は、共通のサブイベントで処理が定義されてもよく、複数の層で同じ処理がある場合も、共通のサブイベントで処理が定義されてもよい。
【００５１】
イベントとサブイベントの処理の記述では、条件分岐または繰り返しなどの制御文、実際に処理を行う命令文、およびその他のイベント処理を読み出す参照指示文の３種類の行から構成される。命令文と参照指示文は、機能構成情報部１１０で定義された属性情報を変数として含んでもよい。また、制御文は、機能構成情報部１１０で定義された静的属性情報が使用されてもよい。
【００５２】
また、イベントとサブイベントの処理は、プログラム言語ごとに記述されてもよい。例えば図２を用いて説明したようにデータアクセス層のソースプログラムが「言語Ｂ」あるいは「言語Ｃ」で記述される場合、イベントのデータアクセス層には「言語Ｂ」による処理の記述と「言語Ｃ」による処理の記述が選択可能に並んでもよい。
【００５３】
図５Ｂは、画面イベントパターン情報１２２の例を示す図である。画面イベントパターン情報１２２は、画面単位でイベント情報がパターン化され、データベース化された情報を含む。また、図５Ｃは、機能イベントパターン情報１２１の例を示す図である。機能イベントパターン情報１２１は、機能単位でイベント情報がパターン化され、データベース化された情報を含む。
【００５４】
図６は、テンプレートソース情報１３１の例を示す図である。テンプレートソース情報１３１は、各層のソースを作成する際のベースとなるソースが定義される。このため、図６ではアプリケーション層２２０の情報の例を示したが、他にプレゼンテーション層２１０とデータアクセス層２３０の情報を含む。
【００５５】
テンプレートソース情報１３１で定義されるソース（プログラム）は、条件分岐または繰り返しなどの制御文、実際に処理を行う命令文、あるいはクラスまたはプロパティ、さらにメソッドを定義する宣言文などを含んでもよい。これらの各文は、機能構成情報部１１０で定義された属性情報を変数として含んでもよく、特に、制御文は、機能構成情報部１１０で定義された静的属性情報が使用されてもよい。
【００５６】
また、テンプレートソース情報１３１で定義されるソースは、プログラム言語ごとに記述されてもよい。例えば図２を用いて説明したようにデータアクセス層のソースプログラムが「言語Ｂ」あるいは「言語Ｃ」で記述される場合、データアクセス層のテンプレートソースは、「言語Ｂ」による処理の記述のテンプレートソースと「言語Ｃ」による処理の記述のテンプレートソースとを含み、選択されてもよい。
【００５７】
図７は、ソース作成処理の例を示す図である。このソース作成処理は、プロセッサ１８０がソース作成処理部１４０ａのプログラムを実行した処理であってもよい。特に、ステップ７０１〜７０３は基本ソース作成部１４１ａであり、ステップ７０４はソースイベント処理作成部１４２ａである。このため、ソース作成処理部１４０ａなどの各部を主語とする説明は、プロセッサ１８０を主語とする説明に置き換えられてもよい。
【００５８】
まず、作成対象となるソースの情報が設定されている。設定される情報として、機能名の情報が含まれてもよく、層ごとのソースプログラムの言語の種類の情報が含まれてもよい。これらの情報の設定は、図示を省略したテーブルに設定されてもよいし、ユーザインターフェースを介して設定されてもよい。
【００５９】
そして、こられの設定された情報にしたがって、ソース作成処理部１４０ａ（基本ソース作成部１４１ａ）は、テンプレートソースあるいはイベント（サブイベント）の処理を特定し、以下の処理で使用する。
【００６０】
ステップ７０１で、ソース作成処理部１４０ａは、プレゼンテーション層２１０の基本ソースを作成する。この作成のため、プレゼンテーション層ソース作成処理部１４０ｂ（基本ソース作成部１４１ｂ）が呼び出されるが、これに関しては、図８Ａを用いて後で説明する。ここで、基本ソースは、イベント処理が組み込まれていないソースである。
【００６１】
ステップ７０２で、ソース作成処理部１４０ａは、アプリケーション層２２０の基本ソースを作成する。この作成のため、アプリケーション層ソース作成処理部１４０ｃ（基本ソース作成部１４１ｃ）が呼び出されるが、これに関しては、図８Ｂを用いて後で説明する。
【００６２】
ステップ７０３で、ソース作成処理部１４０ａは、データアクセス層２３０の基本ソースを作成する。この作成のため、データアクセス層ソース作成処理部１４０ｄ（基本ソース作成部１４１ｄ）が呼び出されるが、これに関しては、図８Ｃを用いて後で説明する。
【００６３】
各層の基本ソースの作成が終了すると、ステップ７０４で、ソース作成処理部１４０ａ（ソースイベント処理作成部１４２ａ）は、各層の基本ソースへイベントに関するソースを組み込む。これに関しては、図９を用いて後で説明する。
【００６４】
最後に、ステップ７０５で、ソース作成処理部１４０ａは、データアクセス層制御部品の提供処理を行う。この提供のため、データアクセス層制御部品提供部１５０が呼び出されるが、これに関しては、図１０を用いて後で説明する。以上の処理により、各層のソース１６０は作成される。
【００６５】
図８Ａは、プレゼンテーション層基本ソース作成処理の例を示す図である。ステップ８０１で、プレゼンテーション層ソース作成処理部１４０ｂ（基本ソース作成部１４１ｂ）は、機能構成情報部１１０の機能情報１１３、画面情報１１２、および画面項目情報１１１を読み込む。
【００６６】
ステップ８０２で、プレゼンテーション層ソース作成処理部１４０ｂは、読み込んだ機能構成情報部１１０の情報に基づいてテンプレートソース情報部１３０からテンプレートソース情報１３１を読み込む。
【００６７】
ここで、読み込まれるテンプレートソース情報１３１は、プレゼンテーション層２１０に対応するテンプレートソースであるが、プレゼンテーション層２１０のプログラム言語が指定されている場合、指定されたプログラム言語にさらに対応するテンプレートソースである。
【００６８】
ステップ８０３で、プレゼンテーション層ソース作成処理部１４０ｂは、機能構成情報部１１０とテンプレートソース情報１３１の情報を参照し、機能構成情報部１１０の属性値に基づいてテンプレートソースに含まれる制御文の処理を設定しながら、命令文と宣言文を含むソースを作成する。
【００６９】
この作成の中で、命令文と宣言文に変更情報が含まれている場合は、その変更情報にしたがって機能構成情報部１１０の属性値が埋め込まれる。
【００７０】
プレゼンテーション層ソース作成処理部１４０ｂは、ステップ８０４で、画面項目情報１１１を用いて、画面レイアウト情報を定義するソースを作成し、ステップ８０５で、作成されたソースに、各ソースファイルのインターフェースにおける名前として、画面項目情報１１１の画面項目を特定するキー情報（画面項目名）を設定する。以上により作成されたソースをプレゼンテーション層基本ソースとする。
【００７１】
図８Ｂは、アプリケーション層基本ソース作成処理の例を示す図である。アプリケーション層ソース作成処理部１４０ｃ（基本ソース作成部１４１ｃ）が実行するステップ８１１〜８１３は、ステップ８０１〜８０３と同じであるが、プレゼンテーション層２１０の代わりにアプリケーション層２２０に対応するテンプレートソースが読み込まれ、使用される。
【００７２】
また、アプリケーション層２２０のプログラム言語が指定されている場合、指定されたプログラム言語にさらに対応するテンプレートソースである。
【００７３】
次に、イベントにより、プレゼンテーション層２１０とアプリケーション層２２０とのデータのインターフェース用のプロパティが必要な場合もあるため、ステップ８１４で、アプリケーション層ソース作成処理部１４０ｃは、イベント情報部１２０の情報を読み込み、読み込んだイベントの情報と画面項目情報１１１の情報を用いて、ソースにインターフェース用のプロパティを設定する。
【００７４】
ここで、アプリケーション層ソース作成処理部１４０ｃは、インターフェース用のプロパティの変数が多い場合、新たなクラスを定義し、作成するプロパティをそのクラスで定義してもよい。
【００７５】
インターフェース用のプロパティは、プロパティで定義した場合でも、クラスで定義した場合でも、画面項目情報１１１のキー情報（画面項目名）によりオブジェクトを特定するための情報が設定される。
【００７６】
なお、インターフェース用のプロパティは、例えば図３に示した発生元画面項目情報他３２１などのプロパティであってもよい。以上により作成されたソースをアプリケーション層基本ソースとする。
【００７７】
図８Ｃは、データアクセス層基本ソース作成処理の例を示す図である。データアクセス層ソース作成処理部１４０ｄ（基本ソース作成部１４１ｄ）が実行するステップ８２１〜８２３は、ステップ８０１〜８０３と同じであるが、プレゼンテーション層２１０の代わりにデータアクセス層２３０に対応するテンプレートソースが読み込まれ、使用される。
【００７８】
また、データアクセス層２３０のプログラム言語が指定されている場合、指定されたプログラム言語にさらに対応するテンプレートソースである。
【００７９】
次に、ステップ８２４で、データアクセス層ソース作成処理部１４０ｄは、機能構成情報部１１０の問合せ情報１１４を読み込み、図４Ｅに示したようなクエリ情報４２１を作成する。問合せ情報１１４以外にクエリ情報そのものが予め定義されている場合は、予め定義されたクエリ情報が、クエリ情報４２１となってもよい。以上により作成されたソースをデータアクセス層基本ソースとする。
【００８０】
図９は、ソースイベント処理作成処理の例を示す図である。ソース作成処理部１４０ａ（ソースイベント処理作成部１４２ａ）は、図７に示したステップ７０４を呼び出し、ステップ９０１から実行が開始する。
【００８１】
ステップ９０２で、ソース作成処理部１４０ａは、読み込まれた機能構成情報部１１０に含まれるイベントに関する情報を１つずつ抽出し、抽出した情報に基づいてイベント情報部１２０のイベント定義情報１２３のイベントの処理から１つずつ読み込む。
【００８２】
ステップ９０２で、ソース作成処理部１４０ａは、読み込まれたイベントの処理がサブイベント処理を含むかを判定し、サブイベント処理を含まないと判定すると、ステップ９０４へ進み、どこの層の処理であるかを判定する。
【００８３】
ソース作成処理部１４０ａは、ステップ９０４の判定の結果がプレゼンテーション層である場合、ステップ９０５へ進み、プレゼンテーション層ソース作成処理部１４０ｂのソースイベント処理作成部１４２ｂを呼び出し、ステップ９０４の判定の結果がアプリケーション層である場合、ステップ９０６へ進み、アプリケーション層ソース作成処理部１４０ｃのソースイベント処理作成部１４２ｃを呼び出す。
【００８４】
また、ソース作成処理部１４０ａは、ステップ９０４の判定の結果がデータアクセス層である場合、ステップ９０７へ進み、データアクセス層ソース作成処理部１４０ｄのソースイベント処理作成部１４２ｄを呼び出す。
【００８５】
そして、ステップ９０８で、ソース作成処理部１４０ａは、イベント定義情報１２３に読み込まれていないイベントの処理が残っている限り、あるいは機能構成情報部１１０に未抽出のイベントに関する情報が残っている限り、ステップ９０４へ戻り、次の抽出を行う。
【００８６】
イベントに関する情報の抽出が残らず完了すると、ステップ９０９で、ソース作成処理部１４０ａは、ステップ９０２〜９０８の処理が、ステップ９１１から開始されるサブイベント処理であったかを判定し、サブイベント処理でなかったと判定すると、ステップ９１０へ進み、イベント処理を終了する。
【００８７】
ステップ９０３で、ソース作成処理部１４０ａは、サブイベント処理を含むと判定すると、ステップ９１２へ進み、図５Ａに示したイベントからサブイベントへの点線をたどり、サブイベント処理を実行する。ステップ９１２のサブイベント処理は、ステップ９１１から開始される。
【００８８】
サブイベント処理におけるステップ９０２、９０８で、ソース作成処理部１４０ａは、イベント定義情報１２３のイベント処理から１つずつ読み込む代わりに、サブイベント処理から１つずつ読み込む。
【００８９】
ステップ９０９で、ソース作成処理部１４０ａは、サブイベント処理であったと判定すると、ステップ９１３へ進み、サブイベント処理を終了し、ステップ９１２へ戻って、ステップ９１２からステップ９０８へ進む。
【００９０】
ソースイベント処理作成部１４２ｂ〜１４２ｄのそれぞれは、それぞれの層の基本ソースへ、イベント定義情報１２３から読み込まれたイベントの処理をコピーする。ここで、イベント定義情報１２３の１または複数の行がコピーされてもよい。
【００９１】
読み込まれたイベントの処理が制御文であった場合、機能構成情報部１１０の属性値に応じて条件分岐または繰り返し処理が設定されてもよい。また、読み込まれたイベントの処理が参照指示文の場合、参照先のイベントのイベント処理が設定されてもよい。
【００９２】
さらに、異なる層へのデータのインターフェースとして、イベントごとに機能構成情報部１１０の動的属性情報とその動的属性情報を識別できるキー属性との組合せが設定されてもよい。
【００９３】
図１０は、データアクセス層制御部品提供処理の例を示す図である。サーバ２２３のフレームワークなど何らかの制約により、データアクセス層２３０でイベントクエリ３５１を使用して、ＤＢ２４１へＳＱＬ文が発行できない場合もある。この場合のため、アプリケーション層２２０からデータアクセス層２３０へのインターフェースの情報を基にＳＱＬ文をＤＢ２４１へ発行する制御部品を提供する。
【００９４】
ステップ９５１で、データアクセス層制御部品提供部１５０は、機能構成情報部１１０の画面項目情報１１１を読み込み、アプリケーション層２２０から受け取る情報を特定して、アプリケーション層２２０から情報を受け取った場合にＤＢ２４１へクエリを実行する固定部品クラスを作成する。
【００９５】
以上で説明したように、画面項目の情報とイベントの情報に基づいてソースを作成できるため、特にＧＵＩを用いるアプリケーションのソースの作成することが可能になる。また、機能が異なっていても画面の遷移や制御が同じアプリケーションの作成においては、同じテンプレートを利用でき、画面項目とイベントの情報を各機能に合わせて設定することが可能になる。
【００９６】
さらに、複数の層から成るアプリケーション、特に異なる層が異なる装置に配置され、層ごとにソースのプログラム言語が異なるようなアプリケーションであっても、層ごとのソースのプログラム言語に応じたソースを作成することが可能になる。このようなアプリケーションのソースを作成することが可能になるため、特にＷｅｂアプリケーションのソースを、複数の層を通して、作成することが可能になる。
【符号の説明】
【００９７】
１００    ソース作成装置
１１０    機能構成情報部
１２０    イベント情報部
１３０    テンプレートソース情報部
１４０ａ  ソース作成処理部
１４０ｂ  プレゼンテーション層ソース作成処理部
１４０ｃ  アプリケーション層ソース作成処理部
１４０ｄ  データアクセス層ソース作成処理部
１５０    データアクセス層制御部品提供部
１６０    各層のソース
【図１】
2019169002.tif 000003
【図２】
2019169002.tif 000004
【図３】
2019169002.tif 000005
【図４Ａ】
2019169002.tif 000006
【図４Ｂ】
2019169002.tif 000007
【図４Ｃ】
2019169002.tif 000008
【図４Ｄ】
2019169002.tif 000009
【図４Ｅ】
2019169002.tif 000010
【図５Ａ】
2019169002.tif 000011
【図５Ｂ】
2019169002.tif 000012
【図５Ｃ】
2019169002.tif 000013
【図６】
2019169002.tif 000014
【図７】
2019169002.tif 000015
【図８Ａ】
2019169002.tif 000016
【図８Ｂ】
2019169002.tif 000017
【図８Ｃ】
2019169002.tif 000018
【図９】
2019169002.tif 000019
【図１０】
2019169002.tif 000020