(57)【要約】【課題】効率良く、かつ品質の良いパラメタファイルを生成するソフトウェア関連物の生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供する。【解決手段】ソフトウェア関連物の生成システムは、入力部を介して、パラメタファイルの記述形式を定義した所定の定義ファイル１１０を取得し、該所定の定義ファイル１１０の記述内容を解析し、該解析結果をフォーマット情報として記憶部１２５に格納し、前記入力部を介して、パラメタ名及びその設計値が記述された第１のソフトウェア関連ドキュメント１１１を取得し、前記フォーマット情報と前記第１のソフトウェアドキュメント１１１の記述内容との関連付けを行って、前記パラメタファイル１１３を生成する。【選択図】  図１４
2011028593.tif 000002
【特許請求の範囲】
【請求項１】
入力部を介して、パラメタファイルの記述形式を定義した所定の定義ファイルを取得し、
該所定の定義ファイルの記述内容を解析し、該解析結果をフォーマット情報として記憶部に格納し、
前記入力部を介して、パラメタ名及びその設計値が記述された第１のソフトウェア関連ドキュメントを取得し、
前記フォーマット情報と前記第１のソフトウェア関連ドキュメントの記述内容との関連付けを行って、前記パラメタファイルを生成する情報処理部を有する、
ことを特徴とするソフトウェア関連物の生成システム。
【請求項２】
前記情報処理部は、
前記生成したパラメタファイルの記述内容と前記フォーマット情報との関連付けを行って第２のソフトウェア関連ドキュメントを生成し、
前記第１のソフトウェア関連ドキュメントと前記第２のソフトウェアドキュメントとを対比して、これらの差分を検出し、差分表を生成する、
ことを特徴とする請求項１に記載のソフトウェア関連物の生成システム。
【請求項３】
入力部を介して、パラメタファイルの記述形式を定義した所定の定義ファイルを取得する処理と、
該所定の定義ファイルの記述内容を解析し、該解析結果をフォーマット情報として記憶部に格納する処理と、
前記入力部を介して、パラメタ名及びその設計値が記述された第１のソフトウェア関連ドキュメントを取得する処理と、
前記フォーマット情報と前記第１のソフトウェア関連ドキュメントの記述内容との関連付けを行って、前記パラメタファイルを生成する処理と
をコンピュータに実行させることを特徴とするプログラム。
【請求項４】
前記生成したパラメタファイルの記述内容と前記フォーマット情報との関連付けを行って第２のソフトウェア関連ドキュメントを生成する処理と、
前記第１のソフトウェア関連ドキュメントと前記第２のソフトウェアドキュメントとを対比して、これらの差分を検出し、差分表を生成する処理と、
をさらに前記コンピュータに実行させることを特徴とする請求項３に記載のプログラム。
【請求項５】
請求項３又は請求項４に記載のプログラムを記憶したことを特徴とする前記コンピュータにより読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア関連物を生成するシステムに関する。
【背景技術】
【０００２】
多くのソフトウェア製品には、業務要件、システム要件に応じてその動作仕様をカスタマイズするためのパラメタが用意されており、パラメタとその設定値を記述したファイル（以下、パラメタファイルと称する）をソフトウェア起動時に読み込むことで、そのソフトウェア製品の動作仕様が決定されるようになっている。通常、このパラメタファイルの記述形式は標準化されておらず、多様な記述形式が存在する。従来、ソフトウェア製品毎に、作業者が、パラメタ名とその設計値を記述した表形式のドキュメント（以下、環境設計書と称する）から、パラメファイルを作成していたので、時間と工数を要するとともに、パラメタファイルの品質にもバラツキがあった。
【０００３】
関連技術として、例えば特許文献1には、新規プログラムの設計書を元に、既存プログラムのソースコードを使用して新規プログラムのソフトウェアソースコードを生成する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−８３２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、パラメタファイルには、多様な記述形式が存在する。したがって、環境設計書からパラメタファイルを作成するには、多様なパラメタファイルの記述形式を認識し、かつ、その記述形式に準拠したパラメタファイルを生成する必要がある。しかし、上記特許文献１に記載の技術は、この点を考慮していない。
【０００６】
また、システム稼動後においては、ユーザアプリケーションの新規導入やシステム要件の変更に伴い、パラメタファイルの関連パラメタ及びその設定値の変更が必要となる場合がある。この場合、パラメタファイルの関連パラメタ及びその設定値を変更する作業だけでなく、環境設計書をメンテナンスする作業が発生する。その際、環境設計書に記述された設計値と、パラメタファイルに記述されている設定値とを確実に適合させるべく、その差分を検出する必要がある。しかし、上記特許文献１に記載の技術は、この点についても考慮していない。
【０００７】
本発明は、効率良く、かつ品質の良いパラメタファイルを生成するソフトウェア関連物の生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供することを第１の課題とする。
【０００８】
また、本発明は、上記第１の課題に付随する課題として、生成したパラメタファイルの設定値と環境設計書の設計値との差分を検出するソフトウェア関連物の生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供することを第２の課題とする。
【課題を解決するための手段】
【０００９】
上記第１の課題を解決するために、本発明では、入力部を介して、パラメタファイルの記述形式を定義した所定の定義ファイルを使用する。そして、本発明では、この所定の定義ファイルの記述内容を解析し、当該解析結果をフォーマット情報として記憶部に格納し、前記入力部を介して、パラメタ名及びその設計値が記述された第１のソフトウェア関連ドキュメントを取得し、前記フォーマット情報と前記第１のソフトウェア関連ドキュメントの記述内容との関連付けを行って、前記パラメタファイルを生成することを特徴とする。
【００１０】
また、上記第２の課題を解決するために、本発明では、前記生成したパラメタファイルの記述内容と前記フォーマット情報との関連付けを行って第２のソフトウェア関連ドキュメントを生成し、前記第１のソフトウェア関連ドキュメントと前記第２のソフトウェアドキュメントとを対比して、これらの差分を検出し、差分表を生成することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、効率良く、かつ品質の良いパラメタファイルを生成するソフトウェア関連物の生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供することができる。
【００１２】
また、本発明は、上記第２の課題に対応する効果として、生成したパラメタファイルの設定値と環境設計書の設計値との差分を検出するソフトウェア関連物の生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】ソフトウェア関連物の生成システムの構成例を示す図である。
【図２】環境設計書１１１の例を示す図である。
【図３】設定値表１１２の例を示す図である。
【図４】差分表１１４の例を示す図である。
【図５】パラメタファイル１１３の例を示す図である。
【図６】FDLファイル１１０の例を示す図である。
【図７】フォーマット情報記憶部１２５に格納されるフォーマット情報の例を示す図である。
【図８】環境設計書１１１の他の例を示す図である。
【図９】設定値表１１２の他の例を示す図である。
【図１０】差分表１１４の他の例を示す図である。
【図１１】パラメタファイル１１３の他の例を示す図である。
【図１２】FDLファイル１１０の他の例を示す図である。
【図１３】フォーマット情報記憶部１２５に格納されるフォーマット情報の他の例を示す図である。
【図１４】主要プログラムと外部ファイルとの間のデータの入出力関係を示す図である。
【図１５】FDL解析処理の手順を示すフローチャートである。
【図１６】同じく、FDL解析処理の手順を示すフローチャートである。
【図１７】設定値表出力処理の手順を示すフローチャートである。
【図１８】パラメタファイル出力処理の手順を示すフローチャートである。
【図１９】差分チェック処理の手順を示すフローチャートである。
【図２０】同じく、差分チェック処理の手順を示すフローチャートである。
【図２１】同じく、差分チェック処理の手順を示すフローチャートである。
【図２２】パラメタファイル１１３を格納する外部記憶装置１０１におけるディレクトリ構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
【００１５】
図１は、ソフトウェア関連物の生成システムの構成例を示す図である。本システムは、一般的なコンピュータにより実現され、主として外部記憶装置１０１とＣＰＵ１０２とキーボード１０３、ポインティングデバイス１０５等の入力部とディスプレイ等の表示部１０４と主記憶装置（メモリ）１０６とこれらを結ぶバス１０７から構成される。
【００１６】
外部記憶装置１０１には、ＦＤＬファイル１１０と環境設計書１１１と設定値表１１２とパラメタファイル１１３と差分表１１４が格納される。なお、本実施形態では、パラメタファイルからパラメタ名と設定値を読み込み、環境設計書と同じ表形式で表した資料を、環境設計の成果物である環境設計書と区別するために、設定値表と呼ぶこととする。
【００１７】
主記憶装置（メモリ）１０６には、制御プログラム１２０とＦＤＬ解析プログラム１２１と設定値表出力プログラム１２２とパラメタファイル出力プログラム１２３と差分チェックプログラム１２４とフォーマット情報記憶部１２５が格納される。なお、各プログラムの機能は、ＬＳＩ等のハードウェアにより実現しても良い。また、各プログラムは、本システムにネットワークにより接続された外部装置から取得しても良いし、記憶媒体から読取り可能にしても良い。
【００１８】
パラメタファイル１１３は、ソフトウェア製品の動作仕様をカスタマイズするためにパラメタ及びその設定値を記述したファイルである。パラメタファイル１１３において、パラメタ及びその設定値は、ソフトウェア製品毎に規定されたフォーマットに従い記述さている。そのフォーマットとして、パラメタ名と設定値の組み合わせによる形式、設定値のみを記述する形式、「コマンド名 オプション名 設定値 オプション名 設定値 ・・・」といった形式を持つコマンド形式等が想定される。ここで、オプションとは「-」で始まる文字列が与えられ、コマンド名と合わせて設定値に意味を与えるものである。
【００１９】
図５に示すパラメタファイルは、パラメタ名と設定値の組み合わせによる形式とコマンド形式が混在している例である。まず、パラメタ名と設定値の組み合わせにより、パラメタusernameに値usr01を、パラメタtimeoutに値60を設定している。この場合、フォーマットは「set パラメタ名 = 設定値」である。次に、コマンドallocbufferのオプション-cに5を、オプション-sに100を設定している。ここで、usernameはユーザ名を、timeoutは接続タイムアウト値(秒)を、allocbufferは利用できるバッファ領域の数やサイズを設定する架空のパラメタである。なお、１行目の「#」以降の文字列はコメント行であり、設定内容には影響を与えない。
【００２０】
図１１に示すパラメタファイルは、設定値のみを記述する形式の例である。複数の定義対象（例えばIPアドレス）に対していくつかの属性値（例えばホスト名やホスト名の別名）を与えるようなパラメタの場合、このような記述形式が規定されていることが多い。この記述形式では、パラメタ名を記述せず、設定値の記述位置によって意味付けを行う。本例では、左からスペース区切りで、IP address、hostname、aliasを示していることを意味している。ここで、IP addressはIPアドレスを、hostnameはホスト名を、aliasはホスト名の別名を意味するパラメタである。パラメタIP addressに値i.j.k.lを、それに対応してパラメタhostnameに値host1を、パラメタaliasに値hostaを設定している。同様に、パラメタIP addressに値p.q.r.sを、それに対応してパラメタhostnameに値host2を、パラメタaliasに値hostbを設定している。１行目の「#」以降の文字列はコメント行であり、設定内容には影響を与えない。
【００２１】
図１３は、フォーマット情報記憶部１２５に格納されるフォーマット情報の他の例を示す図である。ディレクトリ１２６下に、システムを構成する機器毎にサブディレクトリ１２７を作成しておく。
【００２２】
設定値表出力プログラム１２２は、サブディレクトリ１２７に格納した各機器のパラメタファイルを入力とし、設定値表を出力する。パラメタファイル出力プログラム１２３は、パラメタファイル１１３を生成し、サブディレクトリ１２７に格納する。
【００２３】
ＦＤＬファイル１１０は、ＦＤＬにてパラメタファイルの記述形式を定義したファイルである。図６の例では、コメントの開始を表す文字（コメントマーク）を定義するCommentMark文２２１と、改行文字を定義するChangeLineMark文２２２と、記述フォーマットにおいて可変である文字列をＦＤＬ変数として定義するVariant文２２３と、ＦＤＬ変数を用いて記述フォーマットを定義するFormat文２２４からなる。
【００２４】
Variant文２２３では、ＦＤＬ変数名とともに、その種別としてdivision属性を設定する。図６に示す例では、ＦＤＬ変数「@P1」はdivision属性「PRM」よりパラメタ名であることを表し、ＦＤＬ変数「@V1」はdivision属性「VAL」より設定値であることを表し、ＦＤＬ変数「@C1」はdivision属性「CMD」よりコマンド名であることを表し、ＦＤＬ変数「@O1」はdivision属性「OPT」よりオプションであることを表している。また、図１２の例では、パラメタ名を記述せず、値の記述位置によって意味付けを行うフォーマットを表現するために、Variant文３２１でそのパラメタ名を与える文字列を第三引数に設定している。実際のパラメタファイルではパラメタ（”ＩＰ  ａｄｄｒｅｓｓ”，  “ｈｏｓｔｎａｍｅ”，  “ａｌｉａｓ”）の対を繰り返し定義することができるが、「@V1」がそれぞれの対を区別するためのキーであることを示すために、第四引数に「key」を設定している。その他に設定できるＦＤＬ変数の属性としては、複数の値を可能とする場合に設定値を区切る文字列、省略可否等が考えられる。
【００２５】
フォーマット情報記憶部１２５は、ＦＤＬ解析プログラム１２１によりＦＤＬファイル１１０の定義内容を解析した結果をフォーマット情報として保持する。図７と図１３にフォーマット情報の格納イメージを示す。フォーマット情報記憶部１２５に保持されるフォーマット情報は、ＦＤＬにおけるCommentMark文から抽出したコメントマーク、ＦＤＬにおけるChangeLineMark文から抽出した改行マーク、ＦＤＬにおけるVariant文から抽出したＦＤＬ変数及びその属性、ＦＤＬにおけるFormat文から抽出・生成したフォーマットストリング、セパレータ、マッチングストリングから構成される。ＦＤＬ変数の属性としては、種別を表す文字列をdivision属性に、値の記述位置によって意味付けを行う場合にパラメタ名として認識させたい文字列をdescription属性に、キーであることを意味する真理値（True/False）をkey属性に、それぞれ保持する。セパレータはフォーマットストリングにおいてＦＤＬ変数を区切る文字列から、マッチングストリングは、フォーマットストリングのＦＤＬ変数を、任意の文字列を表す「*」を用いて表すことにより、パラメタファイルの１行分の文字列がそのフォーマットに適合するか否かを識別することに使用する。
【００２６】
環境設計書１１１は図２および図８に示す例のとおり、環境設計した各種パラメタの設計情報を記載し、パラメタ／コマンド、コマンドの場合のオプション、意味、デフォルト値、値から構成される。値は、システムを構成する機器（１号機、２号機、等）の分だけその設計値を記載する。
【００２７】
設定値表１１２は、設定値表出力プログラム１２２により、フォーマット情報記憶部１２５の情報に従ってパラメタファイル１１３の設定内容を取り込んで生成される表であり、環境設計書１１１と同一の表形式を持つ。設定値表の例を、図３および図９に示す。
【００２８】
差分表１１４は、差分チェックプログラム１２４により、環境設計書１１１と設定値表１１２の比較により識別された差分情報を格納する。比較は、各パラメタの設定値の差異と、一方で定義されているパラメタが、もう一方では定義されていないケース（パラメタが定義されていない場合はデフォルト値が仮定されている）を抽出する。
【００２９】
制御プログラム１２０は、キーボード１０３とポインティングデバイス１０５の入力により動作し、利用者の指示に応じて、ＦＤＬ解析プログラム１２１、設定値表出力プログラム１２２、パラメタファイル出力プログラム１２３、差分チェックプログラム１２４を実行し、実行結果をディスプレイ１０４に表示する。
【００３０】
図１４は、主記憶装置に格納された情報と外部記憶装置に格納された情報と各プログラムの関連図である。ＦＤＬ解析プログラム１２１はＦＤＬを読み込み解析した結果をフォーマット記憶部１２５に格納する。
【００３１】
設定値表出力プログラム１２２は、パラメタファイル１１３を読み込み、フォーマット情報記憶部１２５に保持されているフォーマット情報を基にパラメタ名や値を抽出し設定値表１１２に出力する。
【００３２】
パラメタファイル出力プログラム１２３は、環境設計書１１１を読み込み、フォーマット情報記憶部１２５に保持されているフォーマット情報を基に適切なフォーマットに適合させた定義文をパラメタファイル１１３に出力する。
【００３３】
差分チェックプログラム１２４は設定値表１１２と環境設計書１１１に対して差分チェックを行い、結果を差分表１１４に出力する。
【００３４】
図１５と図１６は、FDL解析処理の手順を示すフローチャートである。図６のＦＤＬ例を用いた場合の例を次に示す。
【００３５】
ＦＤＬ解析プログラム１２１は、初めにＦＤＬファイル全体を読み込む(ステップＳ１)。
【００３６】
次に読み込んだ情報からCommentMark文２２１よりコメントマーク「#」を抽出し、図７に示すコメントマーク保持部２３１に格納する(ステップＳ２)。
【００３７】
次に読み込んだ情報からChangeLineMark文２２２より改行マーク「\」を抽出し、図７に示す改行マーク保持部２３２に格納する(ステップＳ３)。
【００３８】
次に、ＦＤＬ解析プログラム１２１は、読み込んだ情報からVariant文２２３の１行目「Set(@P1,PRM)」を抽出しバッファに格納する(ステップＳ５)。
【００３９】
次にバッファに格納された文字列「Set(@P1,PRM)」から、ＦＤＬ変数「@P1」とＦＤＬ変数のdivisionプロパティ値「PRM」を抽出し、図７に示すＦＤＬ変数（ディクショナリオブジェクト）保持部２３３に格納する(ステップＳ６)。ここでディクショナリとは、キー（ここではＦＤＬ変数名「@P1」）に対して、それに対応する値（ここではdivision属性値「PRM」）を設定・参照することができるデータ構造である。
【００４０】
Variant文２２３の２行目以降に対しても同様の処理を行っていき、全ての行に対する処理終了後、図１６のステップＳ８に遷移する。(ステップ４、ステップＳ７)。
【００４１】
次に、ＦＤＬ解析プログラム１２１は、読み込んだ情報からFormat文２２４の１行目「Set @P1 = @V1」を抽出しバッファに格納する(ステップＳ９)。
【００４２】
次にバッファに格納された文字列「Set @P1 = @V1」を、図７に示すフォーマットストリング保持部２３４に格納する(ステップＳ１０)。
【００４３】
次に図７に示すフォーマットストリング２３４に格納された文字列「Set @P1 = @V1」から、ＦＤＬ変数で区切られた文字列「set」および「=」を抽出し、図７に示すセパレータストリング保持部２３５として格納する。
【００４４】
次に図７に示すフォーマットストリング保持部２３４に格納された文字列「Set @P1 = @V1」からＦＤＬ変数（ディクショナリオブジェクト）保持部２３３で宣言したＦＤＬ変数を表す文字列「@P1」「@V1」を「*」に置換することによりマッチングストリング「set * = *」を生成し、図７に示すマッチングストリング保持部２３６に格納する(ステップＳ１２)。
【００４５】
Format文２２４の２行目以降に対しても同様の処理を行っていき、全ての行に対する処理終了後、ＦＤＬ解析プログラムを終了する(ステップＳ１３、ステップ４)。
【００４６】
図１１に示すパラメタファイル例３１０のように、パラメタファイル１１３にパラメタ名が記述されず、設定値の位置によりそのパラメタ名を決定する場合について、ＦＤＬファイルの例を図１２に、フォーマット情報の例を図１３に示す。この場合、ＦＤＬ解析プログラム１２１の処理フローのステップＳ６において、バッファに格納した文字列からＦＤＬ変数とdivision属性、description属性、key属性を取得し、図１３に示すＦＤＬ変数（ディクショナリオブジェクト）３３１に格納する。図１２の３行目に示す例では、バッファに格納した文字列「Ｓｅｔ（＠Ｖ１，  ＶＡＬ，  “ＩＰ  ａｄｄｒｅｓｓ”，  ｋｅｙ）；」からＦＤＬ変数名「@V1」、division属性「VAL」、description属性「IP address」及びkey属性（True）を取得し、図１３に示すＦＤＬ変数（ディクショナリオブジェクト）３３１に格納する。
【００４７】
図１７は、設定値表出力処理の手順を示すフローチャートである。図５のパラメタファイル例と図７のフォーマット情報（メモリ）例１を用いた場合の例を次に示す。
【００４８】
設定値表出力プログラム１２２は、パラメタファイル２１０より１行目「set username = usr01 #ユーザ名」を読み込む(ステップＳ１５)。
【００４９】
設定値表出力プログラム１２２は、読み込んだ文字列「set username = usr01 #ユーザ名」に対して、コメントマーク以降の文字列を削除した「set username = usr01」をバッファに格納する(ステップＳ１６)。
【００５０】
設定値表出力プログラム１２２は、バッファに格納した文字列の最後尾が改行マークであれば次の行を読み込みバッファに追加するが、本例の場合は改行マークではないため、ステップＳ１９に遷移する（ステップＳ１７）。
【００５１】
次に、設定値表出力プログラム１２２は、バッファに格納された文字列「set username = usr01」とマッチングストリンク１「set * = *」との比較で適合することを識別し、セパレータストリングとしてセパレータストリング１の値「set」および「=」を取得する（ステップＳ１９）。なお、マッチングストリング１との比較で適合しない場合、マッチングストリング２との比較を行い、これに適合した場合は、セパレータストリング２をセパレータストリングとして取得する。
【００５２】
次に、設定値表出力プログラム１２２は、バッファに格納された文字列「set username = usr01」と該当するフォーマットストリング「set @P1 = @V1」をそれぞれセパレータストリング「set」および「=」で分割し、ＦＤＬ変数名「@P1」とパラメタファイル上で対応する文字列「username」、およびＦＤＬ変数名「@V1」とパラメタファイル上で対応する文字列「usr01」を取得する（ステップＳ２０）。
【００５３】
次に、設定値表出力プログラム１２２は、ＦＤＬ変数「@P1」のdivision属性値「PRM」により、文字列「username」を転記する列が設定値表の列「パラメタ／コマンド」であること、およびＦＤＬ変数「@V1」のdivision属性値「VAL」により、文字列「usr01」を転記する列が設定値表の列「値」であることを決定する（ステップＳ２１）。
【００５４】
次に、設定値表出力プログラム１２２は、転記先として決定したとおり、図３の設定値表の列「パラメタ／コマンド」に文字列「username」を追記し、列「値」に文字列「usr01」を追記する（ステップＳ２２）。パラメタファイル２１０の２行目に対して同様の処理を行う。
【００５５】
次に、設定値表出力プログラム１２２は、パラメタファイル２１０より３行目「allocbuffer -c 5 -s 100」を読み込む(ステップＳ１５)。
【００５６】
設定値表出力プログラム１２２は、読み込んだ文字列「allocbuffer -c 5 -s 100」に対して、コメントマークがないのでそのまま「allocbuffer -c 5 -s 100」をバッファに格納する(ステップＳ１６)。
【００５７】
設定値表出力プログラム１２２は、バッファに格納した文字列の最後尾が改行マークであれば次の行を読み込みバッファに追加するが、本例の場合は改行マークではないため、ステップＳ１９に遷移する（ステップＳ１７）。
【００５８】
次に、設定値表出力プログラム１２２は、バッファに格納された文字列「allocbuffer -c 5 -s 100」とマッチングストリンク保持部２２４の文字列を１行ずつ比較し、マッチングストリング２「* -*」に適合することを識別することで、該当するセパレータストリング「 」(半角空白文字)を取得する（ステップＳ１９）。
【００５９】
次に、設定値表出力プログラム１２２は、バッファに格納された文字列「allocbuffer -c 5 -s 100」と該当するフォーマットストリング「@C1 @O1」をそれぞれセパレータストリング「 」(半角空白文字)で分割し、ＦＤＬ変数名「@C1」とパラメタファイル上で対応する文字列「allocbuffer」、およびＦＤＬ変数名「@O1」とパラメタファイル上で対応する文字列「-c」と「5」と「-s」と「100」を取得する（ステップＳ２０）。
【００６０】
次に、設定値表出力プログラム１２２は、ＦＤＬ変数「@C1」のdivision属性「CMD」により、文字列「allocbuffer」を転記する列が設定値表の列「パラメタ／コマンド」であること、ＦＤＬ変数「@O1」のdivision属性「OPT」により、「-」から始まっている文字列「-c」と「-s」を転記する列が設定値表の列「値」であること、および「-」から始まっていない文字列「5」と「100」を設定値表の列「値」に転記すること決定する（ステップＳ２１）。
【００６１】
次に、設定値表出力プログラム１２２は、転記先として決定したとおり、図３の設定値表の列「パラメタ／コマンド」に文字列「allocbuffer」を追記し、列「オプション」に文字列「-c」と「-s」を追記し、列「値」に文字列「5」と「100」を追記する（ステップＳ２２）。
【００６２】
上記処理をパラメタファイル２１０の全ての行に対して行う（ステップＳ２３、ステップ１４）。
【００６３】
図１１に示すパラメタファイル例３１０のように、パラメタファイル１１３にパラメタ名が記述されず、設定値の位置によりそのパラメタ名を決定する場合について、パラメタファイルの例を図１１に、フォーマット情報の例を図１３に示す。この場合、ＦＤＬ解析プログラム１２２の処理フローにおけるステップＳ２１において、ＦＤＬ変数のdivision属性値により転記先の設定値表の列を決定するとともに、ＦＤＬ変数のdescription属性をＦＤＬ変数のパラメタ名として決定する（ステップＳ２１）。図１１の２行目に示す例では、ＦＤＬ変数「@V1」のdivision属性値「VAL」により設定値表の列「値」に文字列「i.j.k.l」を転記することを決定するとともに、ＦＤＬ変数のdescription属性値「IP address」をＦＤＬ変数「@V1」のパラメタ名として決定する。
【００６４】
次に、設定値表出力プログラム１２２は、転記先として決定したとおり、設定値表の列に各文字列を追記する（ステップ２２）。図１１の２行目に示す例では、図９の設定値表の列「パラメタ・コマンド」に文字列「IP address」を追記し、列「値」に文字列「i.j.k.l」を追記する。
【００６５】
図１８は、パラメタファイル出力処理の手順を示すフローチャートである。図２の環境設計書例と図７のフォーマット情報（メモリ）例を用いた場合の例を次に示す。
【００６６】
パラメタファイル出力プログラム１２３は、環境設計書２００から、パラメタ名「username」、１号機の値「usr01」および２号機の「usr02」を読み込む(ステップＳ２５)。パラメタ「username」はオプションを持っていないため、オプションの項目は「」（空文字）として扱う。
【００６７】
パラメタ「username」の行は、オプションおよび値が次の行に続いていないため、ステップ２８に遷移する（ステップＳ２６）。
【００６８】
次に、パラメタファイル出力プログラム１２３は、読み込んだパラメタ名、オプション、値の構成から、対応するフォーマットストリングが「set @P1 = @V1」であることを識別する（ステップＳ２８）。
【００６９】
次に、パラメタファイル出力プログラム１２３は、フォーマットストリングのＦＤＬ変数「@P1」を文字列「username」に置き換え、フォーマットストリングのＦＤＬ変数「@V1」を文字列「usr01」および「usr02」に置き換えた文字列をバッファに格納する（ステップＳ２９）。
【００７０】
次に、パラメタファイル出力プログラム１２３は、バッファに格納された文字列「set username = usr01」を、１号機のパラメタファイルに１行分として出力し、バッファに格納された文字列「set username = usr02」を、２号機のパラメタファイルに１行分として出力する（ステップＳ３０）。
【００７１】
環境設計書２００の次の行に対しても同様の処理を行う（ステップＳ３１、ステップＳ２４）。
【００７２】
次に、パラメタファイル出力プログラム１２３は、環境設計書２００から、コマンド名「allocbuffer」、オプション名「-c」、１号機の値「5」と、２号機の値「30」を読み込む(ステップＳ２５)。コマンド「allocbuffer」は、オプションおよび値として次の行があるため、ステップＳ２７に遷移する（ステップＳ２６）。
【００７３】
パラメタファイル出力プログラム１２３は、オプション名「-s」、１号機の値「100」および２号機の値「200」を読み込む（ステップＳ２７）。
【００７４】
次にコマンド名「allocbuffer」のオプションおよび値は、これ以上は次の行に続いていないため、ステップＳ２８に遷移する（ステップＳ２６）。
【００７５】
次に、パラメタファイル出力プログラム１２３は、読み込んだコマンド名、オプション、値の構成から、対応するフォーマットストリングが「@C1 @O1」であることを識別する（ステップＳ２８）。
【００７６】
次に、パラメタファイル出力プログラム１２３は、フォーマットストリングのＦＤＬ変数「@C1」を文字列「allocbuffer」に置き換え、フォーマットストリングのＦＤＬ変数「@O1」については、まず１号機の設定として文字列「-c」「5」「-s」「100」をセパレータ文字「 」(半角空白文字)で区切って連結した文字列「-c 5 -s 100」に置き換えバッファに格納し、２号機の設定として文字列「-c」「30」「-s」「200」をセパレータ文字「 」(半角空白文字)で区切って連結した文字列「-c 30-s 200」に置き換えバッファに格納する（ステップＳ２９）。
【００７７】
次に、パラメタファイル出力プログラム１２３は、バッファに格納された文字列「allocbuffer -c 5 -s 100」を、１号機のパラメタファイルに１行分として出力し、バッファに格納された文字列「allocbuffer -c 30-s 200」を、２号機のパラメタファイルに１行分として出力する（ステップＳ３０）。環境設計書２００の全ての行に対して、上記処理を繰り返し行う。
【００７８】
図１９と図２０と図２１は、差分チェック処理の手順を示すフローチャートである。図２の環境設計書例と図３に示す設定値表例を用いた場合の例を次に示す。
【００７９】
差分チェックプログラム１２４は、環境設計書２００から、パラメタ名「username」、値「usr01」および「usr02」を読み込む(ステップＳ３３)。パラメタ「username」はオプションを持っていないため、オプションの項目は「」（空文字）として扱う。パラメタ「username」の行は、オプションおよび値が次の行に続いていないため、ステップＳ３６に遷移する（ステップ３４）。
【００８０】
次に、差分チェックプログラム１２４は、パラメタ名「username」をキーとして、「usr01」および「usr02」を対応する値として、環境設計書データ（ディクショナリオブジェクト）に格納する（ステップＳ３６）。
【００８１】
上記処理を環境設計書２００の次の行に対しても行う（ステップＳ３７、ステップＳ３２）。
【００８２】
次に、差分チェックプログラム１２４は、環境設計書２００から、コマンド名「allocbuffer」、オプション名「-c」、値「5」および「30」を読み込む(ステップＳ３３)。
【００８３】
コマンド名「allocbuffer」は、オプションおよび値として次の行があるため、ステップＳ３５に遷移する（ステップＳ３４）。
【００８４】
次に、差分チェックプログラム１２４は、オプション名「-s」、値「100」および「200」を読み込む(ステップＳ３５)。
【００８５】
コマンド名「allocbuffer」のオプションおよび値は、これ以上は次の行に続いていないため、ステップＳ３６に遷移する（ステップＳ３４）。
【００８６】
次に、差分チェックプログラム１２４は、コマンド名「allocbuffer」、オプション名「-c」、値「5」および「30」とオプション名「-s」、値「100」および「200」を結合した文字列をキーとして、環境設計書データ（ディクショナリオブジェクト）に格納する（ステップＳ３６）。
【００８７】
上記処理を環境設計書２００の全ての行に対して繰り返し行った後、図２０の処理に遷移する。
【００８８】
差分チェックプログラム１２４は、設定値表２０１から、パラメタ名「username」、値「usr01」および「usr02」を読み込む(ステップＳ３９)。パラメタ「username」はオプションを持っていないため、オプションの項目は「」（空文字）として扱う。
【００８９】
次にパラメタ「username」の行は、オプションおよび値が次の行に続いていないため、ステップＳ４２に遷移する（ステップＳ４０）。
【００９０】
次に、差分チェックプログラム１２４は、パラメタ名「username」をキーとして、「usr01」および「usr02」を対応する値として、設定値表データ（ディクショナリオブジェクト）に格納する（ステップＳ４２）。
【００９１】
上記処理を設定値表２０１の次の行に対しても行う（ステップＳ４３、ステップＳ３８）。
【００９２】
次に、差分チェックプログラム１２４は、設定値表２０１から、コマンド名「allocbuffer」、オプション名「-c」、値「5」および「30」を読み込む(ステップＳ３９)。
【００９３】
コマンド名「allocbuffer」は、オプションおよび値として次の行があるため、ステップＳ３５に遷移する（ステップＳ４０）。
【００９４】
次に、差分チェックプログラム１２４は、オプション名「-s」、値「100」および「200」を読み込む(ステップＳ３５)。
【００９５】
コマンド名「allocbuffer」のオプションおよび値は、これ以上は次の行に続いていないため、ステップ４２に遷移する（ステップＳ４０）。
【００９６】
次に、差分チェックプログラム１２４は、コマンド名「allocbuffer」、オプション名「-c」、値「5」および「30」とオプション名「-s」、値「100」および「200」を結合した文字列をキーとして、設定値表データ（ディクショナリオブジェクト）に格納する（ステップＳ４２）。
【００９７】
上記処理を設定値表２０１の全ての行に対して繰り返し行った後、図２１の処理に遷移する。
【００９８】
差分チェックプログラム１２４は、すべての環境設計書データ（ディクショナリオブジェクト）のキーについて、設定値表データ（ディクショナリオブジェクト）での有無、値の差異を識別し、差分内容を差分表１１４に出力する（ステップＳ４４）。図２の環境設計書例２００と図３に示す設定値表例２０１では、２号機におけるパラメタ「timeout」の値が異なるため、差分表例２０２に示すように、パラメタ名とその設計値、設定値を用いて「値が異なる <環境設計書>timeout=70 <設定値表>timeout=60」と出力する。また、環境設計書１１１に含まれており設定値表１１２に含まれていないパラメタがある場合、例えば、環境設計書例２００のパラメタ「timeout」が設定値表例２０１に含まれていない場合は、「設定有無が異なる <環境設計書>timeout=70 <設定値表>記載なし」のように出力する。
【００９９】
差分チェックプログラム１２４は、すべての設定値表データ（ディクショナリオブジェクト）のキーについて、環境設計書データ（ディクショナリオブジェクト）での有無を識別し、差分内容を差分表１１４に出力する（ステップＳ４５）。設定値表１１２に含まれており、環境設計書１１１設定値表に含まれていないパラメタがある場合、例えば、設定値表例２０１のパラメタ「timeout」が環境設計書例２００に含まれていない場合は、「設定有無が異なる <環境設計書>記載なし <設定値表>timeout=60」のように出力する。なお、設定値表１１２と環境設計書１１１の両方に含まれているパラメタで値が異なる場合については、ステップＳ４４で識別しているため、ステップＳ４５では不要である。
【０１００】
差分チェックプログラム１２４は、図８の環境設計書例３００と図９に示す設定値表例３０１のように設定値の位置によりパラメタ名を決定する場合は、それぞれのパラメタが、属するkey属性のパラメタ設定値と合わせてディクショナリに格納する。図１０に示す差分表例３０２では、key属性を持つパラメタ「IP address」の値「p.q.r.s」に属するホスト名の値が異なることを示すため、「値が異なる<環境設計書>ホスト名@p.q.r.s=host2 <設定値表>ホスト名@p.q.r.s=hostx」のように出力する。
【０１０１】
以上本発明の実施形態を説明したが、上記実施形態によれば、効率良く、かつ品質の良いパラメタファイルを生成するソフトウェア関連物の生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供することができる。
【０１０２】
また、上記実施形態によれば、生成したパラメタファイルの設定値と環境設計書の設計値との差分を検出するソフトウェア関連物の生成システム、プログラム及びこのプログラムを格納した記憶媒体を提供することができる。
【０１０３】
また、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０１０４】
１０１・・・外部記憶装置、１０２・・・ＣＰＵ、１０３・・・キーボード、１０４・・・ディスプレイ、１０５・・・ポインティングデバイス、１０６・・・主記憶装置（メモリ）、１０７・・・バス、１１０・・・ＦＤＬファイル、１１１・・・環境設計書、１１２・・・設定値表、１１３・・・パラメタファイル、１１４・・・差分表、１２０・・・制御プログラム、１２１・・・ＦＤＬ解析プログラム、１２２・・・設定値表出力プログラム、１２３・・・パラメタファイル出力プログラム、１２４・・・差分チェックプログラム、１２５・・・フォーマット情報記憶部。
【図１】
2011028593.tif 000003
【図２】
2011028593.tif 000004
【図３】
2011028593.tif 000005
【図４】
2011028593.tif 000006
【図５】
2011028593.tif 000007
【図６】
2011028593.tif 000008
【図７】
2011028593.tif 000009
【図８】
2011028593.tif 000010
【図９】
2011028593.tif 000011
【図１０】
2011028593.tif 000012
【図１１】
2011028593.tif 000013
【図１２】
2011028593.tif 000014
【図１３】
2011028593.tif 000015
【図１４】
2011028593.tif 000016
【図１５】
2011028593.tif 000017
【図１６】
2011028593.tif 000018
【図１７】
2011028593.tif 000019
【図１８】
2011028593.tif 000020
【図１９】
2011028593.tif 000021
【図２０】
2011028593.tif 000022
【図２１】
2011028593.tif 000023
【図２２】
2011028593.tif 000024