JP2008299423A - 情報処理装置および情報処理プログラム - Google Patents
情報処理装置および情報処理プログラム Download PDFInfo
- Publication number
- JP2008299423A JP2008299423A JP2007142246A JP2007142246A JP2008299423A JP 2008299423 A JP2008299423 A JP 2008299423A JP 2007142246 A JP2007142246 A JP 2007142246A JP 2007142246 A JP2007142246 A JP 2007142246A JP 2008299423 A JP2008299423 A JP 2008299423A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- information
- template
- specification information
- template information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】画面情報のソースコードの追記後に部品仕様の変更を行なった場合でも、当該追記を有効とした上で変更後の部品仕様をもとにしたソースコードの再生成を行なう。
【解決手段】ソースコードテンプレート情報を、生成後のソースコードの追記の可否に応じて区分する。ソースコード生成部9は、ソースコード生成の依頼を受けると、テンプレート名を選択し、このテンプレート名と関わる拡張ポイントが有効であるか否かを判別する。ソースコード生成部9は、拡張ポイントが有効でない場合には、選択済みのテンプレート名に関わるソースコードは追記がなされないソースコードであるとみなし、当該テンプレート名をもとにしたソースコードの生成を行ない、拡張ポイントが有効である場合には、選択済みのテンプレート名に関わるソースコードは追記がなされた可能性があるソースコードであるとみなし、ソースコードの生成を中止する。
【選択図】 図1
【解決手段】ソースコードテンプレート情報を、生成後のソースコードの追記の可否に応じて区分する。ソースコード生成部9は、ソースコード生成の依頼を受けると、テンプレート名を選択し、このテンプレート名と関わる拡張ポイントが有効であるか否かを判別する。ソースコード生成部9は、拡張ポイントが有効でない場合には、選択済みのテンプレート名に関わるソースコードは追記がなされないソースコードであるとみなし、当該テンプレート名をもとにしたソースコードの生成を行ない、拡張ポイントが有効である場合には、選択済みのテンプレート名に関わるソースコードは追記がなされた可能性があるソースコードであるとみなし、ソースコードの生成を中止する。
【選択図】 図1
Description
本発明は、画面情報のソースコードを生成する情報処理装置および情報処理プログラムに関する。
従来、例えば特許文献1に開示されるように、設計書となる部品仕様情報をもとにソフトウェア部品を生成する技術がある。
このように生成したソフトウェア部品のソースコードに対し、管理者の入力操作により追記を行なった場合、この変更箇所に開始行、終了行を示す特別なコメントを挿入することにより、当初生成された箇所と追記がなされた箇所とを区分している。
特開平11−296417号公報
前述したようにソースコードに追記がなされた後、このソースコードの生成に用いた部品仕様情報を変更しなければならない場合がある。この場合、変更がなされた部品仕様情報をもとにソースコードを再生成する必要があるが、この再生成されたソースコードには前述した追記部分が反映されないので、当該追記が無効となってしまう。
そこで、本発明の目的は、画面情報のソースコードの追記後に部品仕様の変更を行なった場合でも、当該追記を有効とした上で変更後の部品仕様をもとにしたソースコードの再生成を行なうことが可能になる情報処理装置および情報処理プログラムを提供することにある。
すなわち、本発明に係わる情報処理装置は、出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第1のテンプレート情報および生成後のソースコードの追記が可能である第2のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、第1のテンプレート情報中の変数に対応し、変更が可能であるソフトウェア部品仕様情報、および第2のテンプレート情報中の変数に対応し、変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段と、各テンプレート情報および部品仕様情報をもとにソースコードを生成する生成手段と、生成手段により第2のテンプレート情報および仕様情報記憶手段に記憶されて第2のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第1の入力受付手段と、生成手段により生成されたソースコードを第1の入力受付手段により受け付ける入力にしたがって変更する第1の変更手段と、生成手段によるソースコード生成後、仕様情報記憶手段に記憶されて第1のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第2の入力受付手段と、対応する部品仕様情報を第2の入力受付手段により受け付ける入力にしたがって変更する第2の変更手段とを備え、第1のテンプレート情報および第2の変更手段により変更された部品仕様情報をもとにソースコードの再生成を行なうとともに第2のテンプレート情報および仕様情報記憶手段に記憶されて第2のテンプレート情報中の変数に対応する部品仕様情報をもとにしたソースコードの再生成を行なわないことを特徴とする。
本発明によれば、画面情報のソースコードの追記後に部品仕様の変更を行なった場合でも、当該追記を有効とした上で変更後の部品仕様をもとにしたソースコードの再生成を行なうことができる。
以下図面により本発明の実施形態について説明する。
図1は、本発明の実施形態にしたがったソフトウェア部品生成装置の構成例を示すブロック図である。
図1は、本発明の実施形態にしたがったソフトウェア部品生成装置の構成例を示すブロック図である。
図1に示すように、本発明の実施形態にしたがったソフトウェア部品生成装置は、装置全体の処理動作を司る制御部1、記憶装置2、入力受付手段である入力装置3、出力装置4、部品仕様読込部5、部品仕様変換部6、テンプレート判別部7、ソースコード判別部8、ソースコードの生成手段およびソースコード処理手段であるソースコード生成部9を備え、それぞれがバス10を介して相互に接続される。
記憶装置2は、ハードディスクドライブや不揮発性メモリなどの記憶媒体であり、制御部1、部品仕様読込部5、部品仕様変換部6、テンプレート判別部7、ソースコード判別部8、ソースコード生成部9による実行対象の制御用プログラムを記憶する他、仕様情報記憶手段である部品仕様記憶部21、テンプレート情報記憶手段であるテンプレート記憶部22、ソースコード記憶部23を有する。
入力装置3は例えばキーボードやマウスであり、出力装置4は例えばディスプレイ装置やプリンタ装置である。入力装置3は、ソフトウェア部品開発者による部品仕様の記述や変更、部品ソースコード生成の指示、生成後のソースコードの追記などの入力操作を受け付ける。
また、制御部1は、ソフトウェア部品開発者による入力装置3による入力操作にしたがって、ソースコード記憶部23に記憶される生成済みのソースコードを変更したり、部品仕様記憶部21に記憶される部品仕様情報を変更したりする変更手段としても機能する。
部品仕様記憶部21には、ソフトウェアの或る機能を実行可能な画面全体の仕様情報や当該画面の中に配置される個々のソフトウェア部品(コンポーネント)の画面項目名やサイズなどの仕様を定義するための部品仕様情報が記憶される。
ここで、部品仕様情報は、ソフトウェアの或る機能を実行可能な画面全体に関わる仕様情報、当該画面の中に配置される個々のソフトウェア部品の仕様情報、およびソースコードテンプレートの仕様情報に区分される。
図2は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置の部品仕様記憶部に記憶されるソフトウェアの或る機能を実行可能な画面全体の仕様情報を表形式で示す図である。ただし、ソフトウェアには種々の機能が実装されるものがあるため、本発明の実施形態では簡単のため一つの画面全体の仕様情報を表したものを挙げるが、一つに限定されることはない。例えば、別画面(例:見積もり入力画面)に対しては別のレコードで当該別画面に対する画面全体の仕様情報が作成されているものとする。
図3は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置2の部品仕様記憶部21に記憶される個々の部品の仕様情報を表形式で示す図である。
図4は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置2の部品仕様記憶部21に記憶されるソースコードテンプレートの仕様情報を表形式で示す図である。
図4は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置2の部品仕様記憶部21に記憶されるソースコードテンプレートの仕様情報を表形式で示す図である。
図2に示したソフトウェアの画面全体の仕様情報のテーブル名は「SW_SPEC」である。この仕様情報のカラム名、つまり項目名は「画面名(SW_VIEW_NAME)」、「ソフトウェア部品パッケージ名(SW_PACKAGE_NAME)」、「ソフトウェア部品クラス名(SW_CLASS_NAME)」、「部品幅(COMP_WIDTH)」および「部品高さ(COMP_HEIGHT)」である。
また、図3に示した個々の部品の仕様情報のテーブル名は「COMP_SPEC」である。この仕様情報のカラム名は「部品名(COMP_NAME)」、「部品パッケージ名(COMP_PACKAGE_NAME)」、「部品クラス名(COMP_CLASS_NAME)」、「部品配置行(COMP_ROW)」および「部品配置列(COMP_COLUMN)」である。
また、図4に示したソースコードテンプレートの仕様情報のファイル名は「TEMPLATE_SPEC」である。この仕様情報のカラム名は「ソースコード名(SOURCE_NAME)」、「ソースコードテンプレート名(TEMPLATE_NAME)」および「拡張ポイント(EXTENTION_POINT」」である。
この拡張ポイントとは、対応するソースコードテンプレート情報をもとに生成されるソースコードが入力装置3の操作にしたがった追記の対象となるか否かを示す情報である。拡張ポイントが「0」の場合は、対応するソースコードテンプレート情報をもとに生成されるソースコードが入力装置3に対する操作による追記ができないことを示し、拡張ポイントが「1」の場合は、対応するソースコードテンプレート情報をもとに生成されるソースコードが入力装置3に対する操作による追記が可能であることを示す。
また、本実施形態では、拡張ポイントが「0」であるソースコードテンプレート名(例えば図4に示したソースコードテンプレートの仕様情報の「AppletAction.vm」)に対応するソースコードテンプレート情報中の変数と関わる部品仕様情報の値(例えば図3に示した個々の部品仕様情報の部品名「得意先」に対応する部品配置行「2」や部品配置列「1」)は、当該部品仕様情報をもとにしたソースコード生成後に制御部1が入力装置3に対する操作により変更可能な値であるとする。
また、拡張ポイントが「1」であるソースコードテンプレート名(例えば図4に示したソースコードテンプレートの仕様情報の「ExtendedAppletAction.vm」)に対応するソースコードテンプレート情報中の変数と関わる部品仕様情報の値(例えば図3に示した個々の部品仕様情報の部品名「受注番号」に対応する部品配置行「1」や部品配置列「1」)は、当該部品仕様情報をもとにしたソースコード生成後に制御部1が入力装置3に対する操作により変更がなされない値であるとする。
図5は、本発明の実施形態にしたがったソフトウェア部品生成装置の記憶装置のテンプレート記憶部に記憶されるソースコードテンプレート情報の一例を示す図である。
テンプレート記憶部22には、ソフトウェア部品のソースコードテンプレート情報が記憶される。
テンプレート記憶部22には、ソフトウェア部品のソースコードテンプレート情報が記憶される。
ソースコードテンプレート情報は、ソフトウェア部品のソースコードで汎用的に利用可能な範囲の典型的なひな形を表す情報である。図5に示したソースコードテンプレート情報は画面全体のクラスのソースコードテンプレート情報であり、Velocity(登録商標)等のテンプレート言語の文法に従って記述された情報である。
ソフトウェア部品のソースコードテンプレート情報は、生成対象のクラスのソースコード毎に1ファイルがテンプレート記憶部22に記憶される。つまり、1つのクラスが生成されるためには1つのソースコードテンプレート情報が必要となるため、クラスとソースコードテンプレート情報が1対1の関係で対応する。
図6は、本発明の実施形態にしたがったソフトウェア部品生成装置が処理するソースコードテンプレートの構造の一例をツリー形式で示す図である。図7は、本発明の実施形態にしたがったソフトウェア部品生成装置が処理する部品の構造の一例をツリー形式で示す図である。
ソースコードテンプレート情報の構造は、出力されるソフトウェア部品の構造と一致する。
ここで、各クラスのソースコードテンプレート情報は複数に分割しておく。図6に示すように、ソースコードテンプレート情報のクラスは、追記と関わりの無いクラスとして、画面全体のクラス31、画面全体の機能を表すクラス32、サーバの機能のインタフェース34、サーバの機能のクラス35に区分される。また、追記と関わりのあるクラスとして、画面全体の機能を拡張するクラス33およびサーバの機能を拡張するクラス36に区分される。クラス32はクラス33の親クラスであり、クラス35はクラス36の親クラスである。
ここで、各クラスのソースコードテンプレート情報は複数に分割しておく。図6に示すように、ソースコードテンプレート情報のクラスは、追記と関わりの無いクラスとして、画面全体のクラス31、画面全体の機能を表すクラス32、サーバの機能のインタフェース34、サーバの機能のクラス35に区分される。また、追記と関わりのあるクラスとして、画面全体の機能を拡張するクラス33およびサーバの機能を拡張するクラス36に区分される。クラス32はクラス33の親クラスであり、クラス35はクラス36の親クラスである。
これにより、生成後のソフトウェア部品のクラスは、図7に示すように、追記と関わりの無いクラスとして、画面全体のクラス41、複数の部品クラス42、画面全体の機能を表すクラス43、サーバの機能のインタフェース45、サーバの機能のクラス46に区分される。また、追記と関わりのあるクラスとして、画面全体の機能を拡張するクラス44およびサーバの機能を拡張するクラス47に区分される。
部品仕様読込部5は、部品仕様記憶部21に格納された部品仕様情報を読み込む。部品仕様変換部6は、部品仕様読込部5で読み取った部品仕様情報を予め定められた形式に変換する。ソースコード生成部9は、部品仕様変換部6で変換した部品仕様情報と部品ソースコードテンプレートとをもとに、部品ソースコードを生成する。
図8は、本発明の実施形態にしたがったソフトウェア部品生成装置が生成するソースコードの一例を示す図である。
部品ソースコードは、部品ソースコードテンプレート情報の変数部分、つまり「${変数名}、${変数名.プロパティ名}」等と表記された部分が、部品仕様情報で示された値に変換された情報である。
部品ソースコードは、部品ソースコードテンプレート情報の変数部分、つまり「${変数名}、${変数名.プロパティ名}」等と表記された部分が、部品仕様情報で示された値に変換された情報である。
例えば、図5に示したソースコードテンプレート情報中の「${SW_SPEC.SW_PACKAGE_NAME}」は、図8に示したソースコードでは、テーブル名「SW_SPEC」の情報、つまり図2に示した画面全体の仕様情報中の項目「SW_PACKAGE_NAME」の値「jp.co.toshiba.sw_comp.input_juchu」に変換される。
また、図5に示した当該ソースコードテンプレート情報中の「${COMP.COMP_PACKAGE_NAME}」は、図8に示したソースコードでは、1行目としてテーブル名「COMP_SPEC」の情報、つまり図3に示した個々の部品の仕様情報中の項目「COMP_PACKAGE_NAME」の1行目の値「jp.co.toshiba.comp.juchu」に変換され、2行目として前述した項目「COMP_PACKAGE_NAME」の2行目の値「jp.co.toshiba.comp.tokuisaki」に変換される。
また、図5に示した当該ソースコードテンプレート情報中の「${COMP.COMP_CLASS_NAME}」は、図8に示したソースコードでは、1行目としてテーブル名「COMP_SPEC」の情報、つまり図3に示した個々の部品の仕様情報中の項目「COMP_CLASS_NAME」の1行目の値「JuchuPanel」に変換され、2行目として前述した項目「COMP_PACKAGE_NAME」の2行目の値「TokuisakiPanel」に変換される。
また、図5に示したソースコードテンプレート情報中の「${SW_SPEC.SW_CLASS_NAME}」は、図8に示したソースコードでは、ファイル名「SW_SPEC」の情報、つまり図2に示した画面全体の仕様情報中の項目「SW_CLASS_NAME」の値「InputJuchu」に変換される。
図9は、本発明の実施形態にしたがったソフトウェア部品生成装置が生成し、追記前のソースコードの一例を示す図である。図10は、本発明の実施形態にしたがったソフトウェア部品生成装置が生成し、追記後のソースコードの一例を示す図である。
図9に示したソースコードは、部品仕様情報およびソースコードテンプレート情報にしたがって生成されたソースコードであり、図10に示したソースコードのうち、点線で囲まれた3行目から11行目の部分は図9に示したソースコードに対する追記部分である。
次に、図1に示した構成のソフトウェア部品生成装置の動作について説明する。図11は、本発明の実施形態にしたがったソフトウェア部品生成装置の処理動作の一例を示すフローチャートである。
まず、制御部1は入力装置3による入力操作にしたがって、部品仕様情報を記憶装置2の部品仕様記憶部21に記憶する(ステップS1)。この部品仕様情報のうち、画面全体の仕様情報にはテーブル名として「SW_SPEC」が付され、個々のソフトウェア部品の仕様情報にはテーブル名として「COMP_SPEC」が付される。
そして、制御部1は、ソフトウェア部品の生成依頼のための入力操作を入力装置3から受け付ける(ステップS2)。この依頼の引数は、ステップS1の処理で入力した部品仕様情報の名称である。
すると、制御部1は、部品仕様読込部5に対して部品仕様情報の取得を依頼する(ステップS3)。この依頼の引数はステップS2の処理による依頼で渡された部品仕様情報の名称である。
図12は、本発明の実施形態にしたがったソフトウェア部品生成装置により処理する部品仕様情報の内部構造の一例をツリー形式で示す図である。
ステップS3の処理後、部品仕様読込部5は部品仕様情報の読み込みを行い、この読み込んだ部品仕様情報を、図12に示すような内部形式にし、制御部1に返す(ステップS4)。図12では、部品仕様情報の内部形式を、クラス構造を記述する一般的な表記であるUMLのクラス図の形式で記述している。
ステップS3の処理後、部品仕様読込部5は部品仕様情報の読み込みを行い、この読み込んだ部品仕様情報を、図12に示すような内部形式にし、制御部1に返す(ステップS4)。図12では、部品仕様情報の内部形式を、クラス構造を記述する一般的な表記であるUMLのクラス図の形式で記述している。
図12では、最上位で仕様全体を表す「Context」の下位にソフトウェアの画面全体の仕様を表す「Map」が位置し、この下位にソフトウェアにおける個々の仕様を表す「String」が位置する。図12において、Context51に対してMap52とList54が対応し、Map52に対して複数のString53が対応する関係が成立する。具体的には、このMap52とString53との関係は、図2のカラム名(画面名、ソフトウェア部品パッケージ名、ソフトウェア部品クラス名、部品幅、部品高さ)とそれらカラム名に対する値(受注入力、jp.co.toshiba.sw_comp.input_iuchu、inputJuchu、100,200)の両者を含んだものがMap52に対応し、後者のカラム名に対する値がString53に対応する。 前述した「Context」に格納するキーはソフトウェア全体の仕様情報のテーブル名とし、「Map」に格納するキーはソフトウェアにおける部品の仕様情報のカラム名とする。
また、「Context」の下位にはソフトウェア部品の画面に配置する個々の部品全体の仕様を表す「List」がさらに位置し、この下位にソフトウェア部品の画面に配置する個々の部品の仕様の1行分を表す「Map」が位置し、この下位にソフトウェア部品の画面に配置する個々の部品の仕様を表す「String」が位置する。
図12において、List54に対して複数のMAP55が対応し、このMAP55に対して複数のString56が対応する関係が成立する。具体的には、図3のカラム名とそれらカラム名に対する各行の値を含んだものがList54に対応する。また、MAP55の一つ目とこれに対応するString56との関係は、図3のカラム名(部品名、部品パッケージ名、部品クラス名、部品配置行、部品配置列)とそれらカラム名に対する1行目の値(受注番号、jp.co.toshiba.comp.iuchu、JuchuPanel、1,2)の両者を含んだものをMap55に対応し、後者のカラム名に対する値がString56に対応する。
また、MAP55の二つ目とこれに対応するString56との関係は、図3のカラム名(部品名、部品パッケージ名、部品クラス名、部品配置行、部品配置列)とそれらカラム名に対する2行目値(得意先、jp.co.toshiba.comp.tokuisaki、TokuisakiPanel、2,1)の両者を含んだものがMap55に対応し、後者のカラム名に対する値がString56に対応する。
前述した「Context」には個々の部品仕様情報のテーブル名がさらに格納され、「List」の下位の「Map」には個々の部品仕様情報のカラム名が格納される。
前述した「Context」には個々の部品仕様情報のテーブル名がさらに格納され、「List」の下位の「Map」には個々の部品仕様情報のカラム名が格納される。
制御部1は、部品仕様情報の内部形式の入力後、部品仕様変換部6に出力画面側の部品仕様情報の変換を依頼する(ステップS5)。この依頼では部品仕様情報の内部形式を引数とする。また、ここではサーバ側の部品仕様情報は変換の対象とならない。
部品仕様変換部6は、部品ソースコードテンプレート情報の形式に合わせて、部品仕様情報の変換処理を行なう(ステップS6)。
具体的には、部品仕様変換部6は、以下の式(1)、図3に示した個々の部品仕様情報の「部品配置行(COMP_ROW)」、および図2に示した画面全体の仕様情報の「部品幅(COMP_WIDTH)」をもとに「部品配置X座標(COMP_X)」を計算する。
具体的には、部品仕様変換部6は、以下の式(1)、図3に示した個々の部品仕様情報の「部品配置行(COMP_ROW)」、および図2に示した画面全体の仕様情報の「部品幅(COMP_WIDTH)」をもとに「部品配置X座標(COMP_X)」を計算する。
COMP_X=(COMP_ROW−1)*COMP_WIDTH+10 …式(1)
また、部品仕様変換部6は、以下の式(2)、図3に示した個々の部品仕様情報の「部品配置列(COMP_COLUMN)」、および図2に示した画面全体の仕様情報の「部品高さ(COMP_HEIGHT)」をもとに「部品配置Y座標(COMP_Y)」を計算する。
また、部品仕様変換部6は、以下の式(2)、図3に示した個々の部品仕様情報の「部品配置列(COMP_COLUMN)」、および図2に示した画面全体の仕様情報の「部品高さ(COMP_HEIGHT)」をもとに「部品配置Y座標(COMP_Y)」を計算する。
COMP_Y=(COMP_COLUMN−1)*COMP_HEIGHT+10 …式(2)
また、部品仕様変換部6は、以下の式(3)、および図2に示した画面全体の仕様情報の「部品幅(COMP_WIDTH)」をもとに「部品配置幅(COMP_W)」を計算する。
また、部品仕様変換部6は、以下の式(3)、および図2に示した画面全体の仕様情報の「部品幅(COMP_WIDTH)」をもとに「部品配置幅(COMP_W)」を計算する。
COMP_W=COMP_WIDTH …式(3)
また、部品仕様変換部6は、以下の式(4)、および図2に示した画面全体の仕様情報の「部品高さ(COMP_HEIGHT)」をもとに「部品配置高さ(COMP_H)」を計算する。
また、部品仕様変換部6は、以下の式(4)、および図2に示した画面全体の仕様情報の「部品高さ(COMP_HEIGHT)」をもとに「部品配置高さ(COMP_H)」を計算する。
COMP_H=COMP_HEIGHT …式(4)
図13は、本発明の実施形態にしたがったソフトウェア部品生成装置により処理する個々の部品仕様情報の変換前の状態と変換後の状態の一例を示す図である。
部品仕様変換部6は、前述した計算結果をもとに、図3に示した個々の部品仕様情報の「部品配置行(COMP_ROW)」と「部品配置列(COMP_COLUMN)」を、図13に示すように「部品配置X座標(COMP_X)」、「部品配置Y座標(COMP_Y)」、「部品配置幅(COMP_W)」および「部品配置高さ(COMP_H)」に変換し、この変換結果の内部形式を制御部1に返す。
以後、部品仕様変換部6は、図3に示した個々の部品仕様情報で示される個々の部品毎に変換処理を行なう。
図13は、本発明の実施形態にしたがったソフトウェア部品生成装置により処理する個々の部品仕様情報の変換前の状態と変換後の状態の一例を示す図である。
部品仕様変換部6は、前述した計算結果をもとに、図3に示した個々の部品仕様情報の「部品配置行(COMP_ROW)」と「部品配置列(COMP_COLUMN)」を、図13に示すように「部品配置X座標(COMP_X)」、「部品配置Y座標(COMP_Y)」、「部品配置幅(COMP_W)」および「部品配置高さ(COMP_H)」に変換し、この変換結果の内部形式を制御部1に返す。
以後、部品仕様変換部6は、図3に示した個々の部品仕様情報で示される個々の部品毎に変換処理を行なう。
そして、制御部1は、ソースコード生成部9に対し、部品ソースコードの生成を依頼する(ステップS7)。この依頼では、ステップS6の処理で変換された部品仕様情報の内部形式を引数とする。
ソースコード生成部9は、記憶装置2の部品仕様記憶部21に記憶された部品仕様情報中のソースコードテンプレートの仕様情報中のソースコード名のそれぞれに対応するソースコードの生成を行う。
具体的には、ソースコード生成部9は、記憶装置2の部品仕様記憶部21に記憶された、図4に示したソースコードテンプレートの仕様情報に記述されたソースコードテンプレート名のうち1つを選択する(ステップS8)。
そして、ソースコード生成部9は、この選択したテンプレート名に図4に示したソースコードテンプレートの仕様情報上で対応付けられる拡張ポイントが有効、つまり「1」であるか否かを判別する(ステップS9)。
ソースコード生成部9は、ステップS9の処理で「YES」と判別した場合には、ステップS8の処理で選択したソースコードテンプレート名に関わるソースコードは追記がなされている可能性があるソースコードであるとみなし、前述したステップS8の処理で選択したソースコードテンプレート名に対して図4に示したソースコードテンプレートの仕様情報上で対応付けられるソースコード名に対応するソースコードが既に記憶装置2のソースコード記憶部23に記憶されているか否かを判別する(ステップS10)。
ソースコード生成部9は、ステップS10の処理で「NO」と判別した場合には、ステップS8の処理で選択したソースコードテンプレート名に関わるソースコードがまだ生成されていないとみなし、このソースコードテンプレート名に関わるソースコードテンプレート情報を記憶装置2のテンプレート記憶部22から読み出す(ステップS11)。
そして、ソースコード生成部9は、記憶装置2の部品仕様記憶部21に記憶される個々の部品仕様情報のうち、ステップS11の処理で読み出したソースコードテンプレート情報中の変数名に対応するカラム名の値を読み出し(ステップS12)、この値をステップS11の処理で読み出したソースコードテンプレート情報中の変数に反映させることでソースコードを生成する(ステップS13)。
また、ソースコード生成部9は、前述したステップS9の処理で「NO」と判別した場合には、ステップS8の処理で選択したソースコードテンプレート名に関わるソースコードは追記がなされないソースコードであるとみなし、前述したステップS12以降の処理を行なう。
また、ソースコード生成部9は、ステップS10の処理で「YES」と判別した場合には、ステップS2の処理でのソフトウェア部品の生成依頼は、部品仕様情報の変更後の再生成依頼であって、ステップS8の処理で選択したソースコードテンプレート名に関わるソースコードが既に生成されているとみなし、当該選択したソースコードテンプレート名に関わるソースコードの生成を中止し、既にソースコードテンプレート名に関わるソースコードテンプレート情報および部品仕様情報をもとに生成されたソースコードをソースコード記憶部23から読み出す(ステップS14)。
ステップS13またはS14の処理以後、ソースコード生成部9は、記憶装置2の部品仕様記憶部21に記憶された、図4に示したソースコードテンプレートの仕様情報に記述されたソースコードテンプレート名のうち未選択のテンプレート名を1つ選択し、ステップS9以後の処理を再度行なう。
ソースコード生成部9は、全てのテンプレート名の選択が終了して、ソースコードの再生成もしくは生成済みのソースコードの読み出しが終了すると、これらのソースコードを部品仕様情報の変更に伴う更新後のソースコードとしてソースコード記憶部23に記憶する。
以上のように、本発明の実施形態にしたがったソフトウェア部品生成装置は、ソースコードテンプレート情報の種別を、生成後のソースコードの追記がなされずにソースコードテンプレート情報中の変数名に対応する部品仕様情報が変更可能である第1のソースコードテンプレート情報と、生成後のソースコードの追記を可能としてソースコードテンプレート情報中の変数名に対応する部品仕様情報が変更できない第2のソースコードテンプレート情報とに区分し、第1のソースコードテンプレート情報については、当該ソースコードテンプレート情報をもとにしたソースコード生成後の部品仕様情報変更後のソースコードの再生成を可能とする一方で、第2のソースコードテンプレート情報については、当該ソースコードテンプレート情報をもとにしたソースコードの生成後は、前述した部品仕様変更後の当該ソースコードの再生成を行なわないようにする。
これにより、各種のソースコードテンプレート情報をもとにしたソースコードの生成後、第2のソースコードテンプレート情報をもとに生成されたソースコードに追記がなされた後で、第1のソースコードテンプレート情報と関わる部品仕様情報が変更された場合に、必要なソースコード再生成が不足なくなされるとともに、ソースコード追記内容を保持することができる。また、親クラスのソースコードテンプレート情報を生成後の追記が出来ないソースコードテンプレート情報とし、下位のクラスのソースコードテンプレート情報を生成後の追記が可能なテンプレート情報とすることで、ソースコードの再生成を親クラスに対して行えるようになる。
なお、この発明は前記実施形態そのままに限定されるものではなく実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を省略してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
1…制御部、2…記憶装置、3…入力装置、4…出力装置、5…部品仕様読込部、6…部品仕様変換部、7…テンプレート判別部、8…ソースコード判別部、9…ソースコード生成部、10…バス、21…部品仕様記憶部、22…テンプレート記憶部、23…ソースコード記憶部。
Claims (4)
- 出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第1のテンプレート情報および生成後のソースコードの追記が可能である第2のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、
前記第1のテンプレート情報中の変数に対応し、ソースコード生成後の変更が可能であるソフトウェア部品仕様情報、および前記第2のテンプレート情報中の変数に対応し、ソースコード生成後の変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段と、
前記各テンプレート情報および前記部品仕様情報をもとに前記ソースコードを生成する生成手段と、
前記生成手段により前記第2のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第2のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第1の入力受付手段と、
前記生成手段により生成されたソースコードを前記第1の入力受付手段により受け付ける入力にしたがって変更する第1の変更手段と、
前記生成手段によるソースコードの生成後、前記仕様情報記憶手段に記憶されて前記第1のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第2の入力受付手段と、
前記対応する部品仕様情報を前記第2の入力受付手段により受け付ける入力にしたがって変更する第2の変更手段と、
前記第1のテンプレート情報および前記第2の変更手段により変更された部品仕様情報をもとにソースコードの再生成を行なうとともに、前記第2のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第2のテンプレート情報中の変数に対応する部品仕様情報をもとにしたソースコードの再生成を行なわないソースコード処理手段と
を備えたことを特徴とする情報処理装置。 - 出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第1のテンプレート情報および生成後のソースコードの追記が可能である第2のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、
前記第1のテンプレート情報中の変数に対応し、ソースコード生成後の変更が可能であるソフトウェア部品仕様情報、および前記第2のテンプレート情報中の変数に対応し、ソースコード生成後の変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段と、
前記各テンプレート情報および前記部品仕様情報をもとに前記ソースコードを生成する第1の生成手段と、
前記第1の生成手段により前記第2のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第2のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第1の入力受付手段と、
前記第1の生成手段により生成されたソースコードを前記第1の入力受付手段により受け付ける入力にしたがって変更する第1の変更手段と、
前記第1の生成手段によるソースコードの生成後、前記仕様情報記憶手段に記憶されて前記第1のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第2の入力受付手段と、
前記対応する部品仕様情報を前記第2の入力受付手段により受け付ける入力にしたがって変更する第2の変更手段と、
前記第1の生成手段により前記ソースコードが生成されたか否かを判別する判別手段と、
前記ソースコードが前記第1の生成手段により生成されていないと前記判別手段が判別した場合に、前記第1のテンプレート情報および前記第2の変更手段により変更された部品仕様情報をもとにソースコードを生成し、かつ前記第2のテンプレート情報および前記仕様情報記憶手段に記憶されて当該第2のテンプレート情報中の変数に対応する部品仕様情報をもとにソースコードを生成する第2の生成手段と、
前記対応するソースコードが前記第1の生成手段により生成されたと前記判別手段が判別した場合に、前記第1のテンプレート情報および前記第2の変更手段により変更された部品仕様情報をもとにソースコードを再生成し、前記第2のテンプレート情報および前記仕様情報記憶手段に記憶されて当該第2のテンプレート情報中の変数に対応する部品仕様情報をもとに前記第1の生成手段により生成されたソースコードを前記再生成にともなって読み出すソースコード処理手段と
を備えたことを特徴とする情報処理装置。 - 前記第1のテンプレート情報のクラスは前記第2のテンプレート情報のクラスの親クラスであることを特徴とする請求項1または請求項2に記載の情報処理装置。
- 出力用情報のソフトウェア部品のソースコードテンプレート情報を、生成後のソースコードの追記がなされない第1のテンプレート情報および生成後のソースコードの追記が可能である第2のテンプレート情報のいずれかの区分に対応して記憶するテンプレート情報記憶手段と、前記第1のテンプレート情報中の変数に対応し、ソースコード生成後の変更が可能であるソフトウェア部品仕様情報、および前記第2のテンプレート情報中の変数に対応し、ソースコード生成後の変更がなされないソフトウェア部品仕様情報を記憶する仕様情報記憶手段とを備えたコンピュータを、
前記各テンプレート情報および前記部品仕様情報をもとに前記ソースコードを生成する生成手段、
前記生成手段により前記第2のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第2のテンプレート情報中の変数に対応する部品仕様情報をもとに生成されたソースコードの追記入力を受け付ける第1の入力受付手段、
前記生成手段により生成されたソースコードを前記第1の入力受付手段により受け付ける入力にしたがって変更する第1の変更手段、
前記生成手段によるソースコードの生成後、前記仕様情報記憶手段に記憶されて前記第1のテンプレート情報中の変数に対応する部品仕様情報の変更入力を受け付ける第2の入力受付手段、
前記対応する部品仕様情報を前記第2の入力受付手段により受け付ける入力にしたがって変更する第2の変更手段、および
前記第1のテンプレート情報および前記第2の変更手段により変更された部品仕様情報をもとに前記ソースコードの再生成を行なうとともに前記第2のテンプレート情報および前記仕様情報記憶手段に記憶されて前記第2のテンプレート情報中の変数に対応する部品仕様情報をもとにしたソースコードの再生成を行なわないソースコード処理手段
として機能させるようにした情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142246A JP2008299423A (ja) | 2007-05-29 | 2007-05-29 | 情報処理装置および情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142246A JP2008299423A (ja) | 2007-05-29 | 2007-05-29 | 情報処理装置および情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008299423A true JP2008299423A (ja) | 2008-12-11 |
Family
ID=40172924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007142246A Withdrawn JP2008299423A (ja) | 2007-05-29 | 2007-05-29 | 情報処理装置および情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008299423A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012105502A1 (ja) * | 2011-01-31 | 2012-08-09 | 株式会社 東芝 | 記憶媒体及びテンプレート情報生成装置 |
JP2015148925A (ja) * | 2014-02-06 | 2015-08-20 | 株式会社 日立産業制御ソリューションズ | プログラム生成装置および方法 |
CN115629768A (zh) * | 2022-12-21 | 2023-01-20 | 西安葡萄城软件有限公司 | 一种基于Excel公式引擎的邮件模板解析方法 |
-
2007
- 2007-05-29 JP JP2007142246A patent/JP2008299423A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012105502A1 (ja) * | 2011-01-31 | 2012-08-09 | 株式会社 東芝 | 記憶媒体及びテンプレート情報生成装置 |
JP2015148925A (ja) * | 2014-02-06 | 2015-08-20 | 株式会社 日立産業制御ソリューションズ | プログラム生成装置および方法 |
CN115629768A (zh) * | 2022-12-21 | 2023-01-20 | 西安葡萄城软件有限公司 | 一种基于Excel公式引擎的邮件模板解析方法 |
CN115629768B (zh) * | 2022-12-21 | 2023-03-10 | 西安葡萄城软件有限公司 | 一种基于Excel公式引擎的邮件模板解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4667386B2 (ja) | 業務モデル図作成支援プログラム、業務モデル図作成支援方法、および業務モデル図作成支援装置 | |
JP4783658B2 (ja) | 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体 | |
JP2009521026A (ja) | 探索および置換入力の派生を活用する探索および置換機能でテキストを編集するための方法およびシステム | |
JP2007052703A (ja) | テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法 | |
US8209662B2 (en) | Application retargeting | |
JP2006301989A (ja) | 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム | |
JP2008299423A (ja) | 情報処理装置および情報処理プログラム | |
JP2009015395A (ja) | 辞書構築支援装置および辞書構築支援プログラム | |
JP2009211622A (ja) | 契約定義関数検証装置、その方法及びそのプログラム | |
JP6702072B2 (ja) | 制御プログラム、装置、及び方法 | |
JP5125385B2 (ja) | 検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法 | |
JP2006309538A (ja) | プログラム照合装置及びこれに適用されるプログラム | |
JP5932707B2 (ja) | 計算機、プログラム及びデータ生成方法 | |
JP5808264B2 (ja) | コード生成装置及びコード生成方法及びプログラム | |
JP2009211143A (ja) | 情報処理装置および情報処理プログラム | |
CN113609821B (zh) | 一种正则表达式转换方法、装置、设备及存储介质 | |
JP4472768B2 (ja) | プログラム解析装置、プログラム解析方法、およびプログラム | |
JP4664224B2 (ja) | ネットリスト生成方法及び生成装置 | |
JP4362777B2 (ja) | プログラミング装置、シンボル自動登録方法、プログラムおよび記録媒体 | |
JP4220439B2 (ja) | 構造化データ変換装置及び方法 | |
JP4904712B2 (ja) | プログラム自動生成装置、方法、およびプログラム | |
JP2007164685A (ja) | 情報処理装置およびデータ出力制御方法およびプログラムおよび記憶媒体 | |
JP4670724B2 (ja) | ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム | |
JP2005250593A (ja) | オブジェクト情報生成装置 | |
JP2006039993A (ja) | 記憶クラス設定装置、記憶クラス設定プログラム、ソースコード生成装置、およびソースコード生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100803 |