(57)【要約】【課題】要件を項目レベルに止まらず、構文を指定して記述することによりソフトウェア開発の上流工程での仕様の漏れや記述の曖昧さ、矛盾を排除することができるソフトウェア要件記述支援システムおよび方法を提供する。【解決手段】サーバ１３内に、機能構文定義ファイル１と、品質構文定義ファイル２と、非正常系構文定義ファイル３と、機能見出しが入力されたとき当該機能見出しに係る前記機能構文定義ファイル１に定義されている機能要件の項目とその要件記述構文を抽出し、また当該機能見出しに係る品質構文定義ファイル２に定義されている品質要件の項目とその要件記述構文を抽出し、さらに当該機能見出しに係る非正常系構文定義ファイル３に定義されている非正常系要件の項目とその要件記述構文を抽出し、抽出した前記要件記述構文それぞれに要件を記述可能とする要件入力処理部６と、を備える。【選択図】図１
2008003851.tif 000002
【特許請求の範囲】
【請求項１】
機能要件を記述する構文の構文定義を格納する機能構文定義ファイルと、
機能要件に対応した品質要件を記述する構文の構文定義を格納する品質構文定義ファイルと、
機能要件に対応した非正常系要件を記述する構文の構文定義を格納する非正常系構文定義ファイルと、
機能見出しが入力されたとき当該機能見出しに係る前記機能構文定義ファイルに定義されている機能要件の項目とその要件記述構文を抽出し、また当該機能見出しに係る前記品質構文定義ファイルに定義されている品質要件の項目とその要件記述構文を抽出し、さらに当該機能見出しに係る前記非正常系構文定義ファイルに定義されている非正常系要件の項目とその要件記述構文を抽出し、抽出した前記要件記述構文それぞれに要件を記述可能とする要件入力処理手段と、
を備えていることを特徴とするソフトウェア要件記述支援システム。
【請求項２】
抽出した前記要件記述構文それぞれに要件を記述する際、前記要件入力処理手段は同一構文に係る表形式の入力画面をユーザに提示し、前記表形式の入力画面から同一構文に係る複数の要件記述を可能とすることを特徴とする請求項１に記載のソフトウェア要件記述支援システム。
【請求項３】
あらかじめモデル化された品質特性マトリックスを備え、前記品質要件に係る要件記述を行う際、前記品質特性マトリックスに記述されたデータを要件記述に自動的に展開し、前記品質構文定義ファイルに定義された要件記述構文に対応した入力データの生成を可能とすることを特徴とする請求項１に記載のソフトウェア要件記述支援システム。
【請求項４】
前記要件入力処理手段で記述した要件記述データを格納する要件情報ファイルと、該要件情報ファイルに格納した前記要件記述データを外部にエクスポート処理すると共に外部の前記要件記述データをインポート処理して前記要件情報ファイルに格納するインポート・エクスポート処理手段を備えることを特徴とする請求項１に記載のソフトウェア要件記述支援システム。
【請求項５】
記載未定事項（ＴＢＤ）チェック処理手段を備え、前記要件入力処理手段における要件記述で記載未定事項を含む要件記述データを前記要件情報ファイルから抽出し、前記記載未定事項に設定された期限を過ぎているものをリストアップして表示することを特徴とする請求項４に記載のソフトウェア要件記述支援システム。
【請求項６】
機能，品質，非正常系要件それぞれについて要件記述構文を定義可能とする構文定義処理手段を備え、定義した前記機能，品質，非正常系要件それぞれについて要件記述構文を前記機能構文定義ファイル、前記品質構文定義ファイル、前記非正常系構文定義ファイルに格納して管理することを特徴とする請求項１に記載のソフトウェア要件記述支援システム。
【請求項７】
前記機能構文定義ファイル、前記品質構文定義ファイル、前記非正常系構文定義ファイルに格納された前記要件記述構文データの種類を指定して外部にエクスポート処理すると共に外部の前記要件記述構文データの種類を指定してインポート処理し前記定義ファイルのいずれかに格納するインポート・エクスポート処理手段を備えることを特徴とする請求項６に記載のソフトウェア要件記述支援システム。
【請求項８】
機能要件を記述する構文の構文定義を格納する機能構文定義ファイルと、機能要件に対応した品質要件を記述する構文の構文定義を格納する品質構文定義ファイルと、機能要件に対応した非正常系要件を記述する構文の構文定義を格納する非正常系構文定義ファイルとを備えるソフトウェア要件記述支援システムにおいて、
機能見出しが入力されたとき当該機能見出しに係る前記機能構文定義ファイルに定義されている機能要件の項目とその要件記述構文を抽出する過程と、
抽出した前記要件記述構文に機能に係る要件を記述する過程と、
当該機能見出しに係る前記品質構文定義ファイルに定義されている品質要件の項目とその要件記述構文を抽出する過程と、
抽出した前記要件記述構文に品質に係る要件を記述する過程と、
当該機能見出しに係る前記非正常系構文定義ファイルに定義されている非正常系要件の項目とその要件記述構文を抽出する過程と、
抽出した前記要件記述構文に非正常系に係る要件を記述する過程と、
を含むことを特徴とするソフトウェア要件記述支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込みソフトウェアを含むソフトウェア開発の上流工程での仕様の漏れや記述の曖昧さ、矛盾を排除するソフトウェア要件の記述支援に関する。
【背景技術】
【０００２】
組み込みソフトウェアを含むソフトウェア開発におけるソフトウェア要件の記述支援にあたっては、従来、特許文献１では、ソフトウェアの基本要件の入力フォームを表示し、画面から要件を入力するとともに、子要件，システム対応，ソフトウェア仕様などをリンク付け、それぞれを入力することにより粒度を揃え、構造化した要件や機能の登録ができる技術を提案している。
【０００３】
また同じく、従来、特許文献２では、ソフトウェア仕様作成時に複数の仕様化プロセスを適用可能とするために、仕様化プロセスをモデル化するが、その際に、個々の仕様化プロセスにおいてその本質的な特徴を示す作業ステップの判断基準を、「誰がどこで」という構成要素の視点、「何をするか」という目的の視点、「いつ、どのように」という振舞いの視点、から各々その状態を分類することで、その分類結果が仕様化プロセスの違いによらない共通の形式にて表現されるようにして仕様化プロセスの互換を可能とする技術を提案している。
【０００４】
また、従来、ソフトウェア要求を記述する言語も研究されており、非特許文献１では、要求記述を動作主格、源泉格、目的格などの「型」や、名詞と動詞を構成要素とする「格フレーム」により構文を構成した日本語に対応した制約言語X-JRDLを提唱している。
【０００５】
また、従来、非特許文献２では、非正常系の要件の重要性と非正常系マトリックスによる非正常系の抽出モデルを提唱している。
さらにソフトウェアの品質の記述に関して、ISO/IEC9126では品質特性の分類がなされ、その分類に基づいて品質に関する記述をすることが知られている。
【特許文献１】特開２００５−３５２８６９号公報
【特許文献２】特開平５−９４２８７号公報
【非特許文献１】大西 淳「ソフトウェア要求定義のためのコミュニケーションモデル」情報処理学会論文誌，Vol.33,No.8,1999年8月，pp.1064-1071
【非特許文献２】三瀬敏朗 外５「組込みソフトウェア仕様抽出のための非正常系マトリックス」情報処理学会研究報告，2004-SE-145(16)，pp.113-120，2004/8/20
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１では、項目レベルの入力フォームにより項目の抜けなどを排除できるが、例えば性能条件の「Ａの状態からＢの状態までの時間はＸ秒以内とする」など条件の記述構文を指定することができず、条件記述の漏れや数値の記載が無いなどソフトウェア要件記述のうえで記述の曖昧さが入り込むという問題がある。
【０００７】
また特許文献２では、個々の仕様化プロセスにおいてその本質的な特徴を示す作業ステップの判断基準を、「誰がどこで」という構成要素の視点、「何をするか」という目的の視点、「いつ、どのように」という振舞いの視点、から各々その状態を分類することで、その分類結果が仕様化プロセスの違いによらない共通の形式にて表現されるようにしているが、要求仕様をより詳細な構文の指定にしたがって記述していないため、ソフトウェア要件記述のうえで記述の漏れや曖昧さが残るという問題がある。
【０００８】
また非特許文献１では、「型」や「格フレーム」により構文を指定するが、機能の記述以外の品質の記述や非正常系の条件記述では「型」や「格フレーム」の範囲では収まらない更にブレークダウンした構文が必要となり、ソフトウェア要件記述のうえで記述の曖昧さが入り込むという問題がある。
【０００９】
また非特許文献２では、非正常系の要件の重要性と非正常系マトリックスによる非正常系の抽出モデルを提唱しているが、非正常系マトリックスを要件定義にどう対応づけるかなど要件定義方法には触れていないためソフトウェア要件の記述が十分でないという問題がある。
【００１０】
またISO/IEC9126では、品質特性の分類が定義されているが、ソフトウェア要件記述では性能（効率性）や信頼性の品質属性は機能とセットで記述されるものであり、品質属性単独での記述は実際的ではないという問題がある。
【００１１】
そこで本発明は、要件を項目レベルに止まらず、構文を指定して記述することによりソフトウェア開発の上流工程での仕様の漏れや記述の曖昧さ、矛盾を排除することができるソフトウェア要件記述支援システムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために本発明のソフトウェア要件記述支援システムは、機能要件を記述する構文の構文定義を格納する機能構文定義ファイルと、機能要件に対応した品質要件を記述する構文の構文定義を格納する品質構文定義ファイルと、機能要件に対応した非正常系要件を記述する構文の構文定義を格納する非正常系構文定義ファイルと、機能見出しが入力されたとき当該機能見出しに係る前記機能構文定義ファイルに定義されている機能要件の項目とその要件記述構文を抽出し、また当該機能見出しに係る前記品質構文定義ファイルに定義されている品質要件の項目とその要件記述構文を抽出し、さらに当該機能見出しに係る前記非正常系構文定義ファイルに定義されている非正常系要件の項目とその要件記述構文を抽出し、抽出した前記要件記述構文それぞれに要件を記述可能とする要件入力処理手段と、を備えていることを特徴とする。
【発明の効果】
【００１３】
本発明は、機能の見出し項目に対応して、機能と品質と非正常系それぞれの要件記述構文を定義し、この３つの要件記述構文をセットで設定し、それに沿って要件を記述するので、項目レベルに止まらず、項目レベルと要件記述構文レベルでの記述を組み合わせることにより、要件記述の漏れや曖昧さを排除することができる。また、機能，品質，非正常系の個別要件ではなく、機能の括りで品質，非正常系の要件を統合的に扱うため、品質面での記述漏れ、非正常系面での記述漏れや相互に矛盾のない要件記述をすることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は、本発明の実施形態に係るソフトウェア要件記述支援システムの構成を示すブロック図である。図１において、機能構文定義ファイル１は、機能要件を記述する構文の構文定義を格納するファイルである。機能要件は例えばユーズケース図や特性ダイアグラムなどであらかじめモデル化したものを参考にして記述する。
【００１５】
品質構文定義ファイル２は、機能要件に対応したISO/IEC9126の品質特性の分類がされた品質要件を記述する構文の構文定義を格納するファイルである。品質要件は例えば図６に示す品質マトリックスなどであらかじめモデル化したものを参考にして記述する。
【００１６】
非正常系構文定義ファイル３は、機能要件に対応した非正常系を記述する構文の構文定義を格納するファイルである。非正常系の要件は、例えばＦＴＡ(Failure Tree Analysis:故障の木解析)，ＦＭＥＡ(Failure Mode and Effect Analysis:故障モード影響解析)，非正常マトリックスなどで予めモデル化したものを参考にして記述する。
【００１７】
要件情報ファイル４は、機能，品質，非正常系の各構文定義に従って記述された要件の内容データを格納するファイルである。
品質特性マトリックスファイル５は、品質特性を要件に自動展開する際に使用する機能と品質属性、品質特性に関係する要件記述を格納するファイルである。図６に一例として示した品質マトリックスはこのファイルに格納されているものである。
【００１８】
要件入力処理部６は、機能要件，品質要件，非正常系要件の構文を選択し、当該構文に従って操作者（クライアント１２）が入力した要件のデータを要件情報ファイル４に格納処理する。
【００１９】
構文定義処理部７は、操作者（クライアント１２）が定義した機能要件，品質要件，非正常系要件のそれぞれの構文を、それぞれ機能構文定義ファイル１、品質構文定義ファイル２、非正常系構文定義ファイル３に格納処理する。
【００２０】
品質特性対応処理部８は、品質特性マトリックスファイル５のデータを自動的に要件情報ファイル４に展開処理する。展開処理の内容は後述する。
インポート・エクスポート処理部９は、構文ＩＤを指定した構文定義データをインポート・エクスポート処理する。また見出し番号で指定した要件情報データファイルのデータをインポート・エクスポート処理する。処理の内容については後述する。
【００２１】
ＴＢＤ（To Be Determined：記載未定事項）チェック処理部１０は、要件情報ファイル４にＴＢＤと記載された部分（図５Ｂの図示番号７６参照）の期限の日付を定期的にチェックし、期限を越えたものをリスト表示処理する。
【００２２】
ネットワーク１１はクライアント１２とサーバ１３を連携する。クライアント１２はネットワーク１１経由でサーバ１３と繋がれており、データの設定や処理の起動、データの表示を行う。サーバ１３はプログラム（図示せず）を格納し上記各ファイルや各処理部に対する制御を行う。
【００２３】
図２は、本発明の実施形態に係る機能構文定義ファイル１のデータ構造を示す図およびその具体的なデータ構造例を示す図である。
図２に示すように機能構文定義ファイル１は、機能構文ＩＤ２１と、構文タイトル２２と、ナビゲーション表示項目２３と、構文要素数２４と、項目２５と、構文要素名２６とから構成されている。
【００２４】
機能構文ＩＤ２１は、機能構文のデータに対して一意に付けられたＩＤである。
構文タイトル２２は、機能構文ＩＤ２１に付けた名称であり、構文要素数２４と、項目２５と、構文要素名２６とのセットと対応する。
【００２５】
ナビゲーション表示項目２３は、機能構文を画面などに表示する際に機能構文形式の理解を容易化するための表示項目である。
構文要素数２４は、当該構文の構文要素名２６の数を格納する。
【００２６】
項目２５は、構文を適用する項目名称を格納する。
構文要素名２６は、構文を構成する要素の名称を格納する。
図３は、本発明の実施形態に係る品質構文定義ファイル２のデータ構造を示す図およびその具体的なデータ構造例を示す図である。
【００２７】
図３に示すように品質構文定義ファイル２は、
品質属性ＩＤ３１と、品質属性タイトル３２と、構文ＩＤ３３と、構文タイトル３４と、ナビゲーション表示項目３５と、構文要素数３６と、項目３７と、構文要素名（属性）３８と、サブ構文要素数３９と、サブ構文要素名４０とから構成されている。
【００２８】
品質属性ＩＤ３１は、ISO/IEC9126の品質特性の分類（すなわち、機能性、信頼性、使用性、効率性、保守性、移行性）に対応した品質属性のＩＤを格納する。
品質属性タイトル３２は、品質属性ＩＤ３１に対応した名称を格納する。
【００２９】
構文ＩＤ３３は、品質構文のデータに対して一意に付けられたＩＤである。
構文タイトル３４は、構文ＩＤ３３につけた名称であり、構文要素数３６と、項目３７と、構文要素名（属性）３８とのセットと対応する。
【００３０】
ナビゲーション表示項目３５は、品質構文を画面などに表示する際に品質構文形式の理解を容易化するための表示項目である。
構文要素数３６は、当該構文の構文要素名（属性）３８の数を格納する。
【００３１】
項目３７は、構文を適用する項目名称を格納する。
構文要素名（属性）３８は、構文を構成する要素の名称を格納する。属性はサブ構文の有無を指定する。サブ構文要素数３９と、サブ構文要素名４０とのセットと対応する。
【００３２】
サブ構文要素数３９は、当該サブ構文のサブ構文要素名４０の数を格納する。
サブ構文要素名４０は、サブ構文を構成するサブ構文要素の名称を格納する。
図４は、本発明の実施形態に係る非正常系構文定義ファイル３のデータ構造を示す図およびその具体的なデータ構造例を示す図である。
【００３３】
図４に示すように非正常系構文定義ファイル３は、
構文ＩＤ５１と、構文タイトル５２と、ナビゲーション表示項目５３と、構文要素数５４と、非正常系項目５５と、構文要素名（属性）５６と、サブ構文要素名５７と、終了コード５８とから構成されている。
【００３４】
構文ＩＤ５１は、非正常系構文のデータに対して一意に付けられたＩＤである。
構文タイトル５２は、構文ＩＤ５１につけた名称であり、構文要素数５４と、非正常系項目５５と、構文要素名（属性）５６とのセットと対応する。
【００３５】
ナビゲーション表示項目５３は、非正常系構文を画面などに表示する際に非正常系構文形式の理解を容易化するための表示項目である。
構文要素数５４は、当該構文の構文要素名（属性）５６の数を格納する。
【００３６】
非正常系項目５５は、構文を適用する非正常系項目名称を格納する。
構文要素名（属性）５６は、構文を構成する要素の名称を格納する。属性はサブ構文の有無を指定する。サブ構文要素名５７と終了コード５８とのセットと対応する。
【００３７】
サブ構文要素名５７は、サブ構文を構成するサブ構文要素の名称を格納する。
終了コード５８は、これ以上サブ構文要素名がないことを示すコードを格納する。
図５Ａ及び図５Ｂは、本発明の実施形態に係る要件情報ファイル４のデータ構造を示す図およびその具体的なデータ構造例を示す図である。
【００３８】
図５Ａに示すように要件情報ファイル４は、見出し番号７１と、見出し名７２と、機能構文ＩＤ７３と、構文要素数７４と、項目７５と、構文要素データ７６と、品質属性ＩＤリンク７７と、品質属性ＩＤ７８と、品質構文ＩＤ７９と、構文要素数８０と、項目８１と、構文要素データ８２と、サブ構文要素数８３と、サブ構文要素データ８４と、非正常系構文ＩＤリンク８５と、非正常系構文ＩＤ８６と、構文要素数８７と、非正常系項目８８と、構文要素データ（属性）８９と、サブ構文要素データ９０と、終了コード９１とから構成される。
【００３９】
見出し番号７１は、要求仕様書（図示せず）相当の見出しに相当する要件のセット内で一意に付けられた番号であり、見出し名７２と、機能構文ＩＤ７３と、品質属性ＩＤリンク７７と、非正常系構文ＩＤリンク８５とのセットと対応する。見出し名７２は、見出し番号７１につけた名称であり、機能名称に相当する。
【００４０】
機能構文ＩＤ７３は、当該データのリンク先データが適用した機能構文のＩＤを格納する。機能構文ＩＤ７３と構文要素数７４、項目７５、構文要素データ７６とのセットは１対１に対応する。構文要素数７４は、適用した機能構文の構文要素データ７６の数を格納する。項目７５は、機能の項目名称を格納する。構文要素データ７６は、機能構文に従って入力された要件データを格納する。
【００４１】
品質属性ＩＤリンク７７は、リンク先の品質属性ＩＤへのリンクデータを格納する。品質属性ＩＤ７８は、品質属性ＩＤリンク７７から１対Ｎの関係を持つ品質属性に対応したＩＤである（例えば、当該機能の“信頼性”に相当するＩＤと“効率性（性能）”に相当するＩＤなどが対応する）。品質構文ＩＤ７９は、品質属性ＩＤ７８から１対Ｎの関係を持つ品質構文に対応したＩＤである。そして品質構文ＩＤ７９と構文要素数８０、項目８１、構文要素データ（属性）８２のセットは１対Ｎに対応する。また構文要素数８０は、適用した品質構文の構文要素データ（属性）８２の数を格納する。項目８１は、品質の項目名称を格納する。構文要素データ（属性）８２は、品質構文に従って入力された要件データを格納する。属性がサブデータありの場合は「条件（サブあり）」とのデータ（図５Ｂ参照）を格納する。構文要素データ（属性）８２とサブ構文要素数８３、サブ構文要素データ８４のセットは１対Ｎに対応する。サブ構文要素数８３は、適用した品質構文のサブ構文要素データ８４の数を格納する。サブ構文要素データ８４は、サブ構文要素に従って入力された要件データを格納する。
【００４２】
非正常系構文ＩＤリンク８５は、リンク先の非正常系構文ＩＤへのリンクデータを格納する。非正常系構文ＩＤ８６は、非正常系構文ＩＤリンク８５から１対Ｎの関係を持つ非正常系構文に対応したＩＤである。非正常系構文ＩＤ８６と構文要素数８７、非正常系項目８８、構文要素データ（属性）８９のセットは１対Ｎに対応する。構文要素数８７は、適用した非正常系構文の構文要素データ（属性）８９の数を格納する。非正常系項目８８は、非正常系の項目名称を格納する。構文要素データ（属性）８９は、非正常系構文に従って入力された要件データを格納する。属性がサブデータありの場合は「検出方法（サブあり）」とのデータ（図５Ｂ参照）を格納する。構文要素データ（属性）８９とサブ構文要素データ９０、終了コード９１のセットは１対Ｎに対応する。サブ構文要素データ９０は、サブ構文要素に従って入力された要件データを格納する。終了コード９１は、要件データが以降ないことを示す“FF”などのコードを格納する。
【００４３】
図６は、本発明の実施形態に係る品質特性マトリックスの一例を示す図である。品質特性マトリックスは、機能に対応する品質をモデル化して作成したデータを格納する。図６に示した品質特性マトリックスにおいて、「機能」は階層化により細分化して格納されている。また「品質属性」はISO/IEC9126の品質特性の分類より、機能性、信頼性、使用性、効率性、保守性、移行性に分類され、分類された当該データ、図６では“使用性”、“信頼性”に関するデータを格納する。「品質特性」は「品質属性」をブレークダウンし、「品質属性」を対象システムに合った様に品質を展開した項目を格納する。該当する「機能」と「品質特性」とが交叉するマトリックスのセルに要件データ（「セルデータ」とも呼ぶ）を格納する。
【００４４】
図７Ａ〜図７Ｃは、本発明の実施形態に係る要件入力処理部６の動作を説明するためのフローチャートである。本発明の実施形態に係る要件入力処理部６は、操作者(クライアント１２)による画面入力時に起動される。なお図７Ａ〜図７Ｃにおいて各図中右部に適宜具体例を参考までに提示する。
【００４５】
図７Ａにおいて、ステップＳ１では、操作者から見出し番号(例．1011)、見出し名(例．ドア開操作)が入力されると、機能構文定義ファイル１から機能構文ＩＤ２１と構文タイトル２２、ナビゲーション表示項目２３を読み込む。
【００４６】
ステップＳ２では、ステップＳ１で読み込んだ構文データをリスト表示する。
ステップＳ３で、操作者は、ステップＳ２でのリスト表示から構文(例．011)を選択する。
【００４７】
ステップＳ４では、ステップＳ３で選択した構文(例．011)に対応した構文要素を読込み、入力画面を表示する。入力画面は図１０に示すような表形式も可能である。図１０に示す表形式の場合は同一構文で複数の機能要件を入力することができる。
【００４８】
ステップＳ５で、操作者は、入力画面に入力する。(入力例．項目:ドア開操作、主体:サイドドア、動作:全開動作、目的:ドア開制御、目標:ドア全開)
ステップＳ６では、入力項目が入力されたかチェックする。未入力項目はＴＢＤ（To Be Determined)表示し、担当者と期限の入力を促す。
【００４９】
図７Ｂに移って、ステップＳ７では、入力されたデータを要件情報ファイル４に格納する。
ステップＳ８では、品質構文定義ファイル２から品質属性ＩＤ３１と品質属性タイトル３２、構文ＩＤ３３と構文タイトル３４、ナビゲーション表示項目３５を読み込む。
【００５０】
ステップＳ９では、ステップＳ８で読み込んだ構文データをリスト表示する。
ステップＳ１０で、操作者は、ステップＳ９でのリスト表示から構文(例．10101)を選択する。
【００５１】
ステップＳ１１では、ステップＳ１０で選択した構文(例．10101)に対応した入力画面を表示する。入力画面は図１０に示す表形式も可能である。表形式の場合は同一構文で複数の品質要件を入力することができる。
【００５２】
ステップＳ１２で、操作者は、入力画面に入力する。(入力例．項目:ドア開操作、条件 From:ドア全開、条件 To:ドア10cm開)
ステップＳ１３では、入力項目が入力されたかチェックする。未入力項目はＴＢＤ表示し、担当者と期限の入力を促す。
【００５３】
図７Ｃに移って、ステップＳ１４では、入力されたデータを要件情報ファイル４に格納する。このあと更に品質要件の入力が必要であれば、ステップＳ８に戻ってステップＳ８からステップＳ１４までの作業を繰り返す。
【００５４】
ステップＳ１５では、非正常系構文定義ファイル３から構文ＩＤ５１と構文タイトル５２、ナビゲーション表示項目５３を読み込む。
ステップＳ１６では、ステップＳ１５で読み込んだ構文データをリスト表示する。
【００５５】
ステップＳ１７で、操作者は、ステップＳ１６でのリスト表示から構文(例．201)を選択する。
ステップＳ１８では、ステップＳ１７で選択した構文(例．201)に対応した入力画面を表示する。入力画面は図１０に示す表形式も可能である。表形式の場合は同一構文で複数の非正常系要件を入力することができる。
【００５６】
ステップＳ１９で、操作者は、入力画面に入力する。(入力例．非正常系項目:ドアセンサ異常、検出方法 1:ドア開センサ異常、検出方法 2:全開)
ステップＳ２０では、入力項目が入力されたかチェックする。未入力項目はＴＢＤ表示し、担当者と期限の入力を促す。
【００５７】
ステップＳ２１では、入力されたデータを要件情報ファイル４に格納する。このあと更に非正常系要件の入力が必要であれば、ステップＳ１５に戻ってステップＳ１５からステップＳ２１までの作業を繰り返す。また別の機能要件を入力する場合にはステップＳ１に戻ってステップＳ１からステップＳ２１までの作業を繰り返す。
【００５８】
図８は、本発明の実施形態に係る構文定義処理部７の動作を説明するためのフローチャートである。本発明の実施形態に係る構文定義処理部７は、操作者(クライアント１２)により随時起動される。なお図８において図中右部に適宜具体例を参考までに提示する。
【００５９】
図８において、ステップＳ３１では、操作者が構文定義画面を呼び出し、対象構文（機能構文，品質構文，非正常系構文のいずれか）を選択する。
ステップＳ３２では、ステップＳ３１で選択した対象構文に対応した構文を入力画面に表示する。入力画面は機能構文定義ファイル１の構成、品質構文定義ファイル２の構成、非正常系構文定義ファイル３の構成のうち選択された構文の定義ファイルの構成に沿って入力するよう促す。
【００６０】
ステップＳ３３では、操作者が構文情報を入力する。
ステップＳ３４では、入力された構文情報のＩＤがユニークかチェックする。
ステップＳ３５では、チェック結果がＯＫの場合はステップＳ３６に移り、チェック結果がＮＧの場合はステップＳ３７に移る。
【００６１】
ステップＳ３６では、入力された構文情報を構文定義ファイル１〜３のいずれかに格納し処理を終了する。
ステップＳ３７では、入力の修正要求をする。この後、ステップＳ３３以降の処理を行う。
【００６２】
図９Ａ及び図９Ｂは、本発明の実施形態に係る品質特性対応処理部８の動作を説明するためのフローチャートである。本発明の実施形態に係る品質特性対応処理部８は、操作者(クライアント１２)により任意に起動される。なお図９Ａ及び図９Ｂにおいて図中右部に適宜具体例を参考までに提示する。
【００６３】
図９Ａにおいて、ステップＳ４１では、品質特性マトリックス（図６参照）を読み込む。品質特性マトリックスは本処理の前段階として品質をモデル化する課程で作成され、品質特性マトリックスファイル５に格納されているものとする。
【００６４】
ステップＳ４２では、要件情報ファイル４が初期状態か確認する。初期状態と確認された場合は、ステップＳ４３に進み、初期状態でないと確認された場合は、ステップＳ４４に進む。なお要件情報ファイル４に何も書かれていない場合に初期状態と判断する。
【００６５】
ステップＳ４３では、要件情報ファイル４の見出し名に品質特性マトリックスの機能名称（最下位）を格納する。機能名称は通常複数あるので、要件情報ファイル４の見出し名は複数作られる。このあとステップＳ４４に進み、ステップＳ４４の処理を行う。
【００６６】
ステップＳ４４では、要件情報ファイル４の見出し名が一致する機能の品質特性マトリックスの機能名の行を読み込む。
図９Ｂに移って、ステップＳ４５では、要件情報ファイル４が初期状態か確認する。確認方法は要件情報ファイル４の当該見出し名より下位のデータが何も書かれていない場合に初期状態と判断する。要件情報ファイル４が初期状態の場合は、ステップＳ４８に進んで、当該ステップＳ４８の処理を行い、初期状態でない場合は、ステップＳ４６に進み、当該ステップＳ４６の処理を行う。
【００６７】
ステップＳ４６では、要件情報ファイル４の品質属性ＩＤの品質属性とデータのあるセルの品質属性が一致するかを確認する。例えば「信頼性」の品質属性ＩＤを102とすると、要件情報ファイル４の品質属性ＩＤが102で品質特性マトリックスのデータのあるセルの品質属性が「信頼性」である場合に一致したと見なす。そして一致した場合は、ステップＳ４７に進んで、ステップＳ４７の処理を行い、一致しない場合は、ステップＳ４８に進んで、ステップＳ４８の処理を行う。
【００６８】
ステップＳ４７では、要件情報ファイル４の品質属性ＩＤの下に品質構文ＩＤを設定し、品質構文ＩＤにリンクを追加し、その項目の下に品質特性マトリックスのセルのデータを格納する。その後ステップＳ４９に進み、ステップＳ４９の処理を行う。
【００６９】
ステップＳ４８では、要件情報ファイル４の品質属性ＩＤリンクの下に品質特性マトリックスのデータのあるセルの品質属性のＩＤを設定し、更に品質構文ＩＤを設定し品質構文ＩＤにリンクを追加し、その「項目」の下に品質特性マトリックスのセルに格納されているデータを格納する。
【００７０】
ステップＳ４９で、操作者は、品質構文を選択して要件情報ファイル４の品質構文ＩＤにリンクされた「項目」の下に格納されているデータを振り分けて、構文（品質構文）に対応した入力データにする。図９Ｂの具体例で説明すれば、ステップＳ４７、４８で、「テンキー放置タイマー１０秒以内に回復」とあるのを、ステップＳ４９では、構文にしたがって「テンキー放置タイマー」「最終キー操作から」「１０秒以内にロック回復」という風に振り分けて入力データを入力する。入力したデータは要件情報ファイル４に格納する。
【００７１】
図１０は、本発明の実施形態に係る表形式での入力画面例を示す図である。図１０の表形式において構文は機能構文，品質構文，非正常系構文のいずれにも対応する。同一構文については上述したように複数の要件データを同一画面上で入力することができる。
【００７２】
図１１は、本発明の実施形態に係るインポート・エクスポート処理部９の動作を説明するためのフローチャートである。本発明の実施形態に係るインポート・エクスポート処理部９は操作者（クライアント１２）により任意に起動される。
【００７３】
図１１において、インポート・エクスポート処理部９における（ａ）構文定義データインポート処理では、ＣＳＶ形式の外部の構文定義データの種類（機能構文/品質構文/非正常系構文）を指定して機能構文定義ファイル１/品質構文定義ファイル２/非正常系構文定義ファイル３へ格納する。構文ＩＤごとに指定できる。この構文定義データインポート処理により、外部の構文定義データを内部で利用できるので、構文定義データの作成効率を上げることができる。
【００７４】
またインポート・エクスポート処理部９における（ｂ）構文定義データエクスポート処理では、機能構文定義ファイル１/品質構文定義ファイル２/非正常系構文定義ファイル３のデータをＣＳＶ形式で外部へ出力する。構文ＩＤごとに指定できる。この構文定義データエクスポート処理により、構文定義データを外部に利用させることができるので、構文定義データを基に要件情報ファイルの作成などについて外部資源を利用することができる。
【００７５】
さらにインポート・エクスポート処理部９における（ｃ）要件情報データインポート処理では、ＣＳＶ形式の外部の要件情報データを要件情報データファイル４へ格納する。見出し番号ごとに指定できる。この要件情報データインポート処理により、外部の要件情報データを利用できるので、要件情報データ作成に掛かる労力を軽減し、要件記述についての開発効率を上げることができる。
【００７６】
またインポート・エクスポート処理部９における（ｄ）要件情報データエクスポート処理では、要件情報データファイル４のデータをＣＳＶ形式で外部へ出力する。見出し番号ごとに指定できる。この要件情報データエクスポート処理により、要件情報データを外部に利用させることができるので、外部資源を利用して要件記述についての効率を上げることができる。
【００７７】
図１２は、本発明の実施形態に係るＴＢＤチェック処理部１０の動作を説明するためのフローチャートである。本発明の実施形態に係るＴＢＤチェック処理部１０は定期的に自動起動する。
【００７８】
図１２においてＴＢＤ（To Be Determined：記載未定事項）チェック処理部１０は、ステップＳ５１では、要件情報ファイル４を読み込む。次いでステップＳ５２では、要件情報ファイル４内のデータでＴＢＤと記載されているものの担当者名と期限日付を抽出する。そしてステップＳ５３では、期限日付が当日以前のものをリストアップし、操作者の指示によりその内容を表示する。
【００７９】
図１３は、本発明の実施形態に係るソフトウェア要件記述支援システムにおいて導入された構文例と当該構文に対応した要件記述例を示す表である。
図１３に示す表は、一例として「オープン機能」に関するもので、構文として、機能，品質、非正常系の各構文定義ファイルに定義された項目が要件ごとに具体的に挙げられている。この構文に対して、機能，品質、非正常系ごとに具体事例をもって要件が記述され、記述結果が図５Ａ及び図５Ｂに示す内容で要件情報ファイル４に格納される。
【００８０】
以上の説明から明らかなとおり、本発明のソフトウェア要件記述支援システムによれば、
（１）項目レベルの入力フォームにより項目の抜けなどを排除するとともに、項目の記述構文を指定してそれに沿って記述することができる。例えば性能条件の「Ａの状態からＢの状態までの時間はＸ秒以内とする」など条件の記述構文を指定して、条件での“Ｆｒｏｍ”、“Ｔｏ”を記述する構文、数値を記述する構文を指定でき、これにより構文レベルでの記述漏れや数値データ設定が無いなどの曖昧さを排除することができる。
（２）機能の構文だけでなく、機能構文，品質構文，非正常系構文をそれぞれ設定し、この３つの構文をセットにした要件記述構文により要件を記述することで機能，品質，非正常系それぞれに最適な構文により要件を記述することができ、曖昧さを排除することができる。
（３）品質属性については品質との単独の項目ではなく、機能と品質属性の項目およびそれぞれの構文をセットにすることで機能と品質属性をセットにした要件記述ができる。また品質モデルである品質特性マトリックスの記述を要件定義の構文に自動展開することで品質モデルをベースにした要件記述を自動化することができ、要件記述の正確さを増すことができる。
（４）非正常系のモデルを要件記述に展開するため、非正常系の構文を設定でき、また機能と非正常系をセットにすることで、機能に対応した非正常系の要件記述をすることにより非正常系要件記述の漏れを防止する。
（５）ＴＢＤ（To Be Determined：記載未定事項）とされた部分については担当者と記載期限を設定し、記載期限を過ぎたものを自動チェックすることで記載漏れを検出でき、記載漏れを防止することができる。
（６）要件情報データのインポート・エクスポート処理により外部資源を活用して要件記述についての開発効率を上げることができる。また構文定義データのインポート・エクスポート処理により、外部の構文定義データを内部で利用できるので、構文定義データの作成効率を上げることができ、また内部の構文定義データを外部で利用できるので、構文定義データの作成に外部資源を活用することができる。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施形態に係るソフトウェア要件記述支援システムの構成を示すブロック図である。
【図２】本発明の実施形態に係る機能構文定義ファイルのデータ構造を示す図およびその具体的なデータ構造例を示す図である。
【図３】本発明の実施形態に係る品質構文定義ファイルのデータ構造を示す図およびその具体的なデータ構造例を示す図である。
【図４】本発明の実施形態に係る非正常系構文定義ファイルのデータ構造を示す図およびその具体的なデータ構造例を示す図である。
【図５Ａ】本発明の実施形態に係る要件情報ファイルのデータ構造を示す図である。
【図５Ｂ】本発明の実施形態に係る要件情報ファイルの具体的なデータ構造例を示す図である。
【図６】本発明の実施形態に係る品質特性マトリックスの一例を示す図である。
【図７Ａ】本発明の実施形態に係る要件入力処理部の動作を説明するためのフローチャートである。
【図７Ｂ】本発明の実施形態に係る要件入力処理部の動作を説明するためのフローチャートである。
【図７Ｃ】本発明の実施形態に係る要件入力処理部の動作を説明するためのフローチャートである。
【図８】本発明の実施形態に係る構文定義処理部の動作を説明するためのフローチャートである。
【図９Ａ】本発明の実施形態に係る品質特性対応処理部の動作を説明するためのフローチャートである。
【図９Ｂ】本発明の実施形態に係る品質特性対応処理部の動作を説明するためのフローチャートである。
【図１０】本発明の実施形態に係る表形式での入力画面例を示す図である。
【図１１】本発明の実施形態に係るインポート・エクスポート処理部の動作を説明するためのフローチャートである。
【図１２】本発明の実施形態に係るＴＢＤチェック処理部の動作を説明するためのフローチャートである。
【図１３】本発明の実施形態に係るソフトウェア要件記述支援システムにおいて導入された構文例と該構文に対応した要件記述例を示す表である。
【符号の説明】
【００８２】
１  機能構文定義ファイル
２  品質構文定義ファイル
３  非正常系構文定義ファイル
４  要件情報ファイル
５  品質特性マトリックスファイル
６  要件入力処理部
７  構文定義処理部
８  品質特性対応処理部
９  インポート・エクスポート処理部
１０  ＴＢＤチェック処理部
１１  ネットワーク
１２  クライアント
１３  サーバ
【図１】
2008003851.tif 000003
【図２】
2008003851.tif 000004
【図３】
2008003851.tif 000005
【図４】
2008003851.tif 000006
【図５Ａ】
2008003851.tif 000007
【図５Ｂ】
2008003851.tif 000008
【図６】
2008003851.tif 000009
【図７Ａ】
2008003851.tif 000010
【図７Ｂ】
2008003851.tif 000011
【図７Ｃ】
2008003851.tif 000012
【図８】
2008003851.tif 000013
【図９Ａ】
2008003851.tif 000014
【図９Ｂ】
2008003851.tif 000015
【図１０】
2008003851.tif 000016
【図１１】
2008003851.tif 000017
【図１２】
2008003851.tif 000018
【図１３】
2008003851.tif 000019