(57)【要約】【課題】本発明の目的は、ＧＵＩプログラムの自動生成において、可読性を向上し、修正による影響を受ける範囲を縮小する技術を提供することである。【解決手段】テンプレート選択手段は、画面設計書に規定された画面構成に基づいて、対象画面のプログラムのソースコードに使用するテンプレートを選択する。シナリオ定義作成手段は、画面設計書に規定された処理シナリオに基づいて、画面遷移のシナリオ定義を作成する。生成処理手段は、テンプレートおよびシナリオ定義を用いて、対象画面の画面構成と対象画面への入力に対する動作とを実現する第１の自動生成ソースコードを生成する。独自処理有無判定手段は、個別に作成すべき独自処理があるか否か判定する。雛形ソースコード生成手段は、独自処理があれば、独自処理を示すソースコードの雛形である第２の自動生成ソースコードを、第１のソースコードから独立した形で生成する。【選択図】図５
2015148925.tif 000002
【特許請求の範囲】
【請求項１】
対象画面について画面構成および処理シナリオを規定した画面設計書に基づいて、グラフィックユーザインタフェースを備えたプログラムのソースコードを生成するプログラム生成装置であって、
前記画面設計書に規定された画面構成に基づいて、前記対象画面のプログラムのソースコードに使用するテンプレートを選択するテンプレート選択手段と、
前記画面設計書に規定された処理シナリオに基づいて、画面遷移のシナリオ定義を作成するシナリオ定義作成手段と、
前記テンプレートおよび前記シナリオ定義を用いて、前記対象画面の画面構成と前記対象画面への入力に対する動作とを実現する第１の自動生成ソースコードを生成する生成処理手段と、
個別に作成すべき独自処理があるか否か判定する独自処理有無判定手段と、
前記独自処理があれば、前記独自処理を示すソースコードの雛形である第２の自動生成ソースコードを、前記第１のソースコードから独立した形で生成する雛形ソースコード生成手段と、
を有するプログラム生成装置。
【請求項２】
外部装置との通信に用いる通信インタフェースを特定する通信インタフェース特定手段を更に有し、
前記生成処理手段は、前記通信インタフェース特定手段で特定された前記通信インタフェースの情報を更に用いて、前記第１の自動生成ソースコードに含まれ前記通信インタフェースを実現する通信インタフェース定義を生成する、
請求項１に記載のプログラム生成装置。
【請求項３】
前記対象画面に含まれる部品に対する試験のための入力を定めた試験コードを作成する試験コード生成手段を更に有し、
前記生成処理手段は、前記部品のそれぞれについての試験コードに基づいて、前記対象画面のソースコードに単体試験用の入力を与える単体試験用ソースコードを、更に生成する、請求項１に記載のプログラム生成装置。
【請求項４】
前記単体試験用ソースコードは、前記第１の自動生成ソースコードに対して単体試験用の入力を与えるプログラムのソースコードである、請求項３に記載のプログラム生成装置。
【請求項５】
対象画面について画面構成および処理シナリオを規定した画面設計書に基づいて、グラフィックユーザインタフェースを備えたプログラムのソースコードを生成するためのプログラム生成方法あって、
前記画面設計書に規定された画面構成に基づいて、前記対象画面のプログラムのソースコードに使用するテンプレートを選択し、
前記画面設計書に規定された処理シナリオに基づいて、画面遷移のシナリオ定義を作成し、
前記テンプレートおよび前記シナリオ定義を用いて、前記対象画面の画面構成と前記対象画面への入力に対する動作とを実現する第１の自動生成ソースコードを生成し、
個別に作成すべき独自処理があるか否か判定し、
前記独自処理があれば、前記独自処理を示すソースコードの雛形である第２の自動生成ソースコードを生成する、
を有するプログラム生成方法。
【請求項６】
外部装置との通信に用いる通信インタフェースを特定し、
特定した前記通信インタフェースの情報を用いて、前記通信インタフェースを備えた前記第１の自動生成ソースコードを生成する、
請求項５に記載のプログラム生成方法。
【請求項７】
更に、前記対象画面に含まれる部品に対する試験のための入力を定めた試験コードを作成し、
前記部品のそれぞれについての試験コードに基づいて、前記対象画面のソースコードに単体試験用の入力を与える単体試験用ソースコードを生成する、
請求項５に記載のプログラム生成方法。
【請求項８】
前記単体試験用ソースコードは、前記第１の自動生成ソースコードに対して単体試験用の入力を与えるプログラムのソースコードである、請求項７に記載のプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を有するプログラムを自動的に生成する装置及び方法に関する。
【背景技術】
【０００２】
従来のＧＵＩを有したプログラム開発の一例ではまず最初に画面設計が行われる。画面設計書には、ＧＵＩ部分と、ＧＵＩから発生するイベントに対するコールバック部分とが定義される。プログラマは、その画面設計書を元にＧＵＩ部分の開発を行う。続いてプログラマは、画面設計書に定義されている動作内容に基づいてＧＵＩから発生するイベントに対するコールバック部分の開発を行う。更に必要があれば、プログラマはＧＵＩプログラムで使用する共通処理の部分の開発を行う。共通処理として、例えば、ＧＵＩプログラムの複数の箇所で用いられる処理であるため、他の部分から呼び出しが可能なように共通的に記述された処理などがある。
【０００３】
図１は、プログラム開発における画面設計書の変更の影響について説明するための図である。上述した手法で開発されたプログラムは、ＧＵＩ表示部ソースコード１１０、コールバック処理ソースコード１２０、および共通処理ソースコード１３０を含んでいる。そのため、画面設計書に変更があった場合、プログラマは、ＧＵＩ表示部ソースコード１１０およびコールバック処理ソースコード１２０を、更に必要に応じて共通処理ソースコード１３０を修正する。その修正作業は全て手作業で行われる。
【０００４】
また、ＧＵＩプログラムの開発を自動化する技術が特許文献１に開示されている。特許文献１には、「システムソフトウェアのＵＭＬ設計書およびインタフェースプログラムから、そのソフトウェアを操作するＵＩ（ユーザインタフェース）プログラムを自動生成する」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１４０８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献１には、ＵＭＬ設計書およびインタフェースプログラムからＧＵＩプログラムを自動生成する方法が記載されている。しかしながら、特許文献１の方法では、共通的な処理を実現する部分と、共通部分に含まれない独自の処理を実現する部分とが混在した形でプログラムのソースコードが生成されてしまう。
【０００７】
そのため、自動生成されたソースコードの可読性は低いものとなってしまう。また、プログラムを修正する必要が生じた場合、その修正がどの部分への修正であったとしても、対象となるプログラム全体を再構築する作業が発生してしまう。
【０００８】
本発明の目的は、ＧＵＩプログラムの自動生成において、可読性を向上し、修正による影響を受ける範囲を縮小する技術を提供することである。
【課題を解決するための手段】
【０００９】
本発明の一態様によるプログラム生成装置は、対象画面について画面構成および処理シナリオを規定した画面設計書に基づいて、グラフィカルユーザインタフェースを備えたプログラムのソースコードを生成するプログラム生成装置であって、前記画面設計書に規定された画面構成に基づいて、前記対象画面のプログラムのソースコードに使用するテンプレートを選択するテンプレート選択手段と、前記画面設計書に規定された処理シナリオに基づいて、画面遷移のシナリオ定義を作成するシナリオ定義作成手段と、前記テンプレートおよび前記シナリオ定義を用いて、前記対象画面の画面構成と前記対象画面への入力に対する動作とを実現する第１の自動生成ソースコードを生成する生成処理手段と、個別に作成すべき独自処理があるか否か判定する独自処理有無判定手段と、前記独自処理があれば、前記独自処理を示すソースコードの雛形である第２の自動生成ソースコードを、前記第１のソースコードから独立した形で生成する雛形ソースコード生成手段と、を有している。
【発明の効果】
【００１０】
本発明によれば、ＧＵＩプログラムの自動生成において、可読性を向上し、修正による影響を受ける範囲を縮小する技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】プログラム開発における画面設計書の変更の影響について説明するための図である。
【図２】ＧＵＩプログラム自動生成装置が自動生成ソースコードを生成する様子を示す概念図である。
【図３】画面項目設計書２１に含まれるテーブルの記述例を示す図である
【図４】独自処理がある場合に画面項目設計書２１に含まれるテーブルの記述例を示す図である。
【図５】ＧＵＩプログラム自動生成装置１０の概略構成を示すブロック図である。
【図６】ＧＵＩプログラム自動生成装置１０がＧＵＩプログラムのソースコードを自動生成するときの動作の流れを示すフローチャートである。
【図７】入力条件設計書４０の記述例を示す図である。
【図８】ＧＵＩプログラム自動生成装置１０を用いたＧＵＩプログラム開発の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の一実施形態であるＧＵＩプログラム自動生成装置について図面を用いて説明する。
【００１３】
図２は、ＧＵＩプログラム自動生成装置が自動生成ソースコードを生成する様子を示す概念図である。ＧＵＩプログラム自動生成装置１０には、ＧＵＩプログラムに含まれる複数の対象画面のそれぞれについて、各設計書２０、３０、４０、６０、７０を解析し、ソースコードテンプレートファイル５０を利用して、自動生成ソースコード６０を生成する。その際、ＧＵＩプログラム自動生成装置１０は、複数の対象画面に共通の共通定義設計書７０を利用する。
【００１４】
プログラマは、ＧＵＩプログラムを開発するにあたり、まず、ＧＵＩプログラム自動生成装置１０で解析可能な形式の画面設計書２０と、他サーバとの通信に用いる通信インタフェースを規定するインタフェース設計書３０と、ＧＵＩプログラムの項目毎の動作確認内容を規定した入力条件設計書４０を作成する。また、プログラマは、予め、ＧＵＩプログラム名称、ＧＵＩ部品名称、ＧＵＩ部品とソースコードテンプレートファイル５０との紐付けを規定する共通定義設計書７０も作成しておき、ＧＵＩプログラム開発に際し、必要に応じてそれを修正する。
【００１５】
画面設計書２０には画面項目設計書２１とシナリオ定義設計書２２が含まれている。
【００１６】
画面項目設計書２１には、対象画面の画面構成の情報、例えば、ＧＵＩプログラムの画面に表示するＧＵＩ部品の種別や配置の定義、および定義したＧＵＩ部品へ入力する情報について規定される。
【００１７】
図３は、画面項目設計書２１に含まれるテーブルの記述例を示す図である。図３を参照すると、テーブル３００には、各ＧＵＩ部品の項目名３０１、コントロール種別３０２、タブオーダー３０３、コンテンツ情報３０４、配置情報３０５が互いに対応づけて記述されている。コントロール種別３０２は、各項目名３０１のＧＵＩ部品の制御に関する種別を示している。ＥＤＩＴは、入力したり、編集したりできる項目を意味し、ＰＡＮＥＬは固定な表示の項目を意味し、ＢＴＮはボタンを意味している。タブオーダー３０３は、Ｔａｂキーによってフォーカスが移動する順序を示している。コンテンツ情報の表示値は、ＧＵＩ部品に表示するテキストを示している。配置情報３０５は、ＧＵＩ部品を表示する座標および大きさを示している。
【００１８】
図４は、独自処理がある場合に画面項目設計書２１に含まれるテーブルの記述例を示す図である。図４を参照すると、テーブル５００には、各独自処理について、アクション５０１、コントロール種別５０２、項目名５０３、および独自処理名５０４が互いに対応づけて記述されている。アクション５０１は、独自処理を呼び出す操作を示している。項目名５０３は、独自処理を呼び出す項目を示し、コントロール種別５０２は、その項目の制御に関する種別を示している。独自処理名５０４は、独自処理の名称である。作成するＧＵＩプログラムに独自処理を実装する必要がない場合、画面項目設計書２１に独自処理を呼出すためのテーブル５００を記述する必要はない。
【００１９】
一方、シナリオ定義設計書２２には、各対象画面の画面項目設計書２１により作成されるＧＵＩ画面への操作によって実行する処理のシナリオ、例えば、ＧＵＩ画面に対する操作による遷移先となるＧＵＩ画面といった複数のＧＵＩ画面同士の関連動作が規定される。
【００２０】
ソースコードテンプレートファイル５０は、自動生成ソースコード６０の生成に使用するテンプレートのファイルである。
【００２１】
インタフェース設計書３０には、ＧＵＩプログラムを実装したコンピュータが他のサーバ等との通信に用いる通信インタフェースが規定されている。
【００２２】
入力条件設計書４０には、画面項目設計書２１における入力項目について、正常とされるための入力条件が規定されている。例えば「月」の項目であれば、「１」月から「１２」月までのような正常な入力値の範囲が規定される。この入力条件設計書４０がＧＵＩプログラムの項目毎の動作確認内容となる。
【００２３】
ＧＵＩプログラム自動生成装置１０が生成する自動生成ソースコード６０には、ＧＵＩレイアウトソースコード６１、画面間シナリオ定義ソースコード６２、通信インタフェース定義６３、単体試験用ソースコード６４、イベント動作定義ソースコード６５、独自処理雛形ソースコード６６という６種類のものが含まれている。
【００２４】
ＧＵＩレイアウトソースコード６１はＧＵＩプログラムの画面レイアウトを構築するソースコードである。
【００２５】
画面間シナリオ定義ソースコード６２は、ＧＵＩプログラム自動生成装置１０で作成されるＧＵＩプログラムの画面間の関連動作などの処理を構築するソースコードである。
【００２６】
通信インタフェース定義６３は、例えば他サーバとの通信によるデータの送受信を行うための通信インタフェースの構造の定義である。
【００２７】
単体試験用ソースコード６４は、入力条件設計書４０に記載された入力条件に基づいた試験を実施するためのソースコードである。従来は自動生成されたソースコードから作成されたＧＵＩプログラムについて、ＧＵＩ部分の動作確認は手作業で行わなければならず、類似した項目が多数に及ぶ場合でも、同一あるいは類似の動作確認を項目単位で繰り返し実施する必要があったが、本実施形態では、単体試験が自動化できるので、試験作業が低減される。
【００２８】
イベント動作定義ソースコード６５は、ＧＵＩレイアウトソースコード６１で定義されたＧＵＩ部品に何らかのイベントが発生した場合の動作を構築するソースコードである。
【００２９】
独自処理雛形ソースコード６６は、ＧＵＩプログラムに、個別に作成すべき独自処理が必要な場合に生成されるソースコードの雛形であり、独自処理のソースコードがそこに追加記述される。
【００３０】
以上のように６種類のソースコードは全て内容が異なっている。ソースコードテンプレートファイル５０には、これら各ソースコードについての様々な形態のソースコードテンプレートファイルが含まれている。
【００３１】
ＧＵＩプログラム自動生成装置１０は共通定義設計書７０からＧＵＩプログラムで用いる共通定義情報を取得し、その情報を用いて画面設計書２０に記載された定義情報からテンプレートファイルを結合し、自動生成ソースコード６０を生成する。
【００３２】
図５は、ＧＵＩプログラム自動生成装置１０の概略構成を示すブロック図である。図５を参照すると、テンプレート選択部１５、ソースコード生成部１６、独自処理有無判定部１７、雛形ソースコード生成部１８、および設計書チェック部１９を有している。更に、ソースコード生成部１６は、画面間シナリオ定義作成部１６１、試験コード生成部１６２、生成処理部１６３、および通信インタフェース特定部１６４を有している。
【００３３】
テンプレート選択部１５は、画面設計書２０に規定された画面構成に基づいて、対象画面のプログラムのソースコードに使用するテンプレートを選択する。
【００３４】
画面間シナリオ定義作成部１６１は、画面設計書２０に規定された処理シナリオに基づいて、画面遷移のシナリオ定義を作成する。
【００３５】
生成処理部１６３は、テンプレート選択部１５で選択されたテンプレートと、画面間シナリオ定義作成部１６１で作成されたシナリオ定義を用いて、対象画面の画面構成と対象画面への入力に対する動作とを実現する各種ソースコード（第１の自動生成ソースコード）を生成する。第１の自動生成ソースコードには、ＧＵＩレイアウトソースコード６１および画面間シナリオ定義ソースコード６２が含まれている。
【００３６】
独自処理有無判定部１７は、対象画面のＧＵＩプログラムに個別に作成すべき独自処理があるか否か判定する。
【００３７】
雛形ソースコード生成部１８は、独自処理有無判定部１７による判定で独自処理があれば、その独自処理を示すソースコードの雛形（第２の自動生成ソースコード）を、前記第１のソースコーから独立した形で生成する。
【００３８】
本実施形態によれば、テンプレートからの自動生成とは別に作成する独自処理のソースコードの雛形の部分と、テンプレートから自動生成されるソースコードに部分とをそれぞれ互いに独立した形で生成するので、ソースコードの可読性が向上し、また修正の影響を受ける範囲を自動生成部分あるいは独自処理部分に限定することができる。
【００３９】
通信インタフェース特定部１６４は、他サーバ等の外部装置との通信に用いる通信インタフェースを特定する。
【００４０】
生成処理部１６３は、通信インタフェース特定部１６４で特定された通信インタフェースの情報を更に用いて、その通信インタフェースを実現する通信インタフェース定義を生成する。第１の自動生成ソースコードに、この通信インタフェース定義も含まれる。
【００４１】
これによれば、所望の通信インタフェースを備えたＧＵＩプログラムを自動生成することができる。
【００４２】
試験コード生成部１６２は、対象画面に含まれる部品に対する試験のための入力を定めた試験コードを作成する。
【００４３】
その場合、生成処理部１６３は、対象画面に含まれる部品のそれぞれについての試験コードに基づいて、対象画面のソースコードに単体試験用の入力を与える単体試験用ソースコードを、更に生成する。
【００４４】
これによれば、対象画面のプログラムのソースコードを単体試験するための単体試験用ソースプログラムを併せて生成することができる。
【００４５】
なお、この単体試験用ソースコードは、テンプレートから作成された第１の自動生成ソースコードに対して単体試験用の入力を与えるプログラムのソースコードである。これによれば、テンプレートに形態が定まっているため単体試験の入力を規定することが比較的容易な第１の自動生成ソースコードを独立した形に生成するので、容易に、その部分についての単体試験用のソースプログラムを併せて生成することができる。
【００４６】
図６は、ＧＵＩプログラム自動生成装置１０がＧＵＩプログラムのソースコードを自動生成するときの動作の流れを示すフローチャートである。図６において、細線矢印は処理の流れを示し、破線矢印はファイルの入力を示し、太線矢印はファイルの出力を示している。ＧＵＩプログラムのソースコードの生成に用いる、共通定義設計書７０、画面設計書２０、ソースコードテンプレートファイル５０、入力条件設計書４０、およびインタフェース３０は、外部記憶装置８０に格納されている。また、ＧＵＩプログラム自動生成装置１０が自動生成した、ＧＵＩレイアウトソースコード６１、画面間シナリオ定義ソースコード６２、通信インタフェース定義６３、単体試験用ソースコード６４、イベント動作定義ソースコード６５、および独自処理雛形ソースコード６６は外部記憶装置８０に格納される。
【００４７】
ＧＵＩプログラム自動生成装置１０は、一時格納領域としてメモリ１１と中央演算装置としてＣＰＵ１２を備えている。メモリ１１に適時情報を格納し、その情報を持ってＣＰＵ１２で演算を行う基本構成のコンピュータ装置上で動作する。
【００４８】
ＧＵＩプログラムの自動生成を開始すると、ＧＵＩプログラム自動生成装置１０は、まず初めに共通定義設計書７０をメモリ１１に格納する（ステップ２００）。これは、ソースコードテンプレートファイル５０とＧＵＩ部品とを対応付ける紐付き情報と、他の画面のＧＵＩプログラムの情報を取得するためである。
【００４９】
それらの情報の取得が完了すると、ＧＵＩプログラム自動生成装置１０は、次に画面設計のための情報として、自動生成の対象画面の画面設計書２０とソースコードテンプレートファイル５０と入力条件設計書４０を外部記憶装置８０から取得してメモリ１１に格納する（ステップ２０５）。
【００５０】
次に、ＧＵＩプログラム自動生成装置１０は、それまでにメモリ１１に格納した情報を元に、ＣＰＵ１２によって、各設計書のチェックを実施する（ステップ２１０）。設計書のチェック内容としては、例えば、画面項目設計書２１に記載してあるＧＵＩ部品名称が共通定義設計書７０に存在しているか、記入漏れの項目が存在しているかがある。設計書のチェックは既存の方法で実施すればよい。
【００５１】
設計書のチェックが完了すると、ＧＵＩプログラム自動生成装置１０は、次に、画面項目設計書２１内に記載のあるＧＵＩ部品情報に基づき、ステップ２００で共通定義設計書７０から取得しておいた共通定義の情報から、ソースコードテンプレートファイル５０とＧＵＩ部品情報との紐付き情報を参照し、画面項目設計書２１内に記載のあるＧＵＩ部品情報に対応するソースコードテンプレートファイル５０の該当ソースコードを取得し、ＧＵＩプログラムとする（ステップ２１５）。このステップ２１５で、当該ＧＵＩ部品のＧＵＩレイアウトソースコード６１とイベント動作定義ソースコード６５の準備が整う。
【００５２】
画面設計書２０に記載のある全てのＧＵＩ部品に対してステップ２１５を繰り返し実施し、各ＧＵＩ部品のＧＵＩレイアウトソースコード６１とイベント動作定義ソースコード６５をＧＵＩプログラムに加えていく（ステップ２２０）。
【００５３】
次に、ＧＵＩプログラム自動生成装置１０は、ステップ２２０で作成したＧＵＩプログラムに対して、他のＧＵＩプログラムとの関連動作の処理シナリオをシナリオ定義設計書２２から取得し、画面間遷移の動作定義を構築する（ステップ２３０）。このステップ２３０では、画面間シナリオ定義ソースコード６２が準備される。
【００５４】
この段階でＧＵＩプログラムの基本動作部分は完成するので、ＧＵＩプログラム自動生成装置１０は、入力条件設計書４０を用いて、ＧＵＩプログラムを構成しているＧＵＩ部品単位で、それぞれの試験を実施するための試験コードを生成する（ステップ２３５）。
【００５５】
ＧＵＩ部品単位での試験コードの作成方式について説明する。
【００５６】
上述したように図３には画面項目設計書２１の記述例が示されている。図３を参照すると、画面項目設計書２１には、ＧＵＩプログラムを構成するＧＵＩ部品の情報として、項目名３０１と、コントロール種別３０２と、タブオーダー３０３、コンテンツ情報３０４、および配置情報３０５が格納されている。項目名３０１は、設計するＧＵＩプログラムの中で使用するＧＵＩ部品の名称となる。コントロール種別３０２はＧＵＩ部品の種別を表す。ここでは画面項目設計書２１に記載する内容として上記を例示しているが、その他の情報を追加で定義してもよい。
【００５７】
図７は、入力条件設計書４０の記述例を示す図である。
【００５８】
入力条件設計書４０には、テキスト入力やボタン操作などの入力が可能なＧＵＩ部品のそれぞれについて、その入力条件が規定されている。これが単体テストコードを生成するための設計書となる。
【００５９】
入力条件設計書４０のテーブル４００には、各ＧＵＩ部品について、コントロール種別４０１、項目名４０２、入力条件値４０３が記述されている。コントロール種別４０１は、単体試験を実施するＧＵＩ部品の種別を表す。項目名４０２は単体試験を実施する項目を表すものである。入力条件値４０３には、当該項目に入る基本の値、入力可能な最小値および最大値、入力可能でない範囲の値が記述されている。なお、ここでは図７に示したものを例示したが、その他の情報を追加記載してもよい。また、入力条件は通常の入力条件の他に、最小入力値および最大入力値等については、試験を実施する分だけ定義を記述することにしてもよい。
【００６０】
次に本実施形態の図３と図４において、ＧＵＩ部品単位での試験コード作成方式について説明する。ＧＵＩプログラム自動生成装置１０は画面項目設計書２１からコントロール種別３０２と、項目名３０１を抽出し、そこから入力条件設計書の中からコントロール種別３０２と一致するコントロール種別４０１を検索し、一致した検索結果の中から項目名３０１と項目名４０２が一致する項目を検索する。一致した行が存在した場合は、入力条件値４０３から入力条件を抽出して、ＧＵＩ部品に対する入力試験コードを自動的に生成する。別のＧＵＩプログラムを設計する際に既存のＧＵＩプログラムと同じ入力項目が存在する場合、作成済みの入力条件設計書４０に定義したコントロール種別４０１と項目名４０２と同じ定義で画面項目設計書を作成することで、入力条件設計書４０を共有して使用することができる。単体試験用ソースコード６４は、単体動作可能なソースコードを生成するでもよいし、一般的な単体試験用プログラムを利用する形のソースコードを生成することでもよい。
【００６１】
ステップ２３５で各部品毎の試験コード生成が完了した後、自動生成対象のＧＵＩプログラムが使用する他通信網用のインタフェースを判別し（ステップ２４０）、対象のインタフェース設計書３０をメモリ１１に読み出す（ステップ２４５）。ここまでのステップまでに準備された情報を用いて、ステップ２５０にてＧＵＩレイアウトソースコード６１、画面間シナリオ定義ソースコード６２、通信インタフェース定義６３、単体試験用ソースコード６４、イベント動作定義ソースコード６５を生成する。
【００６２】
画面項目設計書２１に、図７で示すような独自処理の定義が存在するかをチェック（ステップ２５５）し、存在する場合には独自処理を記載するための雛形ソースコードとして、独自処理雛形ソースコード６６を生成する（ステップ２６０）。本実施形態における独自処理の記述例について、図７を用いて説明する。
【００６３】
上述した図４のテーブル５００において、項目名５０３は、独自処理を呼び出す項目を示し、コントロール種別５０２は、その項目の制御に関する種別を示している。独自処理名５０４は、独自処理の名称である。これは、画面項目設計書２１における独自処理について、呼び出し方（項目名５０３、コントロール種別５０２、およびアクション５０１）と、呼び出し先ファンクション名称（独自処理名５０４）とを対応づけた紐付け情報を定義したものである。
【００６４】
アクション５０１には、ＧＵＩ部品に対してどのような動作を実施した場合に呼び出し先ファンクションが呼び出されるかが定義される。コントロール種別５０２と項目名５０３は、どのＧＵＩ部品に対する独自処理なのかが定義される。独自処理名５０４は呼び出し先ファンクションのファンクション名称が定義される。
【００６５】
なお、本実施形態では、独自処理の部分の定義を画面項目設計書２１中に記述する形態を例示するが、それを独立した設計書として作成することにしてもよい。
【００６６】
また、図４におけるコントロール種別５０２および項目名５０３は、図３におけるコントロール種別３０２および項目名３０１と紐付くように定義し、それが示すＧＵＩ部品に対して、アクション５０１に定義された動作が行われたときに、独自処理名５０４の独自処理のファンクションが呼び出されるような定義が設定される。
【００６７】
また、図３、図４、図７では、一例として表形式で各情報を定義しているが、ＸＭＬ、ＣＳＶまたはその他の形式で情報を定義してもよい。
【００６８】
上述したように、本実施形態では、ＧＵＩプログラムを製造する際に独自処理部分をＧＵＩプログラムの基本部分とは独立したソースコードで生成することで、ソースコードの可読性を向上させることが可能となる。また、独自部分のみの改修が必要となった場合でも、ソースコードが独立しているため、プログラムの再構築作業は独自部分箇所のみ実施すればよい。
【００６９】
図８は、ＧＵＩプログラム自動生成装置１０を用いたＧＵＩプログラム開発の流れを示すフローチャートである。
【００７０】
はじめに、ＧＵＩプログラムの開発を行うにあたり、ＧＵＩプログラム自動生成装置１０で生成するための基本情報として、画面設計書２０を作成する（ステップ６００）。次に、作成するＧＵＩプログラムのＧＵＩ部品に対し、単体試験の要否および必要な試験内容を決定し、それを基に入力条件設計書４０を作成する（ステップ６１０）。また、作成するＧＵＩプログラムが他サーバ向けに新しい通信インタフェースを使用する場合、その通信インタフェースを規定するインタフェース設計書３０を作成する（ステップ６２０）。なお、既存の通信インタフェースを利用するのであれば、インタフェース設計書３０を作成する必要はない。
【００７１】
次に、共通定義設計書７０が既に存在するが新しいＧＵＩ部品を追加するなどの修正がある場合など、共通定義設計書７０における共通定義を修正する必要があるか否かを判断し（ステップ６３０）、必要に応じて共通定義設計書７０を修正する（ステップ６４０）。
【００７２】
以上、これら設計書の作成が完了した後、ＧＵＩプログラム自動生成装置１０にて、設計書のチェックを実施する（ステップ２１０）。設計書に不備が存在していた場合は設計書を修正し（ステップ６５０）、再度設計書チェックを実施することを、不備がなくなるまで繰り返す。設計書に不備が無くなったら、ＧＵＩプログラム自動生成装置１０にて、各ソースコードの自動生成を実施する（ステップ２５０）。なお、このとき独自処理が存在するのであれば、ＧＵＩプログラム自動生成装置１０は独自処理雛形ソースコード６６も生成する。このとき生成される独自処理雛形ソースコード６６は、独自処理名５０４で定義されたファンクション名のみが定義された状態である。そのため、独自処理の実装が必要であれば、独自処理の実装を行う（ステップ６６０）。その場合、ステップ６６０で実装した独自処理の部分についての確認を実施する（ステップ６７０）。
【００７３】
更に、単体試験用ソースコード６４を用いた対象画面のＧＵＩプログラムの単体試験を実施する（ステップ６８０）。
【００７４】
なお、図中には記載していないが、ステップ６８０で想定通りの動作が起こらない場合、ステップ６５０に戻り、それ以降の作業を再度実施する。本実施形態のＧＵＩプログラム自動生成装置１０が生成した自動生成ソースコード６０は、独自処理の部分と、テンプレートを用いて生成された部分とが互いに独立しているので、修正内容が独自処理に影響しないものであれば、ステップ６６０およびステップ６７０を省略することができる。
【００７５】
また、ステップ６７０で想定通りの動作が起こらない場合は、ステップ６６０に戻りそれ以降の作業を再度実施するだけでよい。独自処理の部分に修正や設計変更が発生した場合、本実施形態では独自処理雛形ソースコード６６に処理の実装を行ったソースコードの部分に対してのみ修正を実施すればよく、テンプレートから自動生成された他のソースコードに影響を及ぼすことがない。
【００７６】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【００７７】
１０…ＧＵＩプログラム自動生成装置、１１…メモリ、１２…ＣＰＵ、１５…テンプレート選択部、１６…ソースコード生成部、１６１…画面間シナリオ定義作成部、１６２…試験コード生成部、１６３…生成処理部、１６４…通信インタフェース特定部、１７…独自処理有無判定部、１８…雛形ソースコード生成部、１９…設計書チェック部、２０…画面設計書、２１…画面項目設計書、２２…シナリオ定義設計書、３０…インタフェース設計書、３００…テーブル、３０１…項目名、３０２…コントロール種別、３０３…タブオーダー、３０４…コンテンツ情報、３０５…配置情報、４０…入力条件設計書、４００…テーブル、４０１…コントロール種別、４０２…項目名、４０３…入力条件値、５０…ソースコードテンプレートファイル、５００…テーブル、５０１…アクション、５０２…コントロール種別、５０３…項目名、５０４…独自処理名、６０…自動生成ソースコード、６１…ＧＵＩレイアウトソースコード、６２…画面間シナリオ定義ソースコード、６３…通信インタフェース定義、６４…単体試験用ソースコード、６５…イベント動作定義ソースコード、６６…独自処理雛形ソースコード、７０…共通定義設計書、８０…外部記憶装置
【図１】
2015148925.tif 000003
【図２】
2015148925.tif 000004
【図３】
2015148925.tif 000005
【図４】
2015148925.tif 000006
【図５】
2015148925.tif 000007
【図６】
2015148925.tif 000008
【図７】
2015148925.tif 000009
【図８】
2015148925.tif 000010