(57)【要約】【課題】  従来のプログラム自動生成装置では同じ画面を開発する場合においても開発するプログラム言語により異なる入力情報を入力しなくてはならない。しかしながら、完成されたアプリケーションにおける画面表示は開発する言語により異なるわけではないため、表示された画面の情報と入力する定義情報を変換する作業は属人的に行う必要があり開発工数が削減できない。【解決手段】上記の課題を解決するために、本発明では、Webアプリケーションのプログラムを自動生成する際、プログラム言語種別、サーバ通信種別およびプログラム生成標準モデルを用いて、webアプリケーションを含むプログラムの自動生成を容易に行うことが可能にするものである。【選択図】  図１
2012150740.tif 000002
【特許請求の範囲】
【請求項１】
Webアプリケーションのプログラムを生成するプログラム生成装置において、
前記プログラムにより表示される画面情報を記憶する記憶手段と、
前記プログラムの言語種別、前記プログラムを実行するサーバのサーバ通信種別および前記プログラムの生成標準モデルの入力を受付ける入力手段と、
前記言語種別、前記サーバ通信種別および生成標準モデルを用いて、前記画面情報に従って、前記プログラムを生成する生成手段とを有することを特徴とするプログラム生成装置。
【請求項２】
請求項1のプログラム生成装置において、
前記記憶手段は、前記言語種別別に対応し、当該プログラムの情報を示す言語情報を記憶し、
前記生成手段は、前記入力手段で受付けられた言語種別に対応する言語情報を、前記記憶手段から特定し、特定された言語情報をさらに用いて当該プログラムを生成することを特徴とするプログラム生成装置。
【請求項３】
請求項１または２のいずれかに記載のプログラム生成装置において、
前記記憶手段は、前記生成標準モデルを更に記憶し、
前記入力手段は、前記生成標準モデルのうち、プログラム言語に依存しない生成標準モデルの入力を受付けることを特徴とするプログラム生成装置。
【請求項４】
Webアプリケーションのプログラムを生成するプログラム生成方法において、
前記プログラムにより表示される画面情報を記憶するステップと、
前記プログラムの言語種別、前記プログラムを実行するサーバのサーバ通信種別および前記プログラムの生成標準モデルの入力を受付けるステップと、
前記言語種別、前記サーバ通信種別および生成標準モデルを用いて、前記画面情報に従って、前記プログラムを生成するステップとを有することを特徴とするプログラム生成方法。
【請求項５】
請求項４のプログラム生成方法において、
前記記憶するステップは、前記言語種別別に対応し、当該プログラムの情報を示す言語情報を記憶し、
前記生成するステップは、前記入力するステップで受付けられた言語種別に対応する言語情報を、前記記憶手段から特定し、特定された言語情報をさらに用いて当該プログラムを生成することを特徴とするプログラム生成方法。
【請求項６】
請求項４または５のいずれかに記載のプログラム生成方法において、
前記記憶するステップは、前記生成標準モデルを更に記憶し、
前記入力するステップは、前記生成標準モデルのうち、プログラム言語に依存しない生成標準モデルの入力を受付けることを特徴とするプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webアプリケーションを含むプログラムの自動生成に関する。この中でも特に、プログラムにより作成される画面の画面情報を入力として、開発者が指定した任意の言語のプログラムの自動生成を可能にするための自動生成装置に関する。
【背景技術】
【０００２】
近年Webアプリケーションシステムの普及に伴い、システム開発効率を向上させるためプログラムの自動生成装置を利用して開発を行う手法が一般的となっている。Webアプリケーションシステムに利用されるプログラムやフレームワークの種類は多岐にわたる。従来はCGI(Common Gateway Interface)、Java(登録商標)が利用されてきたが、現在ではFlex(登録商標)、Silverlight(登録商標)、Ruby on Rails(登録商標)という新しい技術が出現している。
【０００３】
したがって、プログラムの自動生成装置も新しい技術が出現するたびに対応して作成されていた。
【０００４】
例えば、特許文献１では、入力仕様形式の拡張や出力プログラムのスタイルの変更に際して、変換規則の修正をせずに対応するプログラムの自動生成について開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平9-231063号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のプログラム自動生成や従来のWebアプリケーションプログラム自動生成装置では、入力した定義情報からプログラムを自動生成するために必要となるテンプレートが言語ごとに異なっているため、プログラムを生成するためにはテンプレートに対応した入力情報を入力する必要があった。
【０００７】
したがって、ユーザが自動生成ツールを利用する場合、出力したい特定のプログラム言語に特化した装置を利用し、そのプログラム自動生成装置に対応した入力情報を入力する必要があった。
【０００８】
すなわち、従来のプログラム自動生成装置では同じ画面を開発する場合においても開発するプログラム言語により異なる入力情報を入力しなくてはならない。
【０００９】
しかしながら、完成されたアプリケーションにおける画面表示は開発する言語により異なるわけではないため、表示された画面の情報と入力する定義情報を変換する作業は属人的に行う必要があり開発工数が削減できない。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明では、Webアプリケーションのプログラムを自動生成する際、プログラム言語種別、サーバ通信種別およびプログラム生成標準モデルを用いるものである。
【発明の効果】
【００１１】
本発明よれば、webアプリケーションを含むプログラムの自動生成を容易に行うことが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態におけるプログラム自動生成処理装置のシステム構成図。
【図２】本発明の一実施形態におけるプログラム生成装置処理手順を示す図。
【図３】本発明の一実施形態における画面項目定義情報ファイルの一例を示す図。
【図４】本発明の一実施形態における画面情報ファイルの一例を示す図。
【図５】本発明の一実施形態におけるチェック・編集処理情報ファイルの一例を示す図。
【図６】本発明の一実施形態における入力情報（言語種別、サーバ通信種別）の一例を示す図。
【図７】本発明の一実施形態におけるプログラム生成手順を示す図。
【図８】本発明の一実施形態における画面プログラムソースコード生成手順を示す図。
【図９】本発明の一実施形態におけるチェック・編集処理ソースコード生成手順を示す図。
【図１０】本発明の一実施形態におけるサーバ通信設定ファイル出力手順を示す図。
【図１１】本発明の一実施形態におけるプログラム生成標準モデル設計情報の一例を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態を、図面を用いて説明する。
まず、システム構成について説明する。  図面1は本発明のプログラム生成装置のシステム構成図である。
プログラム自動生成処理装置のうち、制御装置は入力装置0101、プログラム生成部0102、出力装置0109、画面定義情報入力部0110で構成される。なお、これらの構成要件のうち、「部」についてはハードウエアでなく、ソフトウエア＝機能として構成してもよい。次にプログラム生成部が処理に必要となるデータを取得するための記憶装置として、プログラム言語情報記憶装置0103、サーバ通信定義情報記憶装置0104、プログラム生成標準モデル記憶装置0105、チェック・編集処理情報記憶装置0106、画面定義情報記憶装置0107を持つ。
【００１４】
プログラム生成部0102は、プログラム言語情報入手手段0102-1、サーバ通信定義情報入手手段0102-2、プログラム生成標準モデル取得手段0102-3、プログラム生成エンジン0102-4を備える。画面定義情報入力部0110は、画面定義情報入力手段0110-1を備える。なお、プログラム生成部0102は、いわゆるプログラムおよびＣＰＵの如き演算装置で実現される。つまり、本プログラム生成部0102での処理は、プログラムに従って演算処置が演算することで実行される。
【００１５】
次に、それぞれの装置の動作について示す。
図1において入力装置0101は、キーボードやマウスなどのポインティングデバイスに相当する。この入力装置0101を利用し、プログラム言語種別（図6）、サーバ通信種別（図6）、画面定義情報（後述する図3、図4、図5に示す画面項目定義情報ファイル、画面情報ファイル、チェック・編集処理情報ファイル）を入力する。
図1においてプログラム生成部0102は、入力装置0101からの入力に応じてプログラム生成を行う。プログラム生成部の処理手順は図2に示す。
【００１６】
次に、プログラム生成装置処理手順について説明する。本実施形態におけるプログラム生成部の処理手順は図2に示す。以下、図2のフローチャートの説明を行う。まず、ステップ0201においては、入力装置0101から入力されたプログラム言語種別に一致するプログラム言語情報をプログラム言語情報記憶装置から取得する。
そしてステップ0202においては、入力装置0101から入力されたサーバ通信種別に一致するサーバ通信定義情報をサーバ通信情報記憶装置から取得する。このとき、0201で取得したプログラム言語情報により取得可能なサーバ通信定義情報はあらかじめ決められている。プログラム言語情報とサーバ通信定義情報の関係は図6に示す。次に、ステップ0203において、プログラム生成標準モデル記憶装置からプログラム生成標準モデルを取得する。プログラム生成標準モデルはプログラム言語情報に依存しない。ステップ0204において、プログラム生成はプログラム言語情報、サーバ通信定義情報、プログラム生成標準モデルを入力としてプログラムを出力する。このステップ0204におけるプログラム生成の詳細な出力処理の手順は図7を用いて、以下で説明する。
【００１７】
以下、ステップ0204におけるプログラム生成処理の詳細を図7のフローチャートを用いて説明する。
ステップ0701において、画面定義情報記憶装置に記憶にあらかじめ用意しておいた画面情報ファイルを読み込む。ファイルの詳細は図3に示す。ステップ0702においては画面情報ファイルのうち画面IDを取得する。図３の例では、画面IDは複百貨店数つまり３つ存在するので表の上部から順に取得する。図3の例では画面ID「RegistScreen」「RegistCompleteScreen」「ErrorScreen」の順で取得する。ステップ0703では未取得の画面IDが存在しているか判定し、未取得の画面IDが存在しない場合は、ステップ0704を実行する。未取得の画面IDが存在する場合はステップ0702を実行し画面IDを取得する。
【００１８】
ステップ0704では、画面情報ファイルのうち、ステップ0702で取得した画面IDに対応するイベントIDを取得する。図3を例とすると、ステップ0702で画面ID「RegistScreen」「RegistCompleteScreen」「ErrorScreen」が取得済みである。画面ID「RegistScreen」に対応するイベントIDは「Event01」「Event02」が存在するためこれらのイベントを順に取得する。画面ID「RegistScreen」に対応するイベントIDは「Event01」が存在するため、このイベントを取得する。画面ID「ErrorScreen」については対応するイベントIDが存在しないため、そのまま次のステップに遷移する（取得は行わない）。ステップ0705では、ステップ0702で取得した画面IDそれぞれについて、未取得のイベントIDが存在しない場合はステップ0706の処理を行う。画面IDそれぞれについて未取得のイベントIDが存在する場合、ステップ0704の処理を行う。
【００１９】
次に、ステップ0706において、画面情報ファイルのうちイベントIDに対応するサーバ呼び出しメソッドを取得する。図3の例とするとステップ0704で画面ID「RegistScreen」については対応するイベントID「Event01」「Event02」を取得済みである。イベントID「Event01」については、対応するサーバ呼び出しメソッド「Method1」が存在するのでこれを取得する。イベントID「Event02」については、対応するサーバ呼び出しメソッド「Method1」「Method2」が存在するのでこれらを順に取得する。次に画面ID「RegistCompleteScreen」については対応するイベントID「Event01」を取得済みである。このイベントID「Event01」については、対応するサーバ呼び出しメソッド「Method3」が存在するのでこれを取得する。次に画面ID「ErrorScreen」については、対応するサーバ呼び出しメソッドが存在しないためそのまま次のステップに進む（取得は行わない）。
【００２０】
ステップ0707において、イベントIDそれぞれについて未取得のサーバ呼び出しが存在するか判定し、存在しない場合はステップ0708を実行する。未取得のサーバ呼び出しメソッドがある場合は、ステップ0706を実行する。
【００２１】
ステップ0708において、イベントIDに対応する遷移先画面IDを取得する。図3を例とするとステップ0704で画面ID「RegistScreen」については対応するイベントID「Event01」「Event02」を取得済みである。「Event01」に対応する遷移先画面IDは「ErrorScreen」「RegistScreen」が存在するためこれを順に取得する。「Event02」に対応する遷移先画面IDは「RegistScreen」が存在するためこれを取得する。ステップ0704で画面ID「RegistCompleteScreen」については対応するイベントID「Event01」を取得済みである。「Event02」に対応する遷移先画面IDは「RegistScreen」が存在するためこれを取得する。画面ID「ErrorScreen」については対応する遷移先画面IDが存在しないため取得は行わない。ステップ0709では未取得の遷移先画面IDが存在するか判定し、未取得の遷移先画面IDが存在しない場合はステップ0710を実行する。未取得の遷移先画面IDが存在する場合はステップ0708を実行し遷移先画面IDを取得する。
【００２２】
ステップ0710においては、画面IDに対応する画面項目定義情報ファイルを取得する。ファイルの詳細は図4に示す。ステップ0701〜ステップ0708までで取得した情報を利用して、ステップ0711画面プログラムソースコード生成、ステップ0712チェック・編集処理プログラム生成、ステップ0713サーバ通信ファイル生成を実行する。
【００２３】
次に、画面プログラムソースコード生成手順について、図８を用いて説明する。
まず、ステップ0801において、プログラム生成標準モデルを読み込み、設計情報を抽出する。プログラム生成標準モデルから抽出する設計情報の各項目は図11に記載したとおりである。
【００２４】
ステップ0802において、プログラム言語情報に対応するファイルの拡張子を選択し、該当の拡張子のファイルを作成する。プログラム言語情報により作成されるファイルの拡張子が決定される。ステップ0803においてステップ0801で取得したプログラム生成標準モデルの内部に言語に依存しない画面ID情報に対応する箇所があるため、ステップ0702に取得した画面IDで置き換える。
【００２５】
ステップ0804において、ステップ0801で取得プログラム生成標準モデルの内部に言語に依存しないイベントID情報に対応する箇所があるため、ステップ0703で取得したイベントIDで置き換える。
【００２６】
ステップ0805において、ステップ0801で取得プログラム生成標準モデルの内部に言語に依存しないサーバ呼び出しメソッド情報に対応する箇所があるため、ステップ0705で取得したサーバ呼び出しメソッドで置き換える。
【００２７】
ステップ0806において、ステップ0801で取得プログラム生成標準モデルの内部には言語に依存しない画面項目名を出力する箇所があり、ステップ0708で取得した画面項目定義情報ファイルから画面項目名読み出し出力する。
【００２８】
ステップ0807において、ステップ0801で取得プログラム生成標準モデルの内部には言語に依存しないコンポーネント種別を出力する箇所があり、ステップ0708で取得した画面項目定義情報ファイルからコンポーネント種別読み出し出力する。
【００２９】
ステップ0807を実行すると、作成したファイルを出力して処理を終了する。次に、チェック・編集処理プログラムソースコード生成について、図9を利用して説明する。
ステップ0901で、ステップ0702で取得した画面IDに一致するチェック・編集処理情報ファイルを読み込む。ステップ0902において、ステップ0806で取得した画面項目名に対応したチェック・編集処理カテゴリが設定されている場合、プログラム生成標準モデルのエラー処理記述箇所にチェック・編集処理情報ファイルのチェック・編集カテゴリ、チェック・編集処理名、パラメータ名、エラーコード、エラーメッセージ、埋め字を出力する。
【００３０】
ステップ0903において、画面項目名に対応するチェック・編集カテゴリ取得し、取得すべきチェック・編集カテゴリが存在しない場合は、作成したファイルを出力して終了する。
【００３１】
次に、サーバ通信設定ファイル出力手順を図10を利用して説明する。
ステップ1001において、ステップ0102で取得したサーバ通信種別に対応する拡張子のファイルを作成する。拡張子はサーバ通信種別によりあらかじめ決められている。ステップ1002においてプログラム生成標準モデルの言語に依存しないサーバ通信設定を出力する箇所があるので、ステップ0102で取得したサーバ通信種別を出力する。ステップ1002終了後、作成したファイルを出力して処理を終了する。
【００３２】
次に、図１１を用いて、プログラム生成標準モデルの説明を行う。
プログラム生成標準モデル1101は、言語に依存しないプログラムの雛形として構成されている。プログラム生成標準モデル1101には、設計情報1102に対応する箇所がある。プログラム生成標準モデルにプログラム言語情報と図３、４、５に記載したファイルの設計情報を当てはめることで特定の言語のプログラムソースコードを出力することが可能となる。本実施形態では、この言語に依存しないプログラム生成標準モデルを利用する点に従来の発明との相違点がある。
【００３３】
次に、画面定義情報入力部の処理を説明する。
画面定義情報入力手段0110-1はあらかじめ定義済みの画面項目定義情報ファイル、画面情報ファイル、チェック・編集処理情報ファイルを画面定義情報記憶装置0107に記憶する処理を実行する。
【００３４】
画面情報ファイルは、1以上の任意の数があらかじめ用意されているとする。この画面情報ファイルには作成するWebアプリケーションの画面ごとに画面IDを記述する。イベントIDは画面IDごとに記載する。イベントとは対象の画面内で、なんらかの操作により処理が実行される場合を指す。サーバ呼び出しメソッドは、イベント実行した結果サーバに対してメソッドの呼び出しを行う場合は、呼び出し対象のメソッド名を記述する。遷移先画面IDは、イベント実行後に表示する画面のIDを記載する。
【００３５】
画面項目定義情報ファイルは画面情報ファイルの画面ID数分存在する。画面項目定義情報ファイルには画面に表示される項目とその項目がどのコンポーネントで構成されるかを記載する。
【００３６】
チェック・編集処理情報ファイルは、画面情報ファイルに記載したイベントのうちチェック・編集処理を行うイベントの数だけ存在する。チェック・編集処理は画面項目定義情報ファイルに記述した画面項目名に設定する。設定する項目はチェック・編集カテゴリ、チェック・編集処理名、エラーコード、エラーメッセージ、埋め字である。
【００３７】
チェック・編集カテゴリはチェックの対象の種類をあらわす。チェック・編集処理名は具体的なチャック・編集処理の内容を表す。エラーコードには、エラーが発生した場合にどの発生したかエラーを特定するためのコードが記述される。エラーメッセージには、エラーが発生した場合に画面に表示する文字列が記述される。埋め字はエラーメッセージ内で、動的に変更する必要性のある文字を定義する。
【００３８】
以上、本実施形態によれば、Web技術・プラットフォーム・言語に依存しない要件定義レベルのモデルを用意し、アプリケーションの形態や言語ごとの特有の実装形式はプログラム生成時に追加することで従来のツールではできない言語に依存しないプログラムの自動生成を行うことを可能となる。
【符号の説明】
【００３９】
０１０１  入力装置
０１０２  プログラム生成部
０１０２-１  プログラム言語情報入力手段
０１０２-２  サーバ通信設定情報入力手段
０１０２-３  プログラム生成標準モデル取得手段
０１０２-４  プログラム生成エンジン
０１０３  プログラム言語情報記録装置
０１０４  サーバ通信定義情報記録装置
０１０５  プログラム生成標準モデル記録装置
０１０６  チェック・編集処理情報記憶装置
０１０７  画面定義情報記憶装置
０１０８  プログラム
０１０９  出力装置
０１１０  画面定義情報入力部
０１１０−１  画面定義情報入力手段
【図１】
2012150740.tif 000003
【図２】
2012150740.tif 000004
【図３】
2012150740.tif 000005
【図４】
2012150740.tif 000006
【図５】
2012150740.tif 000007
【図６】
2012150740.tif 000008
【図７】
2012150740.tif 000009
【図８】
2012150740.tif 000010
【図９】
2012150740.tif 000011
【図１０】
2012150740.tif 000012
【図１１】
2012150740.tif 000013