(57)【要約】【課題】画面情報のソースコードの追記後に部品仕様の変更を行なった場合でも、当該追記を有効とした上で変更後の部品仕様をもとにしたソースコードの再生成を行なう。【解決手段】ソースコードテンプレート情報を、生成後のソースコードの追記の可否に応じて区分する。ソースコード生成部９は、ソースコード生成の依頼を受けると、テンプレート名を選択し、このテンプレート名と関わる拡張ポイントが有効であるか否かを判別する。ソースコード生成部９は、拡張ポイントが有効でない場合には、選択済みのテンプレート名に関わるソースコードは追記がなされないソースコードであるとみなし、当該テンプレート名をもとにしたソースコードの生成を行ない、拡張ポイントが有効である場合には、選択済みのテンプレート名に関わるソースコードは追記がなされた可能性があるソースコードであるとみなし、ソースコードの生成を中止する。【選択図】      図１
2008299423.tif 000002
【特許請求の範囲】
【請求項１】
出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第１のテンプレート情報および生成後のソースコードの追記が可能である第２のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、
前記第１のテンプレート情報中の変数に対応し、ソースコード生成後の変更が可能であるソフトウェア部品仕様情報、および前記第２のテンプレート情報中の変数に対応し、ソースコード生成後の変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段と、
前記各テンプレート情報および前記部品仕様情報をもとに前記ソースコードを生成する生成手段と、
前記生成手段により前記第２のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第２のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第１の入力受付手段と、
前記生成手段により生成されたソースコードを前記第１の入力受付手段により受け付ける入力にしたがって変更する第１の変更手段と、
前記生成手段によるソースコードの生成後、前記仕様情報記憶手段に記憶されて前記第１のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第２の入力受付手段と、
前記対応する部品仕様情報を前記第２の入力受付手段により受け付ける入力にしたがって変更する第２の変更手段と、
前記第１のテンプレート情報および前記第２の変更手段により変更された部品仕様情報をもとにソースコードの再生成を行なうとともに、前記第２のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第２のテンプレート情報中の変数に対応する部品仕様情報をもとにしたソースコードの再生成を行なわないソースコード処理手段と
を備えたことを特徴とする情報処理装置。
【請求項２】
出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第１のテンプレート情報および生成後のソースコードの追記が可能である第２のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、
前記第１のテンプレート情報中の変数に対応し、ソースコード生成後の変更が可能であるソフトウェア部品仕様情報、および前記第２のテンプレート情報中の変数に対応し、ソースコード生成後の変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段と、
前記各テンプレート情報および前記部品仕様情報をもとに前記ソースコードを生成する第１の生成手段と、
前記第１の生成手段により前記第２のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第２のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第１の入力受付手段と、
前記第１の生成手段により生成されたソースコードを前記第１の入力受付手段により受け付ける入力にしたがって変更する第１の変更手段と、
前記第１の生成手段によるソースコードの生成後、前記仕様情報記憶手段に記憶されて前記第１のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第２の入力受付手段と、
前記対応する部品仕様情報を前記第２の入力受付手段により受け付ける入力にしたがって変更する第２の変更手段と、
前記第１の生成手段により前記ソースコードが生成されたか否かを判別する判別手段と、
前記ソースコードが前記第１の生成手段により生成されていないと前記判別手段が判別した場合に、前記第１のテンプレート情報および前記第２の変更手段により変更された部品仕様情報をもとにソースコードを生成し、かつ前記第２のテンプレート情報および前記仕様情報記憶手段に記憶されて当該第２のテンプレート情報中の変数に対応する部品仕様情報をもとにソースコードを生成する第２の生成手段と、
前記対応するソースコードが前記第１の生成手段により生成されたと前記判別手段が判別した場合に、前記第１のテンプレート情報および前記第２の変更手段により変更された部品仕様情報をもとにソースコードを再生成し、前記第２のテンプレート情報および前記仕様情報記憶手段に記憶されて当該第２のテンプレート情報中の変数に対応する部品仕様情報をもとに前記第１の生成手段により生成されたソースコードを前記再生成にともなって読み出すソースコード処理手段と
を備えたことを特徴とする情報処理装置。
【請求項３】
前記第１のテンプレート情報のクラスは前記第２のテンプレート情報のクラスの親クラスであることを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第１のテンプレート情報および生成後のソースコードの追記が可能である第２のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、前記第１のテンプレート情報中の変数に対応し、ソースコード生成後の変更が可能であるソフトウェア部品仕様情報、および前記第２のテンプレート情報中の変数に対応し、ソースコード生成後の変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段とを備えたコンピュータを、
前記各テンプレート情報および前記部品仕様情報をもとに前記ソースコードを生成する生成手段、
前記生成手段により前記第２のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第２のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第１の入力受付手段、
前記生成手段により生成されたソースコードを前記第１の入力受付手段により受け付ける入力にしたがって変更する第１の変更手段、
前記生成手段によるソースコードの生成後、前記仕様情報記憶手段に記憶されて前記第１のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第２の入力受付手段、
前記対応する部品仕様情報を前記第２の入力受付手段により受け付ける入力にしたがって変更する第２の変更手段、および
前記第１のテンプレート情報および前記第２の変更手段により変更された部品仕様情報をもとに前記ソースコードの再生成を行なうとともに前記第２のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第２のテンプレート情報中の変数に対応する部品仕様情報をもとにしたソースコードの再生成を行なわないソースコード処理手段
として機能させるようにした情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面情報のソースコードを生成する情報処理装置および情報処理プログラムに関する。
【背景技術】
【０００２】
従来、例えば特許文献１に開示されるように、設計書となる部品仕様情報をもとにソフトウェア部品を生成する技術がある。
【０００３】
このように生成したソフトウェア部品のソースコードに対し、管理者の入力操作により追記を行なった場合、この変更箇所に開始行、終了行を示す特別なコメントを挿入することにより、当初生成された箇所と追記がなされた箇所とを区分している。
【特許文献１】特開平１１−２９６４１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述したようにソースコードに追記がなされた後、このソースコードの生成に用いた部品仕様情報を変更しなければならない場合がある。この場合、変更がなされた部品仕様情報をもとにソースコードを再生成する必要があるが、この再生成されたソースコードには前述した追記部分が反映されないので、当該追記が無効となってしまう。
【０００５】
そこで、本発明の目的は、画面情報のソースコードの追記後に部品仕様の変更を行なった場合でも、当該追記を有効とした上で変更後の部品仕様をもとにしたソースコードの再生成を行なうことが可能になる情報処理装置および情報処理プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
すなわち、本発明に係わる情報処理装置は、出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第１のテンプレート情報および生成後のソースコードの追記が可能である第２のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、第１のテンプレート情報中の変数に対応し、変更が可能であるソフトウェア部品仕様情報、および第２のテンプレート情報中の変数に対応し、変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段と、各テンプレート情報および部品仕様情報をもとにソースコードを生成する生成手段と、生成手段により第２のテンプレート情報および仕様情報記憶手段に記憶されて第２のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第１の入力受付手段と、生成手段により生成されたソースコードを第１の入力受付手段により受け付ける入力にしたがって変更する第１の変更手段と、生成手段によるソースコード生成後、仕様情報記憶手段に記憶されて第１のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第２の入力受付手段と、対応する部品仕様情報を第２の入力受付手段により受け付ける入力にしたがって変更する第２の変更手段とを備え、第１のテンプレート情報および第２の変更手段により変更された部品仕様情報をもとにソースコードの再生成を行なうとともに第２のテンプレート情報および仕様情報記憶手段に記憶されて第２のテンプレート情報中の変数に対応する部品仕様情報をもとにしたソースコードの再生成を行なわないことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画面情報のソースコードの追記後に部品仕様の変更を行なった場合でも、当該追記を有効とした上で変更後の部品仕様をもとにしたソースコードの再生成を行なうことができる。
【発明を実施するための最良の形態】
【０００８】
以下図面により本発明の実施形態について説明する。  
図１は、本発明の実施形態にしたがったソフトウェア部品生成装置の構成例を示すブロック図である。
【０００９】
図１に示すように、本発明の実施形態にしたがったソフトウェア部品生成装置は、装置全体の処理動作を司る制御部１、記憶装置２、入力受付手段である入力装置３、出力装置４、部品仕様読込部５、部品仕様変換部６、テンプレート判別部７、ソースコード判別部８、ソースコードの生成手段およびソースコード処理手段であるソースコード生成部９を備え、それぞれがバス１０を介して相互に接続される。
【００１０】
記憶装置２は、ハードディスクドライブや不揮発性メモリなどの記憶媒体であり、制御部１、部品仕様読込部５、部品仕様変換部６、テンプレート判別部７、ソースコード判別部８、ソースコード生成部９による実行対象の制御用プログラムを記憶する他、仕様情報記憶手段である部品仕様記憶部２１、テンプレート情報記憶手段であるテンプレート記憶部２２、ソースコード記憶部２３を有する。
【００１１】
入力装置３は例えばキーボードやマウスであり、出力装置４は例えばディスプレイ装置やプリンタ装置である。入力装置３は、ソフトウェア部品開発者による部品仕様の記述や変更、部品ソースコード生成の指示、生成後のソースコードの追記などの入力操作を受け付ける。
【００１２】
また、制御部１は、ソフトウェア部品開発者による入力装置３による入力操作にしたがって、ソースコード記憶部２３に記憶される生成済みのソースコードを変更したり、部品仕様記憶部２１に記憶される部品仕様情報を変更したりする変更手段としても機能する。
【００１３】
部品仕様記憶部２１には、ソフトウェアの或る機能を実行可能な画面全体の仕様情報や当該画面の中に配置される個々のソフトウェア部品（コンポーネント）の画面項目名やサイズなどの仕様を定義するための部品仕様情報が記憶される。
【００１４】
ここで、部品仕様情報は、ソフトウェアの或る機能を実行可能な画面全体に関わる仕様情報、当該画面の中に配置される個々のソフトウェア部品の仕様情報、およびソースコードテンプレートの仕様情報に区分される。
【００１５】
図２は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置の部品仕様記憶部に記憶されるソフトウェアの或る機能を実行可能な画面全体の仕様情報を表形式で示す図である。ただし、ソフトウェアには種々の機能が実装されるものがあるため、本発明の実施形態では簡単のため一つの画面全体の仕様情報を表したものを挙げるが、一つに限定されることはない。例えば、別画面（例：見積もり入力画面）に対しては別のレコードで当該別画面に対する画面全体の仕様情報が作成されているものとする。
【００１６】
図３は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置２の部品仕様記憶部２１に記憶される個々の部品の仕様情報を表形式で示す図である。  
図４は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置２の部品仕様記憶部２１に記憶されるソースコードテンプレートの仕様情報を表形式で示す図である。
【００１７】
図２に示したソフトウェアの画面全体の仕様情報のテーブル名は「ＳＷ＿ＳＰＥＣ」である。この仕様情報のカラム名、つまり項目名は「画面名（ＳＷ＿ＶＩＥＷ＿ＮＡＭＥ）」、「ソフトウェア部品パッケージ名（ＳＷ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ）」、「ソフトウェア部品クラス名（ＳＷ＿ＣＬＡＳＳ＿ＮＡＭＥ）」、「部品幅（ＣＯＭＰ＿ＷＩＤＴＨ）」および「部品高さ（ＣＯＭＰ＿ＨＥＩＧＨＴ）」である。
【００１８】
また、図３に示した個々の部品の仕様情報のテーブル名は「ＣＯＭＰ＿ＳＰＥＣ」である。この仕様情報のカラム名は「部品名（ＣＯＭＰ＿ＮＡＭＥ）」、「部品パッケージ名（ＣＯＭＰ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ）」、「部品クラス名（ＣＯＭＰ＿ＣＬＡＳＳ＿ＮＡＭＥ）」、「部品配置行（ＣＯＭＰ＿ＲＯＷ）」および「部品配置列（ＣＯＭＰ＿ＣＯＬＵＭＮ）」である。
【００１９】
また、図４に示したソースコードテンプレートの仕様情報のファイル名は「ＴＥＭＰＬＡＴＥ＿ＳＰＥＣ」である。この仕様情報のカラム名は「ソースコード名（ＳＯＵＲＣＥ＿ＮＡＭＥ）」、「ソースコードテンプレート名（ＴＥＭＰＬＡＴＥ＿ＮＡＭＥ）」および「拡張ポイント（ＥＸＴＥＮＴＩＯＮ＿ＰＯＩＮＴ」」である。
【００２０】
この拡張ポイントとは、対応するソースコードテンプレート情報をもとに生成されるソースコードが入力装置３の操作にしたがった追記の対象となるか否かを示す情報である。拡張ポイントが「０」の場合は、対応するソースコードテンプレート情報をもとに生成されるソースコードが入力装置３に対する操作による追記ができないことを示し、拡張ポイントが「１」の場合は、対応するソースコードテンプレート情報をもとに生成されるソースコードが入力装置３に対する操作による追記が可能であることを示す。
【００２１】
また、本実施形態では、拡張ポイントが「０」であるソースコードテンプレート名（例えば図４に示したソースコードテンプレートの仕様情報の「ＡｐｐｌｅｔＡｃｔｉｏｎ．ｖｍ」）に対応するソースコードテンプレート情報中の変数と関わる部品仕様情報の値（例えば図３に示した個々の部品仕様情報の部品名「得意先」に対応する部品配置行「２」や部品配置列「１」）は、当該部品仕様情報をもとにしたソースコード生成後に制御部１が入力装置３に対する操作により変更可能な値であるとする。
【００２２】
また、拡張ポイントが「１」であるソースコードテンプレート名（例えば図４に示したソースコードテンプレートの仕様情報の「ＥｘｔｅｎｄｅｄＡｐｐｌｅｔＡｃｔｉｏｎ．ｖｍ」）に対応するソースコードテンプレート情報中の変数と関わる部品仕様情報の値（例えば図３に示した個々の部品仕様情報の部品名「受注番号」に対応する部品配置行「１」や部品配置列「１」）は、当該部品仕様情報をもとにしたソースコード生成後に制御部１が入力装置３に対する操作により変更がなされない値であるとする。
【００２３】
図５は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置のテンプレート記憶部に記憶されるソースコードテンプレート情報の一例を示す図である。  
テンプレート記憶部２２には、ソフトウェア部品のソースコードテンプレート情報が記憶される。
【００２４】
ソースコードテンプレート情報は、ソフトウェア部品のソースコードで汎用的に利用可能な範囲の典型的なひな形を表す情報である。図５に示したソースコードテンプレート情報は画面全体のクラスのソースコードテンプレート情報であり、Ｖｅｌｏｃｉｔｙ（登録商標）等のテンプレート言語の文法に従って記述された情報である。
【００２５】
ソフトウェア部品のソースコードテンプレート情報は、生成対象のクラスのソースコード毎に１ファイルがテンプレート記憶部２２に記憶される。つまり、１つのクラスが生成されるためには１つのソースコードテンプレート情報が必要となるため、クラスとソースコードテンプレート情報が１対１の関係で対応する。
【００２６】
図６は、本発明の実施形態にしたがったソフトウェア部品生成装置が処理するソースコードテンプレートの構造の一例をツリー形式で示す図である。図７は、本発明の実施形態にしたがったソフトウェア部品生成装置が処理する部品の構造の一例をツリー形式で示す図である。
【００２７】
ソースコードテンプレート情報の構造は、出力されるソフトウェア部品の構造と一致する。  
ここで、各クラスのソースコードテンプレート情報は複数に分割しておく。図６に示すように、ソースコードテンプレート情報のクラスは、追記と関わりの無いクラスとして、画面全体のクラス３１、画面全体の機能を表すクラス３２、サーバの機能のインタフェース３４、サーバの機能のクラス３５に区分される。また、追記と関わりのあるクラスとして、画面全体の機能を拡張するクラス３３およびサーバの機能を拡張するクラス３６に区分される。クラス３２はクラス３３の親クラスであり、クラス３５はクラス３６の親クラスである。
【００２８】
これにより、生成後のソフトウェア部品のクラスは、図７に示すように、追記と関わりの無いクラスとして、画面全体のクラス４１、複数の部品クラス４２、画面全体の機能を表すクラス４３、サーバの機能のインタフェース４５、サーバの機能のクラス４６に区分される。また、追記と関わりのあるクラスとして、画面全体の機能を拡張するクラス４４およびサーバの機能を拡張するクラス４７に区分される。
【００２９】
部品仕様読込部５は、部品仕様記憶部２１に格納された部品仕様情報を読み込む。部品仕様変換部６は、部品仕様読込部５で読み取った部品仕様情報を予め定められた形式に変換する。ソースコード生成部９は、部品仕様変換部６で変換した部品仕様情報と部品ソースコードテンプレートとをもとに、部品ソースコードを生成する。
【００３０】
図８は、本発明の実施形態にしたがったソフトウェア部品生成装置が生成するソースコードの一例を示す図である。  
部品ソースコードは、部品ソースコードテンプレート情報の変数部分、つまり「＄｛変数名｝、＄｛変数名．プロパティ名｝」等と表記された部分が、部品仕様情報で示された値に変換された情報である。
【００３１】
例えば、図５に示したソースコードテンプレート情報中の「＄｛ＳＷ＿ＳＰＥＣ．ＳＷ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ｝」は、図８に示したソースコードでは、テーブル名「ＳＷ＿ＳＰＥＣ」の情報、つまり図２に示した画面全体の仕様情報中の項目「ＳＷ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ」の値「ｊｐ．ｃｏ．ｔｏｓｈｉｂａ．ｓｗ＿ｃｏｍｐ．ｉｎｐｕｔ＿ｊｕｃｈｕ」に変換される。
【００３２】
また、図５に示した当該ソースコードテンプレート情報中の「＄｛ＣＯＭＰ．ＣＯＭＰ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ｝」は、図８に示したソースコードでは、１行目としてテーブル名「ＣＯＭＰ＿ＳＰＥＣ」の情報、つまり図３に示した個々の部品の仕様情報中の項目「ＣＯＭＰ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ」の１行目の値「ｊｐ．ｃｏ．ｔｏｓｈｉｂａ．ｃｏｍｐ．ｊｕｃｈｕ」に変換され、２行目として前述した項目「ＣＯＭＰ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ」の２行目の値「ｊｐ．ｃｏ．ｔｏｓｈｉｂａ．ｃｏｍｐ．ｔｏｋｕｉｓａｋｉ」に変換される。
【００３３】
また、図５に示した当該ソースコードテンプレート情報中の「＄｛ＣＯＭＰ．ＣＯＭＰ＿ＣＬＡＳＳ＿ＮＡＭＥ｝」は、図８に示したソースコードでは、１行目としてテーブル名「ＣＯＭＰ＿ＳＰＥＣ」の情報、つまり図３に示した個々の部品の仕様情報中の項目「ＣＯＭＰ＿ＣＬＡＳＳ＿ＮＡＭＥ」の１行目の値「ＪｕｃｈｕＰａｎｅｌ」に変換され、２行目として前述した項目「ＣＯＭＰ＿ＰＡＣＫＡＧＥ＿ＮＡＭＥ」の２行目の値「ＴｏｋｕｉｓａｋｉＰａｎｅｌ」に変換される。
【００３４】
また、図５に示したソースコードテンプレート情報中の「＄｛ＳＷ＿ＳＰＥＣ．ＳＷ＿ＣＬＡＳＳ＿ＮＡＭＥ｝」は、図８に示したソースコードでは、ファイル名「ＳＷ＿ＳＰＥＣ」の情報、つまり図２に示した画面全体の仕様情報中の項目「ＳＷ＿ＣＬＡＳＳ＿ＮＡＭＥ」の値「ＩｎｐｕｔＪｕｃｈｕ」に変換される。
【００３５】
図９は、本発明の実施形態にしたがったソフトウェア部品生成装置が生成し、追記前のソースコードの一例を示す図である。図１０は、本発明の実施形態にしたがったソフトウェア部品生成装置が生成し、追記後のソースコードの一例を示す図である。
【００３６】
図９に示したソースコードは、部品仕様情報およびソースコードテンプレート情報にしたがって生成されたソースコードであり、図１０に示したソースコードのうち、点線で囲まれた３行目から１１行目の部分は図９に示したソースコードに対する追記部分である。
【００３７】
次に、図１に示した構成のソフトウェア部品生成装置の動作について説明する。図１１は、本発明の実施形態にしたがったソフトウェア部品生成装置の処理動作の一例を示すフローチャートである。
【００３８】
まず、制御部１は入力装置３による入力操作にしたがって、部品仕様情報を記憶装置２の部品仕様記憶部２１に記憶する（ステップＳ１）。この部品仕様情報のうち、画面全体の仕様情報にはテーブル名として「ＳＷ＿ＳＰＥＣ」が付され、個々のソフトウェア部品の仕様情報にはテーブル名として「ＣＯＭＰ＿ＳＰＥＣ」が付される。
【００３９】
そして、制御部１は、ソフトウェア部品の生成依頼のための入力操作を入力装置３から受け付ける（ステップＳ２）。この依頼の引数は、ステップＳ１の処理で入力した部品仕様情報の名称である。
【００４０】
すると、制御部１は、部品仕様読込部５に対して部品仕様情報の取得を依頼する（ステップＳ３）。この依頼の引数はステップＳ２の処理による依頼で渡された部品仕様情報の名称である。
【００４１】
図１２は、本発明の実施形態にしたがったソフトウェア部品生成装置により処理する部品仕様情報の内部構造の一例をツリー形式で示す図である。  
ステップＳ３の処理後、部品仕様読込部５は部品仕様情報の読み込みを行い、この読み込んだ部品仕様情報を、図１２に示すような内部形式にし、制御部１に返す（ステップＳ４）。図１２では、部品仕様情報の内部形式を、クラス構造を記述する一般的な表記であるＵＭＬのクラス図の形式で記述している。
【００４２】
図１２では、最上位で仕様全体を表す「Ｃｏｎｔｅｘｔ」の下位にソフトウェアの画面全体の仕様を表す「Ｍａｐ」が位置し、この下位にソフトウェアにおける個々の仕様を表す「Ｓｔｒｉｎｇ」が位置する。図１２において、Ｃｏｎｔｅｘｔ５１に対してＭａｐ５２とＬｉｓｔ５４が対応し、Ｍａｐ５２に対して複数のＳｔｒｉｎｇ５３が対応する関係が成立する。具体的には、このＭａｐ５２とＳｔｒｉｎｇ５３との関係は、図２のカラム名（画面名、ソフトウェア部品パッケージ名、ソフトウェア部品クラス名、部品幅、部品高さ）とそれらカラム名に対する値（受注入力、ｊｐ．ｃｏ．ｔｏｓｈｉｂａ．ｓｗ＿ｃｏｍｐ．ｉｎｐｕｔ＿ｉｕｃｈｕ、ｉｎｐｕｔＪｕｃｈｕ、１００，２００）の両者を含んだものがＭａｐ５２に対応し、後者のカラム名に対する値がＳｔｒｉｎｇ５３に対応する。  前述した「Ｃｏｎｔｅｘｔ」に格納するキーはソフトウェア全体の仕様情報のテーブル名とし、「Ｍａｐ」に格納するキーはソフトウェアにおける部品の仕様情報のカラム名とする。
【００４３】
また、「Ｃｏｎｔｅｘｔ」の下位にはソフトウェア部品の画面に配置する個々の部品全体の仕様を表す「Ｌｉｓｔ」がさらに位置し、この下位にソフトウェア部品の画面に配置する個々の部品の仕様の１行分を表す「Ｍａｐ」が位置し、この下位にソフトウェア部品の画面に配置する個々の部品の仕様を表す「Ｓｔｒｉｎｇ」が位置する。
【００４４】
図１２において、Ｌｉｓｔ５４に対して複数のＭＡＰ５５が対応し、このＭＡＰ５５に対して複数のＳｔｒｉｎｇ５６が対応する関係が成立する。具体的には、図３のカラム名とそれらカラム名に対する各行の値を含んだものがＬｉｓｔ５４に対応する。また、ＭＡＰ５５の一つ目とこれに対応するＳｔｒｉｎｇ５６との関係は、図３のカラム名（部品名、部品パッケージ名、部品クラス名、部品配置行、部品配置列）とそれらカラム名に対する１行目の値（受注番号、ｊｐ．ｃｏ．ｔｏｓｈｉｂａ．ｃｏｍｐ．ｉｕｃｈｕ、ＪｕｃｈｕＰａｎｅｌ、１，２）の両者を含んだものをＭａｐ５５に対応し、後者のカラム名に対する値がＳｔｒｉｎｇ５６に対応する。
【００４５】
また、ＭＡＰ５５の二つ目とこれに対応するＳｔｒｉｎｇ５６との関係は、図３のカラム名（部品名、部品パッケージ名、部品クラス名、部品配置行、部品配置列）とそれらカラム名に対する２行目値（得意先、ｊｐ．ｃｏ．ｔｏｓｈｉｂａ．ｃｏｍｐ．ｔｏｋｕｉｓａｋｉ、ＴｏｋｕｉｓａｋｉＰａｎｅｌ、２，１）の両者を含んだものがＭａｐ５５に対応し、後者のカラム名に対する値がＳｔｒｉｎｇ５６に対応する。  
前述した「Ｃｏｎｔｅｘｔ」には個々の部品仕様情報のテーブル名がさらに格納され、「Ｌｉｓｔ」の下位の「Ｍａｐ」には個々の部品仕様情報のカラム名が格納される。
【００４６】
制御部１は、部品仕様情報の内部形式の入力後、部品仕様変換部６に出力画面側の部品仕様情報の変換を依頼する（ステップＳ５）。この依頼では部品仕様情報の内部形式を引数とする。また、ここではサーバ側の部品仕様情報は変換の対象とならない。
【００４７】
部品仕様変換部６は、部品ソースコードテンプレート情報の形式に合わせて、部品仕様情報の変換処理を行なう（ステップＳ６）。  
具体的には、部品仕様変換部６は、以下の式（１）、図３に示した個々の部品仕様情報の「部品配置行（ＣＯＭＰ＿ＲＯＷ）」、および図２に示した画面全体の仕様情報の「部品幅（ＣＯＭＰ＿ＷＩＤＴＨ）」をもとに「部品配置Ｘ座標（ＣＯＭＰ＿Ｘ）」を計算する。
【００４８】
ＣＯＭＰ＿Ｘ＝(ＣＯＭＰ＿ＲＯＷ−１)＊ＣＯＭＰ＿ＷＩＤＴＨ＋１０  …式（１）
また、部品仕様変換部６は、以下の式（２）、図３に示した個々の部品仕様情報の「部品配置列（ＣＯＭＰ＿ＣＯＬＵＭＮ）」、および図２に示した画面全体の仕様情報の「部品高さ（ＣＯＭＰ＿ＨＥＩＧＨＴ）」をもとに「部品配置Ｙ座標（ＣＯＭＰ＿Ｙ）」を計算する。
【００４９】
ＣＯＭＰ＿Ｙ＝(ＣＯＭＰ＿ＣＯＬＵＭＮ−１)＊ＣＯＭＰ＿ＨＥＩＧＨＴ＋１０  …式（２）
また、部品仕様変換部６は、以下の式（３）、および図２に示した画面全体の仕様情報の「部品幅（ＣＯＭＰ＿ＷＩＤＴＨ）」をもとに「部品配置幅（ＣＯＭＰ＿Ｗ）」を計算する。
【００５０】
ＣＯＭＰ＿Ｗ＝ＣＯＭＰ＿ＷＩＤＴＨ  …式（３）
また、部品仕様変換部６は、以下の式（４）、および図２に示した画面全体の仕様情報の「部品高さ（ＣＯＭＰ＿ＨＥＩＧＨＴ）」をもとに「部品配置高さ（ＣＯＭＰ＿Ｈ）」を計算する。
【００５１】
ＣＯＭＰ＿Ｈ＝ＣＯＭＰ＿ＨＥＩＧＨＴ  …式（４）
図１３は、本発明の実施形態にしたがったソフトウェア部品生成装置により処理する個々の部品仕様情報の変換前の状態と変換後の状態の一例を示す図である。  
部品仕様変換部６は、前述した計算結果をもとに、図３に示した個々の部品仕様情報の「部品配置行（ＣＯＭＰ＿ＲＯＷ）」と「部品配置列（ＣＯＭＰ＿ＣＯＬＵＭＮ）」を、図１３に示すように「部品配置Ｘ座標（ＣＯＭＰ＿Ｘ）」、「部品配置Ｙ座標（ＣＯＭＰ＿Ｙ）」、「部品配置幅（ＣＯＭＰ＿Ｗ）」および「部品配置高さ（ＣＯＭＰ＿Ｈ）」に変換し、この変換結果の内部形式を制御部１に返す。  
以後、部品仕様変換部６は、図３に示した個々の部品仕様情報で示される個々の部品毎に変換処理を行なう。
【００５２】
そして、制御部１は、ソースコード生成部９に対し、部品ソースコードの生成を依頼する（ステップＳ７）。この依頼では、ステップＳ６の処理で変換された部品仕様情報の内部形式を引数とする。
【００５３】
ソースコード生成部９は、記憶装置２の部品仕様記憶部２１に記憶された部品仕様情報中のソースコードテンプレートの仕様情報中のソースコード名のそれぞれに対応するソースコードの生成を行う。
【００５４】
具体的には、ソースコード生成部９は、記憶装置２の部品仕様記憶部２１に記憶された、図４に示したソースコードテンプレートの仕様情報に記述されたソースコードテンプレート名のうち１つを選択する（ステップＳ８）。
【００５５】
そして、ソースコード生成部９は、この選択したテンプレート名に図４に示したソースコードテンプレートの仕様情報上で対応付けられる拡張ポイントが有効、つまり「１」であるか否かを判別する（ステップＳ９）。
【００５６】
ソースコード生成部９は、ステップＳ９の処理で「ＹＥＳ」と判別した場合には、ステップＳ８の処理で選択したソースコードテンプレート名に関わるソースコードは追記がなされている可能性があるソースコードであるとみなし、前述したステップＳ８の処理で選択したソースコードテンプレート名に対して図４に示したソースコードテンプレートの仕様情報上で対応付けられるソースコード名に対応するソースコードが既に記憶装置２のソースコード記憶部２３に記憶されているか否かを判別する（ステップＳ１０）。
【００５７】
ソースコード生成部９は、ステップＳ１０の処理で「ＮＯ」と判別した場合には、ステップＳ８の処理で選択したソースコードテンプレート名に関わるソースコードがまだ生成されていないとみなし、このソースコードテンプレート名に関わるソースコードテンプレート情報を記憶装置２のテンプレート記憶部２２から読み出す（ステップＳ１１）。
【００５８】
そして、ソースコード生成部９は、記憶装置２の部品仕様記憶部２１に記憶される個々の部品仕様情報のうち、ステップＳ１１の処理で読み出したソースコードテンプレート情報中の変数名に対応するカラム名の値を読み出し（ステップＳ１２）、この値をステップＳ１１の処理で読み出したソースコードテンプレート情報中の変数に反映させることでソースコードを生成する（ステップＳ１３）。
【００５９】
また、ソースコード生成部９は、前述したステップＳ９の処理で「ＮＯ」と判別した場合には、ステップＳ８の処理で選択したソースコードテンプレート名に関わるソースコードは追記がなされないソースコードであるとみなし、前述したステップＳ１２以降の処理を行なう。
【００６０】
また、ソースコード生成部９は、ステップＳ１０の処理で「ＹＥＳ」と判別した場合には、ステップＳ２の処理でのソフトウェア部品の生成依頼は、部品仕様情報の変更後の再生成依頼であって、ステップＳ８の処理で選択したソースコードテンプレート名に関わるソースコードが既に生成されているとみなし、当該選択したソースコードテンプレート名に関わるソースコードの生成を中止し、既にソースコードテンプレート名に関わるソースコードテンプレート情報および部品仕様情報をもとに生成されたソースコードをソースコード記憶部２３から読み出す（ステップＳ１４）。
【００６１】
ステップＳ１３またはＳ１４の処理以後、ソースコード生成部９は、記憶装置２の部品仕様記憶部２１に記憶された、図４に示したソースコードテンプレートの仕様情報に記述されたソースコードテンプレート名のうち未選択のテンプレート名を１つ選択し、ステップＳ９以後の処理を再度行なう。
【００６２】
ソースコード生成部９は、全てのテンプレート名の選択が終了して、ソースコードの再生成もしくは生成済みのソースコードの読み出しが終了すると、これらのソースコードを部品仕様情報の変更に伴う更新後のソースコードとしてソースコード記憶部２３に記憶する。
【００６３】
以上のように、本発明の実施形態にしたがったソフトウェア部品生成装置は、ソースコードテンプレート情報の種別を、生成後のソースコードの追記がなされずにソースコードテンプレート情報中の変数名に対応する部品仕様情報が変更可能である第１のソースコードテンプレート情報と、生成後のソースコードの追記を可能としてソースコードテンプレート情報中の変数名に対応する部品仕様情報が変更できない第２のソースコードテンプレート情報とに区分し、第１のソースコードテンプレート情報については、当該ソースコードテンプレート情報をもとにしたソースコード生成後の部品仕様情報変更後のソースコードの再生成を可能とする一方で、第２のソースコードテンプレート情報については、当該ソースコードテンプレート情報をもとにしたソースコードの生成後は、前述した部品仕様変更後の当該ソースコードの再生成を行なわないようにする。
【００６４】
これにより、各種のソースコードテンプレート情報をもとにしたソースコードの生成後、第２のソースコードテンプレート情報をもとに生成されたソースコードに追記がなされた後で、第１のソースコードテンプレート情報と関わる部品仕様情報が変更された場合に、必要なソースコード再生成が不足なくなされるとともに、ソースコード追記内容を保持することができる。また、親クラスのソースコードテンプレート情報を生成後の追記が出来ないソースコードテンプレート情報とし、下位のクラスのソースコードテンプレート情報を生成後の追記が可能なテンプレート情報とすることで、ソースコードの再生成を親クラスに対して行えるようになる。
【００６５】
なお、この発明は前記実施形態そのままに限定されるものではなく実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を省略してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態にしたがったソフトウェア部品生成装置の構成例を示すブロック図。
【図２】本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置の部品仕様記憶部に記憶されるソフトウェアの或る機能を実行可能な画面全体の仕様情報を表形式で示す図。
【図３】本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置の部品仕様記憶部に記憶される個々の部品の仕様情報を表形式で示す図。
【図４】本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置の部品仕様記憶部に記憶されるソースコードテンプレートの仕様情報を表形式で示す図。
【図５】本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置のテンプレート記憶部に記憶されるソースコードテンプレート情報の一例を示す図。
【図６】本発明の実施形態にしたがったソフトウェア部品生成装置が処理する部品ソースコードテンプレートの構造の一例をツリー形式で示す図。
【図７】本発明の実施形態にしたがったソフトウェア部品生成装置が処理する部品の構造の一例をツリー形式で示す図。
【図８】本発明の実施形態にしたがったソフトウェア部品生成装置が生成するソースコードの一例を示す図。
【図９】本発明の実施形態にしたがったソフトウェア部品生成装置が生成し、追記前のソースコードの一例を示す図。
【図１０】本発明の実施形態にしたがったソフトウェア部品生成装置が生成し、追記後のソースコードの一例を示す図。
【図１１】本発明の実施形態にしたがったソフトウェア部品生成装置の処理動作の一例を示すフローチャート。
【図１２】本発明の実施形態にしたがったソフトウェア部品生成装置により処理する部品仕様情報の内部構造の一例をツリー形式で示す図。
【図１３】本発明の実施形態にしたがったソフトウェア部品生成装置により処理する個々の部品仕様情報の変換前の状態と変換後の状態の一例を示す図。
【符号の説明】
【００６７】
１…制御部、２…記憶装置、３…入力装置、４…出力装置、５…部品仕様読込部、６…部品仕様変換部、７…テンプレート判別部、８…ソースコード判別部、９…ソースコード生成部、１０…バス、２１…部品仕様記憶部、２２…テンプレート記憶部、２３…ソースコード記憶部。
【図１】
2008299423.tif 000003
【図２】
2008299423.tif 000004
【図３】
2008299423.tif 000005
【図４】
2008299423.tif 000006
【図５】
2008299423.tif 000007
【図６】
2008299423.tif 000008
【図７】
2008299423.tif 000009
【図８】
2008299423.tif 000010
【図９】
2008299423.tif 000011
【図１０】
2008299423.tif 000012
【図１１】
2008299423.tif 000013
【図１２】
2008299423.tif 000014
【図１３】
2008299423.tif 000015