仕様書生成プログラム及び装置
【課題】各フィーチャに対応する全ての仕様要素を容易に管理し得ると共に、不要な仕様要素が含まれない仕様書を容易に生成する。
【解決手段】 実施形態の仕様書出力可否判定手段は、前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する。実施形態の仕様書生成手段は、前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する。
【解決手段】 実施形態の仕様書出力可否判定手段は、前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する。実施形態の仕様書生成手段は、前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、仕様書生成プログラム及び装置に関する。
【背景技術】
【0002】
ソフトウェア開発においては、生産性の向上、品質の安定、及びリードタイムの短縮を図る観点から、品質の保証されたソフトウェア部品を蓄積して再利用することが有効である。再利用の対象は、プログラム、コンポーネント、フレームワーク等へと変化している。このような変化の中、同一ドメインの製品開発に限定するものの、様々な種類の成果物を体系的に再利用の対象とすることにより、再利用の有効性を向上させるプロダクトライン型のソフトウェア開発手法が注目されている。
【0003】
プロダクトライン型のソフトウェア開発手法では、製品開発のロードマップを描き、対象製品を開発するためのコアアセットと呼ばれるソフトウェア開発の資産をあらかじめ整備し、これらのコアアセットを利用して製品を開発する。コアアセットとしては、アーキテクチャ、ソフトウェアコンポーネント、ドメインモデル、要求説明書、文書と仕様書、性能モデル、テストケース、プロセス説明書等のように、ソフトウェア開発のプロセスで作成又は利用するためのあらゆる成果物が含まれる。
【0004】
プロダクトライン型ソフトウェア開発のプロセスは、ドメイン開発プロセスと、アプリケーション開発プロセスにより構成される。
【0005】
ドメイン開発プロセスにおいては、アプリケーション群の共通性と、特定のアプリケーションに対応する可変性とを備えるコアアセットを開発する。この共通性と可変性は、一般的には、システムのフィーチャ(特性)の集合を階層的に構造化したツリーからなるフィーチャモデルで表現される。ここで、フィーチャは、システムの特性を意味している。フィーチャモデルでは、それぞれのフィーチャを更に他のフィーチャに分解可能である。また、フィーチャモデルでは、フィーチャを選択する際の制約として、それぞれのフィーチャに対する必須、選択可能、又は選択制限対象といった属性や、他のフィーチャとの依存関係を定義可能となっている。
【0006】
アプリケーション開発プロセスにおいては、ドメイン開発プロセスで開発したコアアセットを再利用して、特定のアプリケーションを開発する。このアプリケーション開発プロセスでは、フィーチャモデルで定義された制約に従い、コアアセットに含まれるフィーチャのうちアプリケーションで使用するフィーチャを選択して、コアアセットの可変性を固定する。
【0007】
アプリケーション開発プロセスにおいてコアアセットを再利用するためには、フィーチャモデルの各フィーチャと、コアアセットとの対応関係を管理する必要がある。
【0008】
しかしながら、仕様書においては、アプリケーション群の共通性と、特定のアプリケーションに対応する可変性とを混在して記述することが一般的である。そのため、仕様書をコアアセットとして再利用する場合、フィーチャと仕様書とを単に対応付けるだけでは不十分であり、仕様書を構成する仕様要素をフィーチャと対応付けて管理する必要がある。
【0009】
この管理により、アプリケーション開発プロセスでは、選択したフィーチャに対応付けられた仕様要素から構成される仕様書を作成可能としている。このような仕様書作成技術としては、仕様書をXMLで記述することにより、文章で記述された仕様における可変性を表現している方法が知られている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2007−12003号公報
【特許文献2】特開2009−223856号公報
【非特許文献】
【0011】
【非特許文献1】K・ポール他,ソフトウェアプロダクトラインエンジニアリング−ソフトウェア製品系列開発の基礎と概念から技法まで−,株式会社エスアイビー・アクセス,2009。
【非特許文献2】I. John, D. Muthig, Modeling variability with use cases, Technical Report IESE Report No. 063.02/E, Fraunhofer IESE, 2002.
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、以上のような仕様書作成技術では、通常は特に問題ないが、本発明者の検討によれば、フィーチャと仕様要素との対応関係を管理する場合に、以下の2つの不都合がある。
【0013】
第1の不都合の前提として、開発対象のソフトウェアの規模が大きくなるに従い、仕様書に記載する内容が多くなり、フィーチャと対応付ける仕様要素も増加することが挙げられる。仕様書に記載すべき内容は、フィーチャモデルとは異なる視点で構成されるため、フィーチャと仕様要素との対応関係が複雑になることが多い。例えば、あるフィーチャに対応する「機能」に関する仕様要素が、「画面」に関する仕様要素と「帳票」に関する仕様要素とを参照している場合、そのフィーチャは「機能」の仕様要素の他に、「画面」の仕様要素及び「帳票」の仕様要素にも対応していることになる。
【0014】
従って、前述した方法でフィーチャと仕様要素との対応関係を管理する場合、ドメイン開発者においては、各フィーチャに対応する全ての仕様要素を特定することが困難であるという第1の不都合がある。
【0015】
第2の不都合の前提として、選択(固定)したフィーチャに対応する仕様要素により構成される仕様書を、仕様要素間の関連を考慮せずに生成した場合、本来記載すべきではない仕様要素が仕様書に含まれてしまうことが挙げられる。例えば、ある「機能」と「画面」の仕様要素が関連していて、その「機能」の仕様要素には、選択されていないあるフィーチャが対応しており、その「画面」の仕様要素には、選択された別のフィーチャが対応している場合を考える。この場合、仕様要素間の関連を考慮せずに、「選択されたフィーチャに対応する仕様要素を、仕様書として出力する」というルールに従い仕様書を生成した場合、アプリケーションの機能として必要のない「画面」の仕様要素が仕様書として出力されてしまう。
【0016】
従って、前述した方法でフィーチャと仕様要素との対応関係を管理する場合、仕様要素間の関連までは管理できないため、不要な仕様要素が仕様書に含まれてしまうという第2の不都合がある。その結果、仕様書の品質が低下し、その仕様書に従って開発したアプリケーションに仕様不備が混入してしまう可能性が生じてしまう。
【0017】
本明細書に開示した実施形態は、各フィーチャに対応する全ての仕様要素を容易に管理し得ると共に、不要な仕様要素が含まれない仕様書を容易に生成し得る仕様書生成プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【0018】
以下で説明する実施形態の仕様書生成装置は、仕様データ記憶手段を備えている。
【0019】
実施形態の仕様書生成装置は、特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、及び属性を互いに関連付けた参照先の仕様データと、この参照先の仕様要素を参照する参照元の仕様要素のID、属性、及び前記参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データとをそれぞれ読み込む。
【0020】
実施形態の仕様書生成装置は、前記読み込んだ各仕様データのうち、前記参照先の仕様データに対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データを前記仕様データ記憶手段に書き込む。
【0021】
実施形態の仕様書生成装置は、前記読み込んだ各仕様データのうち、前記参照元の仕様データに対し、前記特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、前記仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び前記関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データを前記仕様データ記憶手段に書き込む。
【0022】
実施形態の仕様書生成装置は、前記特定のアプリケーションのフィーチャモデルにおけるフィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャの選択又は未選択を示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データを読み込む。
【0023】
実施形態の仕様書生成装置は、前記読み込んだ仕様要素選択状態データに対し、前記フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データを保持する。
【0024】
実施形態の仕様書生成装置は、前記保持した仕様要素選択状態データ内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する前記仕様データ記憶手段内の仕様データの仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する。
【0025】
また、実施形態の仕様書生成装置は、出力可否判定ルール記憶手段、仕様書出力可否判定手段及び仕様書生成手段を備えている。
【0026】
出力可否判定ルール記憶手段は、前記仕様データ記憶手段内の仕様データのうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、前記仕様データ記憶手段内の仕様データ、及び前記保持した仕様要素選択状態データに基づく、各々の前記仕様要素の出力可否を判定するためのルールである出力可否判定ルールを記憶する。
【0027】
仕様書出力可否判定手段は、前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する。
【0028】
仕様書生成手段は、前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する。
【図面の簡単な説明】
【0029】
【図1】第1の実施形態に係る仕様書生成装置の構成を示す模式図である。
【図2】同実施形態における仕様メタ情報の一例を説明するための模式図である。
【図3】同実施形態における仕様データの一例を説明するための模式図である。
【図4】同実施形態におけるフィーチャモデルの一例を説明するための模式図である。
【図5】同実施形態における仕様要素選択状態データの一例を説明するための模式図である。
【図6】同実施形態における変換後の仕様データの一例を説明するための模式図である。
【図7】同実施形態における変換後の仕様要素選択状態データの一例を説明するための模式図である。
【図8】同実施形態における動作を説明するためのフローチャートである。
【図9】同実施形態における選択状態の更新後の仕様データの一例を説明するための模式図である。
【図10】同実施形態におけるステップST30の動作を説明するためのフローチャートである。
【図11】同実施形態における判定サブルーチンの動作を説明するためのフローチャートである。
【図12】同実施形態における出力可否の更新後の仕様データの一例を説明するための模式図である。
【図13】第2の実施形態に係る仕様書生成装置の構成を示す模式図である。
【図14】同実施形態における変換した仕様データの構造の一例を表現したクラス図である。
【図15】同実施形態における出力可否判定ルールの一例を示す模式図である。
【図16】同実施形態における出力可否判定ルールの一例を示す模式図である。
【図17】第3の実施形態に係る仕様書生成装置の構成を示す模式図である。
【図18】第4の実施形態に係る仕様書生成装置の構成を示す模式図である。
【発明を実施するための形態】
【0030】
以下、各実施形態について図面を用いて説明する。なお、以下の各図において略同一の部分については同一の符号を付してその詳しい説明を省略する。また、以下の仕様書生成装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から仕様書生成装置となるコンピュータにインストールされ、仕様書生成装置の機能を実現させるための仕様書生成プログラムが用いられる。
【0031】
(第1の実施形態)
図1は第1の実施形態に係る仕様書生成装置の構成を示す模式図である。図中の矢印は、仕様データd1−1〜d1−3,d2−1〜d2−3,d5−1〜d5−3,d6−1〜d6−3、仕様要素選択状態データd3,d4、仕様書データd7等のデータ又は処理の流れを示している。仕様書生成装置10は、仕様データ記憶部11、出力可否判定ルール記憶部12、仕様データ読込み部13、仕様要素選択状態データ読込み部14、仕様書出力可否判定部15及び仕様書生成部16を備えている。
【0032】
始めに、仕様データ、仕様メタ情報、仕様クラス、属性、及び仕様要素選択状態データ、フィーチャモデル等の用語について簡単に説明し、その後、各部11〜16について述べる。
【0033】
ここで、仕様データd1−1〜d1−3とは、仕様書を構成する仕様要素からなるデータであり、仕様書生成装置10の利用者によって予め仕様メタ情報に従って作成される。仕様データを作成する利用者は、仕様データのデータ構造を定義した仕様メタ情報に従い、必要な仕様要素を定義していく。
【0034】
仕様メタ情報は、仕様書に記載すべき仕様を、仕様の種類に応じた「仕様クラス」として定義した情報であり、特定のコアアセットの仕様ではなく、仕様書に記載すべき仕様の枠組みを定義した情報である。仕様メタ情報としては、図2に一例を示すように、機能仕様を定義するための仕様クラス「機能」、画面仕様を定義するための仕様クラス「画面」、帳票仕様を定義するための仕様クラス「帳票」などが使用可能であるが、これに限定されない。また、ある仕様クラスの実体(インスタンス)を「仕様要素」と呼ぶ。例えば、当該装置の利用者が、「利用者情報登録機能」、「利用者情報更新機能」及び「利用者情報削除機能」等の機能仕様を定義する場合、それらの機能仕様を仕様クラス「機能」の仕様要素としてそれぞれ記述することになる。
【0035】
仕様クラスには一つ以上の属性を定義する。図2に示した例では、仕様クラス「機能」には、各仕様要素を一意に識別するための属性「機能ID」、各仕様要素の名称を記述するための属性「機能名」、各仕様要素の説明を記述するための属性「説明」を記述するよう、仕様メタ情報で定義している。なお、以下で説明する属性(名称、説明)はあくまで例示であり、仕様データd1−1〜d1−3において、「ID」以外の属性は、仕様クラスによって異なるものである。
【0036】
属性には、他の仕様要素への参照が定義可能である。図2に示した例では、仕様クラス「画面」の属性「関連機能ID」の値には、仕様クラス「機能」に属する仕様要素の「機能ID」を記述するよう、仕様メタ情報に定義している。なお、参照可能な仕様クラスは、参照元の仕様クラスと同一の仕様クラスでもよく、異なる仕様クラスでもよい。また、ひとつの属性から参照可能な仕様クラスの種類は二種類以上あってもよい。
【0037】
仕様データd1−1は、図3(a)に一例を示すように、一行目が仕様メタ情報に定義された属性を示し、二行目〜四行目が「機能クラス」の仕様要素を示している。図3(a)には、3個の仕様要素が定義してあることになる。また、図3(a)は、前述の仕様メタ情報の例に従う場合の例を示しているため、仕様クラス「機能」の仕様要素では、属性「機能ID」、属性「機能名」、及び属性「説明」の値を定義する。
【0038】
仕様データd1−2は、図3(b)に一例を示すように、仕様クラス「画面」の仕様要素に関し、属性「画面ID」、属性「画面名」及び属性「説明」の他に、その仕様要素に関連する、仕様クラス「機能」に属する仕様要素への参照を、属性「関連機能ID」として定義可能となっている。「関連機能ID」属性には、機能クラスとして定義された機能仕様の「機能ID」を定義する。ある仕様要素が他の仕様要素を参照している場合、仕様データを読み込んだ際に、参照される仕様要素が存在しているかどうかを検証してもよい。
【0039】
同様に、仕様データd1−3は、図3(c)に一例を示すように、仕様クラス「帳票」の仕様要素に関し、属性「帳票ID」、属性「帳票名」、属性「説明」及び属性「関連機能ID」が定義可能となっている。
【0040】
仕様データのデータ形式は、前述同様に、仕様メタ情報に従った仕様データを表現可能であれば、任意のデータ形式が使用可能となっている。例えば、Microsoft(登録商標)社の表計算ソフトウェアであるExcel(登録商標)を使用した表形式のデータとしてもよい。
【0041】
仕様要素選択状態データd3とは、コアアセット全体の仕様データ内の各仕様要素が、ある特定のアプリケーションにおいてどのような状態であるかを示す情報であり、仕様書生成装置10の利用者によって予め作成される。また、仕様要素選択状態データd3とは、コアアセットのフィーチャモデルに含まれる全てのフィーチャに対して、それぞれのフィーチャに対応する仕様要素と、どのフィーチャが特定のアプリケーションに必要であるかを示した情報であってもよい。なお、仕様要素選択状態データd3では,上述のようにフィーチャモデルの構造を表すことができるが、更には(個別のフィーチャに対応する)仕様要素が選択されているのか否かを知ることができるのも重要な機能である。
【0042】
図4にフィーチャモデルの例を示す。ここでは、フィーチャ「システム」は、2つのフィーチャ「タイプ」と「仕向地」により構成される。(親)フィーチャ「タイプ」においては、代替を示す関係により、2つの(子)フィーチャ「Aタイプ」又は「Bタイプ」のうちの、いずれかのフィーチャが選択される。フィーチャ「仕向地」においては、代替を示す関係により、3つのフィーチャ「日本」、「米国」、又は「中国」のうちの、いずれかのフィーチャが選択される。このフィーチャの選択は、特定のアプリケーションを構築する際に行われる。
【0043】
図5は、図4のフィーチャモデルを表現した仕様要素選択状態データd3の例を示している。この仕様要素選択状態データd3においては、1列目〜4列目が各フィーチャとフィーチャモデルの構造を表し、5列目「関連仕様要素ID」が各フィーチャに対応する仕様要素(ID)を表し、6列目「フィーチャ選択フラグ」が特定のアプリケーションに必要なフィーチャであるか否かのフラグを表している。なお、仕様要素選択状態データd3には、図5に示したように、フィーチャモデルの構造も表現してもよいが、仕様要素選択状態データに必要な情報は、特定のアプリケーションにおける各仕様要素の状態を示す情報である。そのため、仕様要素選択状態データd3は、例えば、仕様要素を識別するための列と、ある特定のアプリケーションにおけるその仕様要素の状態を表現するための列によってのみ、構成されていてもよい。
【0044】
また、仕様要素選択状態データd3は任意のデータ形式が使用可能となっている。例えば、仕様データと同様に、Microsoft社の表計算ソフトウェアであるExcelを使用した表形式のデータとしてもよい。
【0045】
以上が用語の説明である。次に、各部11〜16について述べる。
【0046】
仕様データ記憶部11は、各部13〜16から読出/書込可能な記憶手段であり、仕様データd2−1〜d2−3,d5−1〜d5−3,d6−1〜d6−3を記憶する。
【0047】
出力可否判定ルール記憶部12は、例えば仕様書生成プログラムの実行時に図示しないCPU(出力可否判定ルールを出力可否判定ルール記憶手段に書き込む手段)から書込可能で仕様書出力可否判定部15から読出可能な記憶手段であり、出力可否判定ルールを記憶する。
【0048】
出力可否判定ルールは、仕様データ及び仕様要素選択状態データに基づいて導かれるものであり、仕様データ記憶部11が記憶する仕様データ内の仕様要素のうち、どの仕様要素を仕様書として出力すべきかを、仕様データ内の仕様要素の選択状態を示す属性の値に基づいて判定するルールである。但し、出力可否判定ルールとしては、仕様データ内の仕様要素の選択状態を示す属性の値だけでなく、例えば、仕様メタ情報の構造や、仕様要素間の参照等を、どの仕様要素を仕様書として出力すべきかを判定基準にしてもよい。
【0049】
このような出力可否判定ルールは、以下の[1]〜[4]には限定されるものではないが、本実施形態では、仕様データ記憶部11内の仕様データd2−1〜d2−3のうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、以下の[1]〜[4]を判定するルールとしている。
【0050】
[1]未選択を示す選択状態を含む場合には出力可否情報のNULL値を出力否の値に更新することを判定する。
【0051】
[2]NULL値又は選択を示す選択状態を含んでリンク情報を含まない場合には出力可否情報のNULL値を出力可の値に更新することを判定する。
【0052】
[3]NULL値又は選択を示す選択状態及びリンク情報を含む場合で当該リンク情報が示す関連仕様要素IDに対応する他の仕様要素の出力可否情報が出力可を示すときには、当該判定対象の仕様要素の出力可否情報のNULL値を出力可の値に更新することを判定する。
【0053】
[4]NULL値又は選択を示す選択状態及びリンク情報を含む場合で当該リンク情報が示す関連仕様要素IDに対応する他の仕様要素の出力可否情報が出力否を示すときには、当該判定対象の仕様要素の出力可否情報のNULL値を出力否の値に更新することを判定する。
【0054】
また、仕様データ記憶部11及び出力可否判定ルール記憶部12は、同一の記憶装置内の別々の記憶領域、又は別々の記憶装置のいずれで実現してもよい。
【0055】
仕様データ読込み部13は、以下の各機能(f13-1)〜(f13-3)をもっている。
【0056】
(f13-1)特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、名称及び説明を互いに関連付けた参照先の仕様データd1−1と、この参照先の仕様要素を参照する参照元の仕様要素のID、名称、説明、及び参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データd1−2,d1−3とをそれぞれ読み込む機能。なお、読み込み元は、プログラムと同様にネットワーク又は記憶媒体などが適宜、使用可能となっている。
【0057】
(f13-2)読み込んだ各仕様データd1−1〜d1−3のうち、参照先の仕様データd1−1に対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データd2−1を仕様データ記憶部11に書き込む機能。
【0058】
(f13-3)読み込んだ各仕様データd1−1〜d1−3のうち、参照元の仕様データd1−2,d1−3に対し、特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データd2−2,d2−3を仕様データ記憶部11に書き込む機能。
【0059】
ここで、「特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態」を示す属性は、仕様要素ごとに設定されるものであり、特定のアプリケーションのフィーチャモデルから判断可能となっている。例えば、ある仕様要素に対応するフィーチャが、ある特定のアプリケーションに必要である場合には、その仕様要素の選択状態を示す属性の値を「選択する」(=選択)とし、一方、その仕様要素に対応するフィーチャが、ある特定のアプリケーションに不要である場合には、その仕様要素の選択状態を示す属性の値を「選択しない」(=未選択)とするというように、ある特定のアプリケーションのフィーチャモデルにおいて選択されたフィーチャ及び選択されていないフィーチャが、それぞれどの仕様要素に対応しているかを識別する。なお、フィーチャモデルにおける各フィーチャが全ての仕様要素に対応しているとは限らないので、選択状態を示す属性の値が空の仕様要素が存在していてもよい。
【0060】
仕様データ記憶部11に記憶する仕様データのデータ形式は、各部13〜16が解釈可能なデータ形式であればよい。例えば、各部13〜16をオブジェクト指向言語により実装する場合には、仕様クラスをオブジェクト指向言語のクラスに、そして、それぞれの仕様クラスに属する仕様要素をオブジェクト指向言語のインスタンスに対応させることができる。
【0061】
また、仕様書生成装置10が読み込んだ仕様データd2−1〜d2−3は、表形式で表現した場合、図6(a)〜図6(c)に示すようになる。
【0062】
図6(b)〜図6(c)に示す例では、「画面」クラス及び「帳票」クラスの仕様要素のうち、「関連機能ID」として「機能」クラスの仕様要素を参照している仕様要素の「リンク情報」属性には、「関連機能ID」属性に記述された値を識別子としてもつ「機能」クラスの仕様要素へのリンク情報が記載されている。一方、他の仕様要素を参照しない「機能」クラスは、図6(a)に示すように、リンク情報をもたない。
【0063】
ここで、仕様データの「リンク情報」、「選択状態」及び「出力可否」の構造については、前述した例に限らず、各仕様要素に対して、その仕様要素が参照する他の仕様要素へのリンク情報と、「選択状態」に相当する情報と、「出力可否」に相当する情報と、が対応付けられている構造であれば、任意の構造が使用可能となっている。
【0064】
仕様要素選択状態データ読込み部14は、以下の各機能(f14-1)〜(f14-4)をもっている。
【0065】
(f14-1)特定のアプリケーションのフィーチャモデルにおけるフィーチャ毎に、親フィーチャのID、当該親フィーチャからみて代替又は包括を示す関係、当該フィーチャを識別するためのフィーチャID、当該フィーチャの名称を示すフィーチャ名、当該フィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャを選択するか否かを示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データd3を読み込む機能。なお、読み込み元は、プログラムと同様にネットワーク又は記憶媒体などが適宜、使用可能となっている。また、フィーチャモデルにおける代替(or)を示す関係は、図4に示す白抜きの扇形によって表現されている。フィーチャモデルにおける包括(and)を示す関係は、図示しないが、黒塗りの扇形によって表現可能となっている。
【0066】
(f14-2)読み込んだ仕様要素選択状態データd3に対し、フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データd4を保持する機能。
【0067】
(f14-3)保持した仕様要素選択状態データd4内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する仕様データ記憶部11内の仕様データd2−1〜d2−3の仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する機能。
【0068】
ここで、機能(f14-3)における選択状態を更新するルールについては、当該装置内であらかじめ決めたものでもよいし、当該機能部を実行する前に当該装置の外部から読み込んだデータを解釈したものでもよい。
【0069】
仕様書生成装置10が読み込んだ仕様要素選択状態データd4を、図5に基づく表形式で表現した場合、図7に示すようになる。
【0070】
図7に示す例では、「リンク情報」属性には、「関連仕様要素ID」属性に記述された値を識別子としてもつ仕様要素へのリンク情報が記載されている。但し、仕様要素選択状態データd4の「リンク情報」の構造については、これに限らず、各仕様要素選択状態データに対して、その仕様要素選択状態データd4が参照する他の仕様要素へのリンク情報が対応付けられている構造であれば、任意の構造が使用可能となっている。
【0071】
仕様書出力可否判定部15は、出力可否判定ルール記憶部12内の出力可否判定ルールに基づいて、仕様データ記憶部11内の仕様データd5−1〜d5−3に含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する機能をもっている。
【0072】
仕様書生成部16は、仕様書出力可否判定部15による更新が完了すると、仕様データ記憶部11内の仕様データd6−1〜d6−3のうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、名称、説明、及び関連仕様要素IDが記述された仕様書データd7を生成する機能をもっている。
【0073】
仕様書データd7のデータ形式には、例えば、Microsoft(R)社の文書作成ソフトウェアであるWORDなどがある。また、仕様書データd7のレイアウトについては、例えば、仕様データと同じ表形式でも良いし、当該装置の利用者が設定したルールに従い仕様要素を加工した文書データとしても良い。
【0074】
また、仕様書生成部16は、抽出した全ての仕様要素を出力対象とせず、予め利用者が設定したルールに該当する仕様要素を出力対象としてもよい。
【0075】
次に、以上のように構成された仕様書生成装置の動作について図8のフローチャートを用いて説明する。
【0076】
仕様データ読込み部13は、特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、名称及び説明を互いに関連付けた参照先の仕様データd1−1と、この参照先の仕様要素を参照する参照元の仕様要素のID、名称、説明、及び参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データd1−2,d1−3とをそれぞれ読み込む(ST10)。
【0077】
また、仕様データ読込み部13は、読み込んだ各仕様データd1−1〜d1−3のうち、参照先の仕様データd1−1に対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データd2−1を仕様データ記憶部11に書き込む。
【0078】
さらに、仕様データ読込み部13は、読み込んだ各仕様データd1−1〜d1−3のうち、参照元の仕様データd1−2,d1−3に対し、特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データd2−2,d2−3を仕様データ記憶部11に書き込む。
【0079】
続いて、仕様要素選択状態データ読込み部14は、特定のアプリケーションのフィーチャモデルにおけるフィーチャ毎に、親フィーチャのID、当該親フィーチャからみて代替又は包括を示す関係、当該フィーチャを識別するためのフィーチャID、当該フィーチャの名称を示すフィーチャ名、当該フィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャを選択するか否かを示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データd3を読み込む(ST20)。
【0080】
また、仕様要素選択状態データ読込み部14は、読み込んだ仕様要素選択状態データd3に対し、フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データd4を図示しないメモリ等に保持する。
【0081】
しかる後、仕様要素選択状態データ読込み部14は、保持した仕様要素選択状態データd4内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する仕様データ記憶部11内の仕様データd2−1〜d2−3の仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する。
【0082】
ここで、図7に示した仕様要素選択状態データd4の例に基づいて、各仕様要素の属性「選択状態」の値を決定するアルゴリズムの例を以下に示す。
【0083】
(1)属性「フィーチャ選択フラグ」の値が「○」でない、全ての行の属性「関連仕様要素ID」に記載された全ての仕様要素を「選択しない」と判別する。
【0084】
(2)属性「フィーチャ選択フラグ」の値が「○」である、全ての行の属性「関連仕様要素ID」に記載された全ての仕様要素を「選択する」と判別する。ここで、ある仕様要素が一度「選択しない」と判別されても、その後「選択する」と判別されれば、最終的に「選択する」となる。
【0085】
上記アルゴリズムに従った場合、図6の例では、属性「選択状態」の値が「選択する」と判別される仕様要素と、「選択しない」と判別される仕様要素は、以下のようになる。
【0086】
「選択する」:F002,F003,V001,V001−JPN,R002,R002−JPN,V003,V003−JPN。
【0087】
「選択しない」:F001,V001−USA,V001−CHN,R002−USA,R002−CHN,V003−USA,V003−CHN。
【0088】
すなわち、仕様データ記憶部11が記憶する仕様データd2−1〜d2−3を仕様要素選択状態データ読込み部14が更新した結果は、図9(a)〜図9(c)に示すようになる。
【0089】
ここで、仕様要素選択状態データd4における属性「フィーチャID」の値が「FT001−01」のフィーチャは選択されていないため、仕様データd2−1における属性「機能ID」の値が「F002」である仕様要素の属性「選択状態」の値が、一度「選択しない」の状態になる。しかしながら、仕様要素選択状態データd4における属性「フィーチャID」の値が「FT001−02」のフィーチャが選択されているため、仕様データd2−1における属性「機能ID」の値が「F002」である仕様要素の属性「選択状態」の値は、図9(a)に示すように、最終的に「選択する」の状態となる。
【0090】
仕様書出力可否判定部15は、出力可否判定ルール記憶部12内の出力可否判定ルールに基づいて、仕様データ記憶部11内の仕様データd5−1〜d5−3に含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する(ST30)。
【0091】
ここで、ステップST30で実行される処理の一例を、図10及び図11のフローチャートを用いて詳細に説明する。
【0092】
仕様書出力可否判定部15は、仕様データに含まれる仕様要素のうち、属性「出力可否」の値が「NULL」である仕様要素を選択する(ST31)。この仕様要素を「判定対象の仕様要素」とする。
【0093】
仕様書出力可否判定部15は、判定対象の仕様要素が存在するか否かを判定し(ST32)、存在しなければ処理を終了し、存在すれば判定サブルーチンを実行した後(ST33)、ステップST31に戻る。
【0094】
ステップST33の判定サブルーチンにおいて、仕様書出力可否判定部15は、判定対象の仕様要素の属性「選択状態」の値を確認する(sub1)。
【0095】
ステップsub1の確認結果が「選択しない」の場合:選択した仕様要素の属性「出力可否」の値を「否」にした後(sub2)、判定サブルーチンを終了してステップST31に戻る(リターン)。
【0096】
ステップsub1の確認結果が「選択する」又は「NULL」の場合:判定対象の仕様要素の属性「リンク情報」を参照し、その仕様要素が、他の仕様要素を参照しているかどうか判定する(sub3)。
ステップsub3の判定の結果、他の仕様要素を参照していない場合:選択した仕様要素の属性「出力可否」の値を「可」にした後(sub4)、判定サブルーチンを終了してステップST31に戻る。
【0097】
ステップsub3の判定の結果、他の仕様要素を参照している場合:判定対象の仕様要素が参照する全ての仕様要素の属性「出力可否」の値を確認する(sub5)。
【0098】
ステップsub5の確認の結果、全て「可」の場合:判定対象の仕様要素の属性「出力可否」の値を「可」にした後(sub4)、判定サブルーチンを終了してステップST31に戻る。
【0099】
ステップsub5の確認の結果、一つでも「否」が存在する場合:判定対象の仕様要素の属性「出力可否」の値を「否」にした後(sub2)、判定サブルーチンを終了してステップST31に戻る。
【0100】
ステップsub5の確認の結果、「可」と「NULL」が混在している場合:まず、現在の判定対象の仕様要素を、「参照元の仕様要素」として記憶しておく(sub6)。続いて、現在の判定対象の仕様要素が参照する仕様要素のうち、属性「出力可否」の値が「NULL」の仕様要素を新たな判定対象の仕様要素として判定サブルーチンを実行した後(sub7〜sub8)、判定対象の仕様要素を参照元の仕様要素として記憶していた仕様要素に戻して(sub9)、再度ステップsub5を実行する。
図9の例では、属性「出力可否」の値が「可」と判別される仕様要素と、「否」と判別される仕様要素は、それぞれ以下のようになる。
【0101】
属性「出力可否」の値が「可」の仕様要素:F002,F003,V001,V001−JPN,R002,R002−JPN,V003,V003−JPN。
【0102】
属性「出力可否」の値が「否」の仕様要素:F001,V001−USA,V001−CHN,R002−USA,R002−CHN,V003−USA,V003−CHN。
【0103】
すなわち、仕様データ記憶部11が記憶する図9の仕様データd5−1〜d5−3を仕様書出力可否判定部15が更新した結果は、図12の仕様データd6−1〜d6−3のようになる。
【0104】
仕様書生成部16は、仕様書出力可否判定部15による更新が完了すると、仕様データ記憶部11内の仕様データd6−1〜d6−3のうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、名称、説明、及び関連仕様要素IDが記述された仕様書データd7を生成及び出力する(ST40)。
【0105】
なお、本実施形態においては、「仕様データ」及び「仕様要素選択状態データ」の論理構造を表形式で表現しているが、実装する際には表形式でなくても、この構造を表現できるような物理構造であればよい。
【0106】
上述したように本実施形態によれば、フィーチャモデルに基づく選択状態の属性と出力可否の属性とリンク情報とを含むように仕様データを変換し、この仕様データの出力可否の属性が出力可を示す仕様要素から仕様書データを生成する構成により、各フィーチャに対応する全ての仕様要素を容易に管理できると共に、不要な仕様要素が含まれない仕様書を容易に生成することができる。
【0107】
(第2の実施形態)
図13は第2の実施形態に係る仕様書生成装置の構成を示す模式図であり、図1と同一部分については同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【0108】
本実施形態は、第1の実施形態の変形例であり、仕様書生成装置10に、出力可否判定ルール読込み部17を追加した構成により、出力可否判定ルール記憶部11内の出力可否判定ルールを書換え可能としている。
【0109】
出力可否判定ルール読込み部17は、外部から読み込んだ出力可否判定ルールを出力可否判定ルール記憶部17に書き込むものであり、ここでは、仕様書出力可否判定部15により仕様要素の出力可否を判定するための規則を記述した出力可否判定ルールを読み込む機能と、読み込んだ出力可否判定ルールを仕様書出力可否判定部15が解釈可能なデータ形式に変換する機能と、変換した出力可否判定ルールを出力可否判定ルール記憶部12に書き込む機能とをもっている。
【0110】
図14は、変換した仕様データの構造の一例を表現したクラス図である。このクラス図には、仕様データ全体を表現した「仕様データ」クラス、仕様データ内の仕様要素を、仕様クラスによらずに抽象的に表現した「仕様要素」クラス、仕様クラスごとの仕様要素を表現した「仕様要素(機能)」クラス、「仕様要素(画面)」クラス、「仕様要素(帳票)」クラスが存在している。
【0111】
仕様データクラスの属性としては、その仕様データ内に含まれる全ての仕様要素のリストである属性「仕様要素リスト」を定義している。
【0112】
仕様データクラスでは、仕様要素の属性「選択状態」の値が「選択する」である、全ての仕様要素を取得する操作である「GET_SELECTED_ELEMENTS()」と、仕様要素の属性「出力可否」の値が「可」である、全ての仕様要素を取得する操作である「GET_OUTPUT_ELEMENTS()」とを定義している。
【0113】
仕様要素クラスの属性としては、仕様メタ情報の全ての仕様クラスに共通する属性を定義しており、その仕様要素を一意に識別するための属性である「仕様要素ID」、その仕様要素の名称を記述した属性である「仕様要素名」と、その仕様要素が所属する「仕様」クラスを示す属性である「仕様クラス種別」と、仕様データを読み込んだ際に追加した属性である「選択状態」、「出力可否」とを定義している。
【0114】
「仕様要素」クラスの子クラスである「仕様要素(機能)」クラスでは、その属性として、その仕様要素の説明を記述した属性である「説明」を定義し、「仕様要素(画面)」クラス及び「仕様要素(帳票)」クラスでは、その属性として、その仕様要素に関連する「仕様要素(機能)」クラスを参照する属性である「関連機能」と「説明」を、それぞれ定義している。
【0115】
「仕様要素」クラス、及び、その子クラスである「仕様要素(機能)」クラス、「仕様要素(画面)」クラス、そして「仕様要素(帳票)」クラスでは、その仕様要素が他の仕様要素を参照しているかどうかを、属性「リンク情報」を参照することで判定する操作「HAS_REFS()」と、属性「リンク情報」を参照し、その仕様要素が参照する全ての仕様要素を取得する操作「GET_REFS()」とを定義している。
【0116】
なお、クラス構造は、図14に限定せず、仕様要素の構造が表現できていればよい。
【0117】
ここで、仕様書生成装置10が読み込む出力可否判定ルールは、仕様書出力可否判定部15における判定ルールr1,r2を記述したものであり、例えば、図15及び図16に示すような形式で表現する。以下で、それぞれの出力可否判定ルールr1,r2について説明する。
【0118】
始めに、図15に示す出力可否判定ルールr1について述べる。
【0119】
1行目:関数「出力可否判定」の定義の開始を意味する。
【0120】
2行目:「仕様要素」クラスのインスタンス「element」を定義する。
【0121】
3行目:「仕様データ」クラスのメソッド「GET_SELECTED_ELEMENTS()」により取得した全ての仕様要素について、それぞれ、変数「element」に代入して4行目の処理を実行する。ここで、メソッド「GET_SELECTED_ELEMENTS()」は、前述のとおり、「仕様データ」クラスのメソッドであり、仕様データ内の仕様要素のうち、属性「選択状態」の値が「選択する」の意味である、全ての仕様要素を取得するものである。
【0122】
4行目:変数「element」を引数として、後述の関数「判定サブルーチン」を実行する。
【0123】
5行目:3行目で定義した繰り返し処理が、ここで終了していることを意味する。
【0124】
6行目:関数を終了する。
【0125】
7行目:関数「出力可否判定」の定義の終了を意味する。
【0126】
続いて、図16に示す出力可否判定ルールr2について述べる。
【0127】
1行目:関数「判定サブルーチン」の定義の開始を意味する。引数は「仕様要素」クラスのインスタンス「element」である。
【0128】
2行目:「仕様要素」クラスのインスタンス「ref_element」を定義する。
【0129】
3行目:変数「ref_element」の属性「選択状態」の値が「未選択」の場合、4行目の処理を実行する。
【0130】
4行目:変数「element」の属性「出力可否」の値を「否」にして、関数を終了する。
【0131】
5行目:3行目の条件を満たさない場合、6行目からの処理を実行する。
【0132】
6行目:変数「element」のメソッド「HAS_REFS()」により取得した値が「FALSE」の場合、7行目の処理を実行する。ここで、メソッド「HAS_REFS()」は、前述のとおり、「仕様要素」クラスのメソッドであり、変数「element」が他の仕様要素を参照しているかどうかを返すものである。
【0133】
7行目:変数「element」の属性「出力可否」の値を「可」にして、関数を終了する。
【0134】
8行目:6行目の条件を満たさない場合、9行目からの処理を実行する。
【0135】
9行目:「仕様要素」クラスのメソッド「GET_REFS()」により取得した全ての仕様要素について、それぞれ、変数「ref_element」に代入して10行目からの処理を実行する。ここで、メソッド「GET_REFS()」は、前述のとおり、「仕様要素」クラスのメソッドであり、当該仕様要素が参照する全ての仕様要素を取得するものである。
【0136】
10行目:変数「ref_element」の属性「出力可否」の値が「NULL」の場合、11行目の処理を実行する。
【0137】
11行目:変数「ref_element」を引数として、関数「判定サブルーチン」を実行する。
【0138】
12行目:10行目で定義した条件文の終了を意味する。
【0139】
13行目:変数「ref_element」の属性「出力可否」の値が「否」の場合、14行目の処理を実行する。
【0140】
14行目:変数「element」の属性「出力可否」の値を「否」にして、関数を終了する。
【0141】
15行目:13行目で定義した条件文の終了を意味する。
【0142】
16行目:9行目で定義した繰り返し処理が、ここで終了していることを意味する。
【0143】
17行目:変数「element」の属性「出力可否」の値を「可」にする。
【0144】
18行目:6行目で定義した条件文の終了を意味する。
【0145】
19行目:3行目で定義した条件文の終了を意味する。
【0146】
20行目:関数を終了する。
【0147】
21行目:関数「判定サブルーチン」の定義の終了を意味する。
【0148】
出力可否判定ルール読込み部17が、出力可否判定ルールr1,r2を読み込む順序については、仕様書出力可否判定部15が、出力可否判定ルール記憶部12から出力可否判定ルールを取得する以前であればよい。
【0149】
以上のような構成によれば、第1の実施形態の動作に加え、出力可否判定ルール読込み部17が、外部から読み込んだ出力可否判定ルールを出力可否判定ルール記憶部17に書き込むので、出力可否判定ルール記憶部17内の出力可否判定ルールを書き換えることができる。
【0150】
(第3の実施形態)
図17は第3の実施形態に係る仕様書生成装置の構成を示す模式図である。
【0151】
本実施形態は、第1の実施形態の変形例であり、仕様書生成装置10に、利用者対話部18を追加した構成により、仕様書データd7を構成する仕様要素を利用者が判定できる形態を示している。
【0152】
利用者対話部18は、以下の各機能(f18-1)〜(f18-3)をもっている。
【0153】
(f18-1)ステップST30の仕様書出力可否判定部15による更新が完了すると、ステップST40の仕様書生成部16による仕様書データd7の生成よりも先行して、仕様書出力可否判定部15による更新結果を出力することにより、当該更新結果の修正内容と修正命令、又は仕様書生成部16の起動命令の入力を促す機能。
【0154】
(f18-2)更新結果の修正内容と修正命令の入力を受け付けると、当該修正内容と修正命令に基づいて当該更新結果を修正する機能。
【0155】
(f18-3)起動命令の入力を受け付けると、仕様書生成部16を起動する機能。
【0156】
なお、利用者対話部18は、例えば、出力可否判定ルール記憶部12において「ある特定の仕様クラスに属する仕様要素の出力可否を利用者に問い合わせる」というルールを記載しておくことで、特定の仕様クラスに属する仕様要素の出力可否に、利用者の判定を反映可能な機能部として実現してもよい。
【0157】
以上のような構成によれば、第1の実施形態のステップST30とST40との間において、利用者対話部18が、仕様書出力可否判定部15による更新結果を出力することにより、当該更新結果の修正内容と修正命令、又は仕様書生成部16の起動命令の入力を促す。このとき、利用者対話部18は、更新結果の修正内容と修正命令の入力を受け付けると、当該修正内容と修正命令に基づいて当該更新結果を修正する。また、利用者対話部18は、起動命令の入力を受け付けた場合には、仕様書生成部16を起動する。
【0158】
このように、利用者対話部18が、仕様書出力可否判定部15による更新結果を出力することにより、当該更新結果の修正内容と修正命令などの入力を促すようにしたので、仕様書データd7を構成する仕様要素を利用者が判定することができる。
【0159】
(第4の実施形態)
図18は第4の実施形態に係る仕様書生成装置の構成を示す模式図である。
【0160】
本実施形態は、第2及び第3の実施形態を組み合わせた例であり、第2の実施形態の仕様書生成装置10に、第3の実施形態の利用者対話部18を追加した構成により、出力可否判定ルール記憶部17内の出力可否判定ルールを書き換えることができると共に、仕様書データd7を構成する仕様要素を利用者が判定できる形態を示している。
【0161】
以上のような構成によれば、第2及び第3の実施形態の作用効果を同時に得ることができる。
【0162】
以上説明した少なくとも一つの実施形態によれば、フィーチャモデルに基づく選択状態の属性と出力可否の属性とリンク情報とを含むように仕様データを変換し、この仕様データの出力可否の属性が出力可を示す仕様要素から仕様書データを生成する構成により、各フィーチャに対応する全ての仕様要素を容易に管理できると共に、不要な仕様要素が含まれない仕様書を容易に生成することができる。
【0163】
また、各実施形態によれば、ドメイン開発プロセスにおけるコアアセット開発者においては、フィーチャと仕様要素との対応関係の管理が容易になるため、ソフトウェア開発プロセスの生産性、品質及びリードタイムを向上させることができる。
【0164】
さらに、各実施形態によれば、アプリケーション開発プロセスにおけるアプリケーション開発者においては、コアアセットに含まれる仕様要素から必要な仕様要素だけを記述した仕様要素を容易に得ることができ、もって、ソフトウェア開発プロセスの生産性、品質及びリードタイムを向上させることができる。
【0165】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0166】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0167】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0168】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【0169】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0170】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0171】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0172】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0173】
10…仕様書生成装置、11…仕様データ記憶部、12…出力可否判定ルール記憶部、13…仕様データ読込み部、14…仕様要素選択状態データ読込み部、15…仕様書出力可否判定部、16…仕様書生成部、17…出力可否判定ルール読込み部、18…利用者対話部、d1−1〜d1−3,d2−1〜d2−3,d5−1〜d5−3,d6−1〜d6−3…仕様データ、d3,d4…仕様要素選択状態データ、d7…仕様書データ。
【技術分野】
【0001】
本発明の実施形態は、仕様書生成プログラム及び装置に関する。
【背景技術】
【0002】
ソフトウェア開発においては、生産性の向上、品質の安定、及びリードタイムの短縮を図る観点から、品質の保証されたソフトウェア部品を蓄積して再利用することが有効である。再利用の対象は、プログラム、コンポーネント、フレームワーク等へと変化している。このような変化の中、同一ドメインの製品開発に限定するものの、様々な種類の成果物を体系的に再利用の対象とすることにより、再利用の有効性を向上させるプロダクトライン型のソフトウェア開発手法が注目されている。
【0003】
プロダクトライン型のソフトウェア開発手法では、製品開発のロードマップを描き、対象製品を開発するためのコアアセットと呼ばれるソフトウェア開発の資産をあらかじめ整備し、これらのコアアセットを利用して製品を開発する。コアアセットとしては、アーキテクチャ、ソフトウェアコンポーネント、ドメインモデル、要求説明書、文書と仕様書、性能モデル、テストケース、プロセス説明書等のように、ソフトウェア開発のプロセスで作成又は利用するためのあらゆる成果物が含まれる。
【0004】
プロダクトライン型ソフトウェア開発のプロセスは、ドメイン開発プロセスと、アプリケーション開発プロセスにより構成される。
【0005】
ドメイン開発プロセスにおいては、アプリケーション群の共通性と、特定のアプリケーションに対応する可変性とを備えるコアアセットを開発する。この共通性と可変性は、一般的には、システムのフィーチャ(特性)の集合を階層的に構造化したツリーからなるフィーチャモデルで表現される。ここで、フィーチャは、システムの特性を意味している。フィーチャモデルでは、それぞれのフィーチャを更に他のフィーチャに分解可能である。また、フィーチャモデルでは、フィーチャを選択する際の制約として、それぞれのフィーチャに対する必須、選択可能、又は選択制限対象といった属性や、他のフィーチャとの依存関係を定義可能となっている。
【0006】
アプリケーション開発プロセスにおいては、ドメイン開発プロセスで開発したコアアセットを再利用して、特定のアプリケーションを開発する。このアプリケーション開発プロセスでは、フィーチャモデルで定義された制約に従い、コアアセットに含まれるフィーチャのうちアプリケーションで使用するフィーチャを選択して、コアアセットの可変性を固定する。
【0007】
アプリケーション開発プロセスにおいてコアアセットを再利用するためには、フィーチャモデルの各フィーチャと、コアアセットとの対応関係を管理する必要がある。
【0008】
しかしながら、仕様書においては、アプリケーション群の共通性と、特定のアプリケーションに対応する可変性とを混在して記述することが一般的である。そのため、仕様書をコアアセットとして再利用する場合、フィーチャと仕様書とを単に対応付けるだけでは不十分であり、仕様書を構成する仕様要素をフィーチャと対応付けて管理する必要がある。
【0009】
この管理により、アプリケーション開発プロセスでは、選択したフィーチャに対応付けられた仕様要素から構成される仕様書を作成可能としている。このような仕様書作成技術としては、仕様書をXMLで記述することにより、文章で記述された仕様における可変性を表現している方法が知られている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2007−12003号公報
【特許文献2】特開2009−223856号公報
【非特許文献】
【0011】
【非特許文献1】K・ポール他,ソフトウェアプロダクトラインエンジニアリング−ソフトウェア製品系列開発の基礎と概念から技法まで−,株式会社エスアイビー・アクセス,2009。
【非特許文献2】I. John, D. Muthig, Modeling variability with use cases, Technical Report IESE Report No. 063.02/E, Fraunhofer IESE, 2002.
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、以上のような仕様書作成技術では、通常は特に問題ないが、本発明者の検討によれば、フィーチャと仕様要素との対応関係を管理する場合に、以下の2つの不都合がある。
【0013】
第1の不都合の前提として、開発対象のソフトウェアの規模が大きくなるに従い、仕様書に記載する内容が多くなり、フィーチャと対応付ける仕様要素も増加することが挙げられる。仕様書に記載すべき内容は、フィーチャモデルとは異なる視点で構成されるため、フィーチャと仕様要素との対応関係が複雑になることが多い。例えば、あるフィーチャに対応する「機能」に関する仕様要素が、「画面」に関する仕様要素と「帳票」に関する仕様要素とを参照している場合、そのフィーチャは「機能」の仕様要素の他に、「画面」の仕様要素及び「帳票」の仕様要素にも対応していることになる。
【0014】
従って、前述した方法でフィーチャと仕様要素との対応関係を管理する場合、ドメイン開発者においては、各フィーチャに対応する全ての仕様要素を特定することが困難であるという第1の不都合がある。
【0015】
第2の不都合の前提として、選択(固定)したフィーチャに対応する仕様要素により構成される仕様書を、仕様要素間の関連を考慮せずに生成した場合、本来記載すべきではない仕様要素が仕様書に含まれてしまうことが挙げられる。例えば、ある「機能」と「画面」の仕様要素が関連していて、その「機能」の仕様要素には、選択されていないあるフィーチャが対応しており、その「画面」の仕様要素には、選択された別のフィーチャが対応している場合を考える。この場合、仕様要素間の関連を考慮せずに、「選択されたフィーチャに対応する仕様要素を、仕様書として出力する」というルールに従い仕様書を生成した場合、アプリケーションの機能として必要のない「画面」の仕様要素が仕様書として出力されてしまう。
【0016】
従って、前述した方法でフィーチャと仕様要素との対応関係を管理する場合、仕様要素間の関連までは管理できないため、不要な仕様要素が仕様書に含まれてしまうという第2の不都合がある。その結果、仕様書の品質が低下し、その仕様書に従って開発したアプリケーションに仕様不備が混入してしまう可能性が生じてしまう。
【0017】
本明細書に開示した実施形態は、各フィーチャに対応する全ての仕様要素を容易に管理し得ると共に、不要な仕様要素が含まれない仕様書を容易に生成し得る仕様書生成プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【0018】
以下で説明する実施形態の仕様書生成装置は、仕様データ記憶手段を備えている。
【0019】
実施形態の仕様書生成装置は、特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、及び属性を互いに関連付けた参照先の仕様データと、この参照先の仕様要素を参照する参照元の仕様要素のID、属性、及び前記参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データとをそれぞれ読み込む。
【0020】
実施形態の仕様書生成装置は、前記読み込んだ各仕様データのうち、前記参照先の仕様データに対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データを前記仕様データ記憶手段に書き込む。
【0021】
実施形態の仕様書生成装置は、前記読み込んだ各仕様データのうち、前記参照元の仕様データに対し、前記特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、前記仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び前記関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データを前記仕様データ記憶手段に書き込む。
【0022】
実施形態の仕様書生成装置は、前記特定のアプリケーションのフィーチャモデルにおけるフィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャの選択又は未選択を示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データを読み込む。
【0023】
実施形態の仕様書生成装置は、前記読み込んだ仕様要素選択状態データに対し、前記フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データを保持する。
【0024】
実施形態の仕様書生成装置は、前記保持した仕様要素選択状態データ内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する前記仕様データ記憶手段内の仕様データの仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する。
【0025】
また、実施形態の仕様書生成装置は、出力可否判定ルール記憶手段、仕様書出力可否判定手段及び仕様書生成手段を備えている。
【0026】
出力可否判定ルール記憶手段は、前記仕様データ記憶手段内の仕様データのうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、前記仕様データ記憶手段内の仕様データ、及び前記保持した仕様要素選択状態データに基づく、各々の前記仕様要素の出力可否を判定するためのルールである出力可否判定ルールを記憶する。
【0027】
仕様書出力可否判定手段は、前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する。
【0028】
仕様書生成手段は、前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する。
【図面の簡単な説明】
【0029】
【図1】第1の実施形態に係る仕様書生成装置の構成を示す模式図である。
【図2】同実施形態における仕様メタ情報の一例を説明するための模式図である。
【図3】同実施形態における仕様データの一例を説明するための模式図である。
【図4】同実施形態におけるフィーチャモデルの一例を説明するための模式図である。
【図5】同実施形態における仕様要素選択状態データの一例を説明するための模式図である。
【図6】同実施形態における変換後の仕様データの一例を説明するための模式図である。
【図7】同実施形態における変換後の仕様要素選択状態データの一例を説明するための模式図である。
【図8】同実施形態における動作を説明するためのフローチャートである。
【図9】同実施形態における選択状態の更新後の仕様データの一例を説明するための模式図である。
【図10】同実施形態におけるステップST30の動作を説明するためのフローチャートである。
【図11】同実施形態における判定サブルーチンの動作を説明するためのフローチャートである。
【図12】同実施形態における出力可否の更新後の仕様データの一例を説明するための模式図である。
【図13】第2の実施形態に係る仕様書生成装置の構成を示す模式図である。
【図14】同実施形態における変換した仕様データの構造の一例を表現したクラス図である。
【図15】同実施形態における出力可否判定ルールの一例を示す模式図である。
【図16】同実施形態における出力可否判定ルールの一例を示す模式図である。
【図17】第3の実施形態に係る仕様書生成装置の構成を示す模式図である。
【図18】第4の実施形態に係る仕様書生成装置の構成を示す模式図である。
【発明を実施するための形態】
【0030】
以下、各実施形態について図面を用いて説明する。なお、以下の各図において略同一の部分については同一の符号を付してその詳しい説明を省略する。また、以下の仕様書生成装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から仕様書生成装置となるコンピュータにインストールされ、仕様書生成装置の機能を実現させるための仕様書生成プログラムが用いられる。
【0031】
(第1の実施形態)
図1は第1の実施形態に係る仕様書生成装置の構成を示す模式図である。図中の矢印は、仕様データd1−1〜d1−3,d2−1〜d2−3,d5−1〜d5−3,d6−1〜d6−3、仕様要素選択状態データd3,d4、仕様書データd7等のデータ又は処理の流れを示している。仕様書生成装置10は、仕様データ記憶部11、出力可否判定ルール記憶部12、仕様データ読込み部13、仕様要素選択状態データ読込み部14、仕様書出力可否判定部15及び仕様書生成部16を備えている。
【0032】
始めに、仕様データ、仕様メタ情報、仕様クラス、属性、及び仕様要素選択状態データ、フィーチャモデル等の用語について簡単に説明し、その後、各部11〜16について述べる。
【0033】
ここで、仕様データd1−1〜d1−3とは、仕様書を構成する仕様要素からなるデータであり、仕様書生成装置10の利用者によって予め仕様メタ情報に従って作成される。仕様データを作成する利用者は、仕様データのデータ構造を定義した仕様メタ情報に従い、必要な仕様要素を定義していく。
【0034】
仕様メタ情報は、仕様書に記載すべき仕様を、仕様の種類に応じた「仕様クラス」として定義した情報であり、特定のコアアセットの仕様ではなく、仕様書に記載すべき仕様の枠組みを定義した情報である。仕様メタ情報としては、図2に一例を示すように、機能仕様を定義するための仕様クラス「機能」、画面仕様を定義するための仕様クラス「画面」、帳票仕様を定義するための仕様クラス「帳票」などが使用可能であるが、これに限定されない。また、ある仕様クラスの実体(インスタンス)を「仕様要素」と呼ぶ。例えば、当該装置の利用者が、「利用者情報登録機能」、「利用者情報更新機能」及び「利用者情報削除機能」等の機能仕様を定義する場合、それらの機能仕様を仕様クラス「機能」の仕様要素としてそれぞれ記述することになる。
【0035】
仕様クラスには一つ以上の属性を定義する。図2に示した例では、仕様クラス「機能」には、各仕様要素を一意に識別するための属性「機能ID」、各仕様要素の名称を記述するための属性「機能名」、各仕様要素の説明を記述するための属性「説明」を記述するよう、仕様メタ情報で定義している。なお、以下で説明する属性(名称、説明)はあくまで例示であり、仕様データd1−1〜d1−3において、「ID」以外の属性は、仕様クラスによって異なるものである。
【0036】
属性には、他の仕様要素への参照が定義可能である。図2に示した例では、仕様クラス「画面」の属性「関連機能ID」の値には、仕様クラス「機能」に属する仕様要素の「機能ID」を記述するよう、仕様メタ情報に定義している。なお、参照可能な仕様クラスは、参照元の仕様クラスと同一の仕様クラスでもよく、異なる仕様クラスでもよい。また、ひとつの属性から参照可能な仕様クラスの種類は二種類以上あってもよい。
【0037】
仕様データd1−1は、図3(a)に一例を示すように、一行目が仕様メタ情報に定義された属性を示し、二行目〜四行目が「機能クラス」の仕様要素を示している。図3(a)には、3個の仕様要素が定義してあることになる。また、図3(a)は、前述の仕様メタ情報の例に従う場合の例を示しているため、仕様クラス「機能」の仕様要素では、属性「機能ID」、属性「機能名」、及び属性「説明」の値を定義する。
【0038】
仕様データd1−2は、図3(b)に一例を示すように、仕様クラス「画面」の仕様要素に関し、属性「画面ID」、属性「画面名」及び属性「説明」の他に、その仕様要素に関連する、仕様クラス「機能」に属する仕様要素への参照を、属性「関連機能ID」として定義可能となっている。「関連機能ID」属性には、機能クラスとして定義された機能仕様の「機能ID」を定義する。ある仕様要素が他の仕様要素を参照している場合、仕様データを読み込んだ際に、参照される仕様要素が存在しているかどうかを検証してもよい。
【0039】
同様に、仕様データd1−3は、図3(c)に一例を示すように、仕様クラス「帳票」の仕様要素に関し、属性「帳票ID」、属性「帳票名」、属性「説明」及び属性「関連機能ID」が定義可能となっている。
【0040】
仕様データのデータ形式は、前述同様に、仕様メタ情報に従った仕様データを表現可能であれば、任意のデータ形式が使用可能となっている。例えば、Microsoft(登録商標)社の表計算ソフトウェアであるExcel(登録商標)を使用した表形式のデータとしてもよい。
【0041】
仕様要素選択状態データd3とは、コアアセット全体の仕様データ内の各仕様要素が、ある特定のアプリケーションにおいてどのような状態であるかを示す情報であり、仕様書生成装置10の利用者によって予め作成される。また、仕様要素選択状態データd3とは、コアアセットのフィーチャモデルに含まれる全てのフィーチャに対して、それぞれのフィーチャに対応する仕様要素と、どのフィーチャが特定のアプリケーションに必要であるかを示した情報であってもよい。なお、仕様要素選択状態データd3では,上述のようにフィーチャモデルの構造を表すことができるが、更には(個別のフィーチャに対応する)仕様要素が選択されているのか否かを知ることができるのも重要な機能である。
【0042】
図4にフィーチャモデルの例を示す。ここでは、フィーチャ「システム」は、2つのフィーチャ「タイプ」と「仕向地」により構成される。(親)フィーチャ「タイプ」においては、代替を示す関係により、2つの(子)フィーチャ「Aタイプ」又は「Bタイプ」のうちの、いずれかのフィーチャが選択される。フィーチャ「仕向地」においては、代替を示す関係により、3つのフィーチャ「日本」、「米国」、又は「中国」のうちの、いずれかのフィーチャが選択される。このフィーチャの選択は、特定のアプリケーションを構築する際に行われる。
【0043】
図5は、図4のフィーチャモデルを表現した仕様要素選択状態データd3の例を示している。この仕様要素選択状態データd3においては、1列目〜4列目が各フィーチャとフィーチャモデルの構造を表し、5列目「関連仕様要素ID」が各フィーチャに対応する仕様要素(ID)を表し、6列目「フィーチャ選択フラグ」が特定のアプリケーションに必要なフィーチャであるか否かのフラグを表している。なお、仕様要素選択状態データd3には、図5に示したように、フィーチャモデルの構造も表現してもよいが、仕様要素選択状態データに必要な情報は、特定のアプリケーションにおける各仕様要素の状態を示す情報である。そのため、仕様要素選択状態データd3は、例えば、仕様要素を識別するための列と、ある特定のアプリケーションにおけるその仕様要素の状態を表現するための列によってのみ、構成されていてもよい。
【0044】
また、仕様要素選択状態データd3は任意のデータ形式が使用可能となっている。例えば、仕様データと同様に、Microsoft社の表計算ソフトウェアであるExcelを使用した表形式のデータとしてもよい。
【0045】
以上が用語の説明である。次に、各部11〜16について述べる。
【0046】
仕様データ記憶部11は、各部13〜16から読出/書込可能な記憶手段であり、仕様データd2−1〜d2−3,d5−1〜d5−3,d6−1〜d6−3を記憶する。
【0047】
出力可否判定ルール記憶部12は、例えば仕様書生成プログラムの実行時に図示しないCPU(出力可否判定ルールを出力可否判定ルール記憶手段に書き込む手段)から書込可能で仕様書出力可否判定部15から読出可能な記憶手段であり、出力可否判定ルールを記憶する。
【0048】
出力可否判定ルールは、仕様データ及び仕様要素選択状態データに基づいて導かれるものであり、仕様データ記憶部11が記憶する仕様データ内の仕様要素のうち、どの仕様要素を仕様書として出力すべきかを、仕様データ内の仕様要素の選択状態を示す属性の値に基づいて判定するルールである。但し、出力可否判定ルールとしては、仕様データ内の仕様要素の選択状態を示す属性の値だけでなく、例えば、仕様メタ情報の構造や、仕様要素間の参照等を、どの仕様要素を仕様書として出力すべきかを判定基準にしてもよい。
【0049】
このような出力可否判定ルールは、以下の[1]〜[4]には限定されるものではないが、本実施形態では、仕様データ記憶部11内の仕様データd2−1〜d2−3のうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、以下の[1]〜[4]を判定するルールとしている。
【0050】
[1]未選択を示す選択状態を含む場合には出力可否情報のNULL値を出力否の値に更新することを判定する。
【0051】
[2]NULL値又は選択を示す選択状態を含んでリンク情報を含まない場合には出力可否情報のNULL値を出力可の値に更新することを判定する。
【0052】
[3]NULL値又は選択を示す選択状態及びリンク情報を含む場合で当該リンク情報が示す関連仕様要素IDに対応する他の仕様要素の出力可否情報が出力可を示すときには、当該判定対象の仕様要素の出力可否情報のNULL値を出力可の値に更新することを判定する。
【0053】
[4]NULL値又は選択を示す選択状態及びリンク情報を含む場合で当該リンク情報が示す関連仕様要素IDに対応する他の仕様要素の出力可否情報が出力否を示すときには、当該判定対象の仕様要素の出力可否情報のNULL値を出力否の値に更新することを判定する。
【0054】
また、仕様データ記憶部11及び出力可否判定ルール記憶部12は、同一の記憶装置内の別々の記憶領域、又は別々の記憶装置のいずれで実現してもよい。
【0055】
仕様データ読込み部13は、以下の各機能(f13-1)〜(f13-3)をもっている。
【0056】
(f13-1)特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、名称及び説明を互いに関連付けた参照先の仕様データd1−1と、この参照先の仕様要素を参照する参照元の仕様要素のID、名称、説明、及び参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データd1−2,d1−3とをそれぞれ読み込む機能。なお、読み込み元は、プログラムと同様にネットワーク又は記憶媒体などが適宜、使用可能となっている。
【0057】
(f13-2)読み込んだ各仕様データd1−1〜d1−3のうち、参照先の仕様データd1−1に対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データd2−1を仕様データ記憶部11に書き込む機能。
【0058】
(f13-3)読み込んだ各仕様データd1−1〜d1−3のうち、参照元の仕様データd1−2,d1−3に対し、特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データd2−2,d2−3を仕様データ記憶部11に書き込む機能。
【0059】
ここで、「特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態」を示す属性は、仕様要素ごとに設定されるものであり、特定のアプリケーションのフィーチャモデルから判断可能となっている。例えば、ある仕様要素に対応するフィーチャが、ある特定のアプリケーションに必要である場合には、その仕様要素の選択状態を示す属性の値を「選択する」(=選択)とし、一方、その仕様要素に対応するフィーチャが、ある特定のアプリケーションに不要である場合には、その仕様要素の選択状態を示す属性の値を「選択しない」(=未選択)とするというように、ある特定のアプリケーションのフィーチャモデルにおいて選択されたフィーチャ及び選択されていないフィーチャが、それぞれどの仕様要素に対応しているかを識別する。なお、フィーチャモデルにおける各フィーチャが全ての仕様要素に対応しているとは限らないので、選択状態を示す属性の値が空の仕様要素が存在していてもよい。
【0060】
仕様データ記憶部11に記憶する仕様データのデータ形式は、各部13〜16が解釈可能なデータ形式であればよい。例えば、各部13〜16をオブジェクト指向言語により実装する場合には、仕様クラスをオブジェクト指向言語のクラスに、そして、それぞれの仕様クラスに属する仕様要素をオブジェクト指向言語のインスタンスに対応させることができる。
【0061】
また、仕様書生成装置10が読み込んだ仕様データd2−1〜d2−3は、表形式で表現した場合、図6(a)〜図6(c)に示すようになる。
【0062】
図6(b)〜図6(c)に示す例では、「画面」クラス及び「帳票」クラスの仕様要素のうち、「関連機能ID」として「機能」クラスの仕様要素を参照している仕様要素の「リンク情報」属性には、「関連機能ID」属性に記述された値を識別子としてもつ「機能」クラスの仕様要素へのリンク情報が記載されている。一方、他の仕様要素を参照しない「機能」クラスは、図6(a)に示すように、リンク情報をもたない。
【0063】
ここで、仕様データの「リンク情報」、「選択状態」及び「出力可否」の構造については、前述した例に限らず、各仕様要素に対して、その仕様要素が参照する他の仕様要素へのリンク情報と、「選択状態」に相当する情報と、「出力可否」に相当する情報と、が対応付けられている構造であれば、任意の構造が使用可能となっている。
【0064】
仕様要素選択状態データ読込み部14は、以下の各機能(f14-1)〜(f14-4)をもっている。
【0065】
(f14-1)特定のアプリケーションのフィーチャモデルにおけるフィーチャ毎に、親フィーチャのID、当該親フィーチャからみて代替又は包括を示す関係、当該フィーチャを識別するためのフィーチャID、当該フィーチャの名称を示すフィーチャ名、当該フィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャを選択するか否かを示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データd3を読み込む機能。なお、読み込み元は、プログラムと同様にネットワーク又は記憶媒体などが適宜、使用可能となっている。また、フィーチャモデルにおける代替(or)を示す関係は、図4に示す白抜きの扇形によって表現されている。フィーチャモデルにおける包括(and)を示す関係は、図示しないが、黒塗りの扇形によって表現可能となっている。
【0066】
(f14-2)読み込んだ仕様要素選択状態データd3に対し、フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データd4を保持する機能。
【0067】
(f14-3)保持した仕様要素選択状態データd4内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する仕様データ記憶部11内の仕様データd2−1〜d2−3の仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する機能。
【0068】
ここで、機能(f14-3)における選択状態を更新するルールについては、当該装置内であらかじめ決めたものでもよいし、当該機能部を実行する前に当該装置の外部から読み込んだデータを解釈したものでもよい。
【0069】
仕様書生成装置10が読み込んだ仕様要素選択状態データd4を、図5に基づく表形式で表現した場合、図7に示すようになる。
【0070】
図7に示す例では、「リンク情報」属性には、「関連仕様要素ID」属性に記述された値を識別子としてもつ仕様要素へのリンク情報が記載されている。但し、仕様要素選択状態データd4の「リンク情報」の構造については、これに限らず、各仕様要素選択状態データに対して、その仕様要素選択状態データd4が参照する他の仕様要素へのリンク情報が対応付けられている構造であれば、任意の構造が使用可能となっている。
【0071】
仕様書出力可否判定部15は、出力可否判定ルール記憶部12内の出力可否判定ルールに基づいて、仕様データ記憶部11内の仕様データd5−1〜d5−3に含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する機能をもっている。
【0072】
仕様書生成部16は、仕様書出力可否判定部15による更新が完了すると、仕様データ記憶部11内の仕様データd6−1〜d6−3のうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、名称、説明、及び関連仕様要素IDが記述された仕様書データd7を生成する機能をもっている。
【0073】
仕様書データd7のデータ形式には、例えば、Microsoft(R)社の文書作成ソフトウェアであるWORDなどがある。また、仕様書データd7のレイアウトについては、例えば、仕様データと同じ表形式でも良いし、当該装置の利用者が設定したルールに従い仕様要素を加工した文書データとしても良い。
【0074】
また、仕様書生成部16は、抽出した全ての仕様要素を出力対象とせず、予め利用者が設定したルールに該当する仕様要素を出力対象としてもよい。
【0075】
次に、以上のように構成された仕様書生成装置の動作について図8のフローチャートを用いて説明する。
【0076】
仕様データ読込み部13は、特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、名称及び説明を互いに関連付けた参照先の仕様データd1−1と、この参照先の仕様要素を参照する参照元の仕様要素のID、名称、説明、及び参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データd1−2,d1−3とをそれぞれ読み込む(ST10)。
【0077】
また、仕様データ読込み部13は、読み込んだ各仕様データd1−1〜d1−3のうち、参照先の仕様データd1−1に対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データd2−1を仕様データ記憶部11に書き込む。
【0078】
さらに、仕様データ読込み部13は、読み込んだ各仕様データd1−1〜d1−3のうち、参照元の仕様データd1−2,d1−3に対し、特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データd2−2,d2−3を仕様データ記憶部11に書き込む。
【0079】
続いて、仕様要素選択状態データ読込み部14は、特定のアプリケーションのフィーチャモデルにおけるフィーチャ毎に、親フィーチャのID、当該親フィーチャからみて代替又は包括を示す関係、当該フィーチャを識別するためのフィーチャID、当該フィーチャの名称を示すフィーチャ名、当該フィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャを選択するか否かを示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データd3を読み込む(ST20)。
【0080】
また、仕様要素選択状態データ読込み部14は、読み込んだ仕様要素選択状態データd3に対し、フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データd4を図示しないメモリ等に保持する。
【0081】
しかる後、仕様要素選択状態データ読込み部14は、保持した仕様要素選択状態データd4内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する仕様データ記憶部11内の仕様データd2−1〜d2−3の仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する。
【0082】
ここで、図7に示した仕様要素選択状態データd4の例に基づいて、各仕様要素の属性「選択状態」の値を決定するアルゴリズムの例を以下に示す。
【0083】
(1)属性「フィーチャ選択フラグ」の値が「○」でない、全ての行の属性「関連仕様要素ID」に記載された全ての仕様要素を「選択しない」と判別する。
【0084】
(2)属性「フィーチャ選択フラグ」の値が「○」である、全ての行の属性「関連仕様要素ID」に記載された全ての仕様要素を「選択する」と判別する。ここで、ある仕様要素が一度「選択しない」と判別されても、その後「選択する」と判別されれば、最終的に「選択する」となる。
【0085】
上記アルゴリズムに従った場合、図6の例では、属性「選択状態」の値が「選択する」と判別される仕様要素と、「選択しない」と判別される仕様要素は、以下のようになる。
【0086】
「選択する」:F002,F003,V001,V001−JPN,R002,R002−JPN,V003,V003−JPN。
【0087】
「選択しない」:F001,V001−USA,V001−CHN,R002−USA,R002−CHN,V003−USA,V003−CHN。
【0088】
すなわち、仕様データ記憶部11が記憶する仕様データd2−1〜d2−3を仕様要素選択状態データ読込み部14が更新した結果は、図9(a)〜図9(c)に示すようになる。
【0089】
ここで、仕様要素選択状態データd4における属性「フィーチャID」の値が「FT001−01」のフィーチャは選択されていないため、仕様データd2−1における属性「機能ID」の値が「F002」である仕様要素の属性「選択状態」の値が、一度「選択しない」の状態になる。しかしながら、仕様要素選択状態データd4における属性「フィーチャID」の値が「FT001−02」のフィーチャが選択されているため、仕様データd2−1における属性「機能ID」の値が「F002」である仕様要素の属性「選択状態」の値は、図9(a)に示すように、最終的に「選択する」の状態となる。
【0090】
仕様書出力可否判定部15は、出力可否判定ルール記憶部12内の出力可否判定ルールに基づいて、仕様データ記憶部11内の仕様データd5−1〜d5−3に含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する(ST30)。
【0091】
ここで、ステップST30で実行される処理の一例を、図10及び図11のフローチャートを用いて詳細に説明する。
【0092】
仕様書出力可否判定部15は、仕様データに含まれる仕様要素のうち、属性「出力可否」の値が「NULL」である仕様要素を選択する(ST31)。この仕様要素を「判定対象の仕様要素」とする。
【0093】
仕様書出力可否判定部15は、判定対象の仕様要素が存在するか否かを判定し(ST32)、存在しなければ処理を終了し、存在すれば判定サブルーチンを実行した後(ST33)、ステップST31に戻る。
【0094】
ステップST33の判定サブルーチンにおいて、仕様書出力可否判定部15は、判定対象の仕様要素の属性「選択状態」の値を確認する(sub1)。
【0095】
ステップsub1の確認結果が「選択しない」の場合:選択した仕様要素の属性「出力可否」の値を「否」にした後(sub2)、判定サブルーチンを終了してステップST31に戻る(リターン)。
【0096】
ステップsub1の確認結果が「選択する」又は「NULL」の場合:判定対象の仕様要素の属性「リンク情報」を参照し、その仕様要素が、他の仕様要素を参照しているかどうか判定する(sub3)。
ステップsub3の判定の結果、他の仕様要素を参照していない場合:選択した仕様要素の属性「出力可否」の値を「可」にした後(sub4)、判定サブルーチンを終了してステップST31に戻る。
【0097】
ステップsub3の判定の結果、他の仕様要素を参照している場合:判定対象の仕様要素が参照する全ての仕様要素の属性「出力可否」の値を確認する(sub5)。
【0098】
ステップsub5の確認の結果、全て「可」の場合:判定対象の仕様要素の属性「出力可否」の値を「可」にした後(sub4)、判定サブルーチンを終了してステップST31に戻る。
【0099】
ステップsub5の確認の結果、一つでも「否」が存在する場合:判定対象の仕様要素の属性「出力可否」の値を「否」にした後(sub2)、判定サブルーチンを終了してステップST31に戻る。
【0100】
ステップsub5の確認の結果、「可」と「NULL」が混在している場合:まず、現在の判定対象の仕様要素を、「参照元の仕様要素」として記憶しておく(sub6)。続いて、現在の判定対象の仕様要素が参照する仕様要素のうち、属性「出力可否」の値が「NULL」の仕様要素を新たな判定対象の仕様要素として判定サブルーチンを実行した後(sub7〜sub8)、判定対象の仕様要素を参照元の仕様要素として記憶していた仕様要素に戻して(sub9)、再度ステップsub5を実行する。
図9の例では、属性「出力可否」の値が「可」と判別される仕様要素と、「否」と判別される仕様要素は、それぞれ以下のようになる。
【0101】
属性「出力可否」の値が「可」の仕様要素:F002,F003,V001,V001−JPN,R002,R002−JPN,V003,V003−JPN。
【0102】
属性「出力可否」の値が「否」の仕様要素:F001,V001−USA,V001−CHN,R002−USA,R002−CHN,V003−USA,V003−CHN。
【0103】
すなわち、仕様データ記憶部11が記憶する図9の仕様データd5−1〜d5−3を仕様書出力可否判定部15が更新した結果は、図12の仕様データd6−1〜d6−3のようになる。
【0104】
仕様書生成部16は、仕様書出力可否判定部15による更新が完了すると、仕様データ記憶部11内の仕様データd6−1〜d6−3のうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、名称、説明、及び関連仕様要素IDが記述された仕様書データd7を生成及び出力する(ST40)。
【0105】
なお、本実施形態においては、「仕様データ」及び「仕様要素選択状態データ」の論理構造を表形式で表現しているが、実装する際には表形式でなくても、この構造を表現できるような物理構造であればよい。
【0106】
上述したように本実施形態によれば、フィーチャモデルに基づく選択状態の属性と出力可否の属性とリンク情報とを含むように仕様データを変換し、この仕様データの出力可否の属性が出力可を示す仕様要素から仕様書データを生成する構成により、各フィーチャに対応する全ての仕様要素を容易に管理できると共に、不要な仕様要素が含まれない仕様書を容易に生成することができる。
【0107】
(第2の実施形態)
図13は第2の実施形態に係る仕様書生成装置の構成を示す模式図であり、図1と同一部分については同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【0108】
本実施形態は、第1の実施形態の変形例であり、仕様書生成装置10に、出力可否判定ルール読込み部17を追加した構成により、出力可否判定ルール記憶部11内の出力可否判定ルールを書換え可能としている。
【0109】
出力可否判定ルール読込み部17は、外部から読み込んだ出力可否判定ルールを出力可否判定ルール記憶部17に書き込むものであり、ここでは、仕様書出力可否判定部15により仕様要素の出力可否を判定するための規則を記述した出力可否判定ルールを読み込む機能と、読み込んだ出力可否判定ルールを仕様書出力可否判定部15が解釈可能なデータ形式に変換する機能と、変換した出力可否判定ルールを出力可否判定ルール記憶部12に書き込む機能とをもっている。
【0110】
図14は、変換した仕様データの構造の一例を表現したクラス図である。このクラス図には、仕様データ全体を表現した「仕様データ」クラス、仕様データ内の仕様要素を、仕様クラスによらずに抽象的に表現した「仕様要素」クラス、仕様クラスごとの仕様要素を表現した「仕様要素(機能)」クラス、「仕様要素(画面)」クラス、「仕様要素(帳票)」クラスが存在している。
【0111】
仕様データクラスの属性としては、その仕様データ内に含まれる全ての仕様要素のリストである属性「仕様要素リスト」を定義している。
【0112】
仕様データクラスでは、仕様要素の属性「選択状態」の値が「選択する」である、全ての仕様要素を取得する操作である「GET_SELECTED_ELEMENTS()」と、仕様要素の属性「出力可否」の値が「可」である、全ての仕様要素を取得する操作である「GET_OUTPUT_ELEMENTS()」とを定義している。
【0113】
仕様要素クラスの属性としては、仕様メタ情報の全ての仕様クラスに共通する属性を定義しており、その仕様要素を一意に識別するための属性である「仕様要素ID」、その仕様要素の名称を記述した属性である「仕様要素名」と、その仕様要素が所属する「仕様」クラスを示す属性である「仕様クラス種別」と、仕様データを読み込んだ際に追加した属性である「選択状態」、「出力可否」とを定義している。
【0114】
「仕様要素」クラスの子クラスである「仕様要素(機能)」クラスでは、その属性として、その仕様要素の説明を記述した属性である「説明」を定義し、「仕様要素(画面)」クラス及び「仕様要素(帳票)」クラスでは、その属性として、その仕様要素に関連する「仕様要素(機能)」クラスを参照する属性である「関連機能」と「説明」を、それぞれ定義している。
【0115】
「仕様要素」クラス、及び、その子クラスである「仕様要素(機能)」クラス、「仕様要素(画面)」クラス、そして「仕様要素(帳票)」クラスでは、その仕様要素が他の仕様要素を参照しているかどうかを、属性「リンク情報」を参照することで判定する操作「HAS_REFS()」と、属性「リンク情報」を参照し、その仕様要素が参照する全ての仕様要素を取得する操作「GET_REFS()」とを定義している。
【0116】
なお、クラス構造は、図14に限定せず、仕様要素の構造が表現できていればよい。
【0117】
ここで、仕様書生成装置10が読み込む出力可否判定ルールは、仕様書出力可否判定部15における判定ルールr1,r2を記述したものであり、例えば、図15及び図16に示すような形式で表現する。以下で、それぞれの出力可否判定ルールr1,r2について説明する。
【0118】
始めに、図15に示す出力可否判定ルールr1について述べる。
【0119】
1行目:関数「出力可否判定」の定義の開始を意味する。
【0120】
2行目:「仕様要素」クラスのインスタンス「element」を定義する。
【0121】
3行目:「仕様データ」クラスのメソッド「GET_SELECTED_ELEMENTS()」により取得した全ての仕様要素について、それぞれ、変数「element」に代入して4行目の処理を実行する。ここで、メソッド「GET_SELECTED_ELEMENTS()」は、前述のとおり、「仕様データ」クラスのメソッドであり、仕様データ内の仕様要素のうち、属性「選択状態」の値が「選択する」の意味である、全ての仕様要素を取得するものである。
【0122】
4行目:変数「element」を引数として、後述の関数「判定サブルーチン」を実行する。
【0123】
5行目:3行目で定義した繰り返し処理が、ここで終了していることを意味する。
【0124】
6行目:関数を終了する。
【0125】
7行目:関数「出力可否判定」の定義の終了を意味する。
【0126】
続いて、図16に示す出力可否判定ルールr2について述べる。
【0127】
1行目:関数「判定サブルーチン」の定義の開始を意味する。引数は「仕様要素」クラスのインスタンス「element」である。
【0128】
2行目:「仕様要素」クラスのインスタンス「ref_element」を定義する。
【0129】
3行目:変数「ref_element」の属性「選択状態」の値が「未選択」の場合、4行目の処理を実行する。
【0130】
4行目:変数「element」の属性「出力可否」の値を「否」にして、関数を終了する。
【0131】
5行目:3行目の条件を満たさない場合、6行目からの処理を実行する。
【0132】
6行目:変数「element」のメソッド「HAS_REFS()」により取得した値が「FALSE」の場合、7行目の処理を実行する。ここで、メソッド「HAS_REFS()」は、前述のとおり、「仕様要素」クラスのメソッドであり、変数「element」が他の仕様要素を参照しているかどうかを返すものである。
【0133】
7行目:変数「element」の属性「出力可否」の値を「可」にして、関数を終了する。
【0134】
8行目:6行目の条件を満たさない場合、9行目からの処理を実行する。
【0135】
9行目:「仕様要素」クラスのメソッド「GET_REFS()」により取得した全ての仕様要素について、それぞれ、変数「ref_element」に代入して10行目からの処理を実行する。ここで、メソッド「GET_REFS()」は、前述のとおり、「仕様要素」クラスのメソッドであり、当該仕様要素が参照する全ての仕様要素を取得するものである。
【0136】
10行目:変数「ref_element」の属性「出力可否」の値が「NULL」の場合、11行目の処理を実行する。
【0137】
11行目:変数「ref_element」を引数として、関数「判定サブルーチン」を実行する。
【0138】
12行目:10行目で定義した条件文の終了を意味する。
【0139】
13行目:変数「ref_element」の属性「出力可否」の値が「否」の場合、14行目の処理を実行する。
【0140】
14行目:変数「element」の属性「出力可否」の値を「否」にして、関数を終了する。
【0141】
15行目:13行目で定義した条件文の終了を意味する。
【0142】
16行目:9行目で定義した繰り返し処理が、ここで終了していることを意味する。
【0143】
17行目:変数「element」の属性「出力可否」の値を「可」にする。
【0144】
18行目:6行目で定義した条件文の終了を意味する。
【0145】
19行目:3行目で定義した条件文の終了を意味する。
【0146】
20行目:関数を終了する。
【0147】
21行目:関数「判定サブルーチン」の定義の終了を意味する。
【0148】
出力可否判定ルール読込み部17が、出力可否判定ルールr1,r2を読み込む順序については、仕様書出力可否判定部15が、出力可否判定ルール記憶部12から出力可否判定ルールを取得する以前であればよい。
【0149】
以上のような構成によれば、第1の実施形態の動作に加え、出力可否判定ルール読込み部17が、外部から読み込んだ出力可否判定ルールを出力可否判定ルール記憶部17に書き込むので、出力可否判定ルール記憶部17内の出力可否判定ルールを書き換えることができる。
【0150】
(第3の実施形態)
図17は第3の実施形態に係る仕様書生成装置の構成を示す模式図である。
【0151】
本実施形態は、第1の実施形態の変形例であり、仕様書生成装置10に、利用者対話部18を追加した構成により、仕様書データd7を構成する仕様要素を利用者が判定できる形態を示している。
【0152】
利用者対話部18は、以下の各機能(f18-1)〜(f18-3)をもっている。
【0153】
(f18-1)ステップST30の仕様書出力可否判定部15による更新が完了すると、ステップST40の仕様書生成部16による仕様書データd7の生成よりも先行して、仕様書出力可否判定部15による更新結果を出力することにより、当該更新結果の修正内容と修正命令、又は仕様書生成部16の起動命令の入力を促す機能。
【0154】
(f18-2)更新結果の修正内容と修正命令の入力を受け付けると、当該修正内容と修正命令に基づいて当該更新結果を修正する機能。
【0155】
(f18-3)起動命令の入力を受け付けると、仕様書生成部16を起動する機能。
【0156】
なお、利用者対話部18は、例えば、出力可否判定ルール記憶部12において「ある特定の仕様クラスに属する仕様要素の出力可否を利用者に問い合わせる」というルールを記載しておくことで、特定の仕様クラスに属する仕様要素の出力可否に、利用者の判定を反映可能な機能部として実現してもよい。
【0157】
以上のような構成によれば、第1の実施形態のステップST30とST40との間において、利用者対話部18が、仕様書出力可否判定部15による更新結果を出力することにより、当該更新結果の修正内容と修正命令、又は仕様書生成部16の起動命令の入力を促す。このとき、利用者対話部18は、更新結果の修正内容と修正命令の入力を受け付けると、当該修正内容と修正命令に基づいて当該更新結果を修正する。また、利用者対話部18は、起動命令の入力を受け付けた場合には、仕様書生成部16を起動する。
【0158】
このように、利用者対話部18が、仕様書出力可否判定部15による更新結果を出力することにより、当該更新結果の修正内容と修正命令などの入力を促すようにしたので、仕様書データd7を構成する仕様要素を利用者が判定することができる。
【0159】
(第4の実施形態)
図18は第4の実施形態に係る仕様書生成装置の構成を示す模式図である。
【0160】
本実施形態は、第2及び第3の実施形態を組み合わせた例であり、第2の実施形態の仕様書生成装置10に、第3の実施形態の利用者対話部18を追加した構成により、出力可否判定ルール記憶部17内の出力可否判定ルールを書き換えることができると共に、仕様書データd7を構成する仕様要素を利用者が判定できる形態を示している。
【0161】
以上のような構成によれば、第2及び第3の実施形態の作用効果を同時に得ることができる。
【0162】
以上説明した少なくとも一つの実施形態によれば、フィーチャモデルに基づく選択状態の属性と出力可否の属性とリンク情報とを含むように仕様データを変換し、この仕様データの出力可否の属性が出力可を示す仕様要素から仕様書データを生成する構成により、各フィーチャに対応する全ての仕様要素を容易に管理できると共に、不要な仕様要素が含まれない仕様書を容易に生成することができる。
【0163】
また、各実施形態によれば、ドメイン開発プロセスにおけるコアアセット開発者においては、フィーチャと仕様要素との対応関係の管理が容易になるため、ソフトウェア開発プロセスの生産性、品質及びリードタイムを向上させることができる。
【0164】
さらに、各実施形態によれば、アプリケーション開発プロセスにおけるアプリケーション開発者においては、コアアセットに含まれる仕様要素から必要な仕様要素だけを記述した仕様要素を容易に得ることができ、もって、ソフトウェア開発プロセスの生産性、品質及びリードタイムを向上させることができる。
【0165】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0166】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0167】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0168】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【0169】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0170】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0171】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0172】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0173】
10…仕様書生成装置、11…仕様データ記憶部、12…出力可否判定ルール記憶部、13…仕様データ読込み部、14…仕様要素選択状態データ読込み部、15…仕様書出力可否判定部、16…仕様書生成部、17…出力可否判定ルール読込み部、18…利用者対話部、d1−1〜d1−3,d2−1〜d2−3,d5−1〜d5−3,d6−1〜d6−3…仕様データ、d3,d4…仕様要素選択状態データ、d7…仕様書データ。
【特許請求の範囲】
【請求項1】
仕様データ記憶手段及び出力可否判定ルール記憶手段を備えた仕様書生成装置に用いられる仕様書生成プログラムであって、
前記仕様書生成装置を、
特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、及び属性を互いに関連付けた参照先の仕様データと、この参照先の仕様要素を参照する参照元の仕様要素のID、属性、及び前記参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データとをそれぞれ読み込む手段、
前記読み込んだ各仕様データのうち、前記参照先の仕様データに対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データを前記仕様データ記憶手段に書き込む手段、
前記読み込んだ各仕様データのうち、前記参照元の仕様データに対し、前記特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、前記仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び前記関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データを前記仕様データ記憶手段に書き込む手段、
前記特定のアプリケーションのフィーチャモデルにおけるフィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャを選択するか否かを示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データを読み込む手段、
前記読み込んだ仕様要素選択状態データに対し、前記フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データを保持する手段、
前記保持した仕様要素選択状態データ内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する前記仕様データ記憶手段内の仕様データの仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する手段、
前記仕様データ記憶手段内の仕様データのうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、前記仕様データ記憶手段記憶手段内の仕様データ、及び前記保持した仕様要素選択状態データに基づく、各々の前記仕様要素の出力可否を判定するルールである出力可否判定ルールを前記出力可否判定ルール記憶手段に書き込む手段、
前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する仕様書出力可否判定手段、
前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する仕様書生成手段、
として機能させるための仕様書生成プログラム。
【請求項2】
請求項1に記載の仕様書生成プログラムにおいて、
前記仕様書生成装置を、
外部から読み込んだ前記出力可否判定ルールを前記出力可否判定ルール記憶手段に書き込む出力可否判定ルール読込み手段、
として更に機能させるための仕様書生成プログラム。
【請求項3】
請求項1又は請求項2に記載の仕様書生成プログラムにおいて、
前記仕様書生成装置を、
前記仕様書出力可否判定手段による更新が完了すると、前記仕様書生成手段による仕様書データの生成よりも先行して、前記仕様書出力可否判定手段による更新結果を出力することにより、当該更新結果の修正内容と修正命令、又は前記仕様書生成手段の起動命令の入力を促す手段、
前記更新結果の修正内容と修正命令の入力を受け付けると、当該修正内容と修正命令に基づいて前記更新結果を修正する手段、
前記起動命令の入力を受け付けると、前記仕様書生成手段を起動する手段、
として更に機能させるための仕様書生成プログラム。
【請求項4】
仕様データ記憶手段を備えた仕様書生成装置であって、
特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、及び属性を互いに関連付けた参照先の仕様データと、この参照先の仕様要素を参照する参照元の仕様要素のID、属性、及び前記参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データとをそれぞれ読み込む手段と、
前記読み込んだ各仕様データのうち、前記参照先の仕様データに対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データを前記仕様データ記憶手段に書き込む手段と、
前記読み込んだ各仕様データのうち、前記参照元の仕様データに対し、前記特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、前記仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び前記関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データを前記仕様データ記憶手段に書き込む手段と、
前記特定のアプリケーションのフィーチャモデルにおけるフィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャの選択又は未選択を示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データを読み込む手段と、
前記読み込んだ仕様要素選択状態データに対し、前記フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データを保持する手段と、
前記保持した仕様要素選択状態データ内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する前記仕様データ記憶手段内の仕様データの仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する手段と、
前記仕様データ記憶手段内の仕様データのうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、前記仕様データ記憶手段内の仕様データ、及び前記保持した仕様要素選択状態データに基づく、各々の前記仕様要素の出力可否を判定するためのルールである出力可否判定ルールを記憶する出力可否判定ルール記憶手段と、
前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する仕様書出力可否判定手段と、
前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する仕様書生成手段と、
を備えたことを特徴とする仕様書生成装置。
【請求項1】
仕様データ記憶手段及び出力可否判定ルール記憶手段を備えた仕様書生成装置に用いられる仕様書生成プログラムであって、
前記仕様書生成装置を、
特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、及び属性を互いに関連付けた参照先の仕様データと、この参照先の仕様要素を参照する参照元の仕様要素のID、属性、及び前記参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データとをそれぞれ読み込む手段、
前記読み込んだ各仕様データのうち、前記参照先の仕様データに対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データを前記仕様データ記憶手段に書き込む手段、
前記読み込んだ各仕様データのうち、前記参照元の仕様データに対し、前記特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、前記仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び前記関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データを前記仕様データ記憶手段に書き込む手段、
前記特定のアプリケーションのフィーチャモデルにおけるフィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャを選択するか否かを示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データを読み込む手段、
前記読み込んだ仕様要素選択状態データに対し、前記フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データを保持する手段、
前記保持した仕様要素選択状態データ内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する前記仕様データ記憶手段内の仕様データの仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する手段、
前記仕様データ記憶手段内の仕様データのうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、前記仕様データ記憶手段記憶手段内の仕様データ、及び前記保持した仕様要素選択状態データに基づく、各々の前記仕様要素の出力可否を判定するルールである出力可否判定ルールを前記出力可否判定ルール記憶手段に書き込む手段、
前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する仕様書出力可否判定手段、
前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する仕様書生成手段、
として機能させるための仕様書生成プログラム。
【請求項2】
請求項1に記載の仕様書生成プログラムにおいて、
前記仕様書生成装置を、
外部から読み込んだ前記出力可否判定ルールを前記出力可否判定ルール記憶手段に書き込む出力可否判定ルール読込み手段、
として更に機能させるための仕様書生成プログラム。
【請求項3】
請求項1又は請求項2に記載の仕様書生成プログラムにおいて、
前記仕様書生成装置を、
前記仕様書出力可否判定手段による更新が完了すると、前記仕様書生成手段による仕様書データの生成よりも先行して、前記仕様書出力可否判定手段による更新結果を出力することにより、当該更新結果の修正内容と修正命令、又は前記仕様書生成手段の起動命令の入力を促す手段、
前記更新結果の修正内容と修正命令の入力を受け付けると、当該修正内容と修正命令に基づいて前記更新結果を修正する手段、
前記起動命令の入力を受け付けると、前記仕様書生成手段を起動する手段、
として更に機能させるための仕様書生成プログラム。
【請求項4】
仕様データ記憶手段を備えた仕様書生成装置であって、
特定のアプリケーションの仕様書データに記述すべき仕様要素毎に、他の仕様要素から参照される参照先の仕様要素のID、及び属性を互いに関連付けた参照先の仕様データと、この参照先の仕様要素を参照する参照元の仕様要素のID、属性、及び前記参照先の仕様要素のIDを示す関連仕様要素IDを互いに関連付けた参照元の仕様データとをそれぞれ読み込む手段と、
前記読み込んだ各仕様データのうち、前記参照先の仕様データに対し、NULL値の選択状態、及びNULL値の出力可否情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照先の仕様データを前記仕様データ記憶手段に書き込む手段と、
前記読み込んだ各仕様データのうち、前記参照元の仕様データに対し、前記特定のアプリケーションの仕様要素として選択か未選択かを示してNULL値の初期値をもつ選択状態、前記仕様書として出力可か出力否かを示してNULL値の初期値をもつ出力可否情報、及び前記関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された参照元の仕様データを前記仕様データ記憶手段に書き込む手段と、
前記特定のアプリケーションのフィーチャモデルにおけるフィーチャに対応する仕様要素のIDを示す関連仕様要素ID、及び当該フィーチャの選択又は未選択を示すフィーチャ選択フラグを互いに関連付けた仕様要素選択状態データを読み込む手段と、
前記読み込んだ仕様要素選択状態データに対し、前記フィーチャID毎に、当該フィーチャIDに関連付けられた関連仕様要素IDを示すリンク情報を追加して関連付けるように変換処理を施し、この変換処理が施された仕様要素選択状態データを保持する手段と、
前記保持した仕様要素選択状態データ内の関連仕様要素ID及びフィーチャ選択フラグに基づき、この関連仕様要素IDに一致する前記仕様データ記憶手段内の仕様データの仕様要素のIDに関し、この仕様要素のIDに関連付けられた選択状態のNULL値を当該フィーチャ選択フラグに従って選択又は未選択を示す値に更新する手段と、
前記仕様データ記憶手段内の仕様データのうち、NULL値の出力可否情報に関連付けられた判定対象の仕様要素に関し、前記仕様データ記憶手段内の仕様データ、及び前記保持した仕様要素選択状態データに基づく、各々の前記仕様要素の出力可否を判定するためのルールである出力可否判定ルールを記憶する出力可否判定ルール記憶手段と、
前記出力可否判定ルールに基づいて、前記仕様データ記憶手段内の仕様データに含まれる出力可否情報のNULL値を出力可又は出力否の値に更新することを判定し、この判定結果に従って当該更新を実行する仕様書出力可否判定手段と、
前記仕様書出力可否判定手段による更新が完了すると、前記仕様データ記憶手段内の仕様データのうち、出力可の値の出力可否情報に関連付けられた全ての仕様要素を抽出し、当該抽出した全ての仕様要素における仕様要素のID、属性、及び関連仕様要素IDが記述された前記仕様書データを生成する仕様書生成手段と、
を備えたことを特徴とする仕様書生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−53567(P2012−53567A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−194236(P2010−194236)
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]