(57)【要約】【課題】機能特性と非機能特性を対応付けながら機能特性および非機能特性の設計の詳細化の支援を行うソフトウェア設計支援装置および方法を提供する。【解決手段】機能特性の定義を格納する階層化した機能特性テーブル１と、非機能特性の定義を格納する階層化した非機能特性テーブル２と、機能特性と非機能特性との関連の定義を格納する関連テーブル３と、ナビゲーション情報を格納するナビゲーションテーブル４と、機能特性及び非機能特性の設定並びに両者の関連設定および論理チェックを行う特性設定・チェック処理部５と、機能特性と非機能特性との関連設定並びに属性データの設定および論理チェックを行う関連設定・チェック処理部６と、ナビゲーションテーブル４に情報を設定するナビゲーション設定処理部７と、機能特性と非機能特性の関連を表示して処理可能するマッピング情報表示処理部８を含んで構成される。【選択図】図１
2007058791.tif 000002
【特許請求の範囲】
【請求項１】
機能特性および非機能特性の分析からソフトウェアの設計支援を行うソフトウェア設計支援装置において、機能特性の定義を格納する階層化した機能特性テーブルと、非機能特性の定義を格納する階層化した非機能特性テーブルと、機能特性と非機能特性の関連の定義を格納する関連テーブルと、特性設定画面ＩＤ及び特性設定データの入力がなされたとき前記機能特性テーブル又は前記非機能特性テーブルに特性を設定する特性設定手段と、関連設定画面ＩＤ及び関連データの入力がなされたとき前記機能特性及び前記非機能特性の関連を前記関連テーブルに設定する関連設定手段と、前記関連テーブルに設定された前記機能特性及び前記非機能特性の関連から前記機能特性及び前記非機能特性との対応を記載したマトリックスを生成するマトリックス生成手段と、前記マトリックス生成手段で生成されたマトリックス上で前記機能特性及び非機能特性を相互に連携させて機能特性および非機能特性の詳細設計を実施する詳細設計実施手段と、を含むことを特徴とするソフトウェア設計支援装置。
【請求項２】
前記特性設定手段は、前記非機能特性テーブルに機能特性に対応した詳細化した非機能特性、または、前記機能特性テーブルに非機能特性に対応した詳細化した機能特性、を設定可能とした請求項１記載のソフトウェア設計支援装置。
【請求項３】
ナビゲーションデータを格納するナビゲーションテーブルを備え、前記詳細設計実施手段が詳細設計をする際に前記ナビゲーションテーブルからデータを取得してナビゲーションする請求項１記載のソフトウェア設計支援装置。
【請求項４】
機能特性および非機能特性の分析からソフトウェアの設計支援を行うソフトウェア設計支援方法において、機能特性の定義を格納する階層化した機能特性テーブル、非機能特性の定義を格納する階層化した非機能特性テーブルおよび機能特性と非機能特性の関連の定義を格納した関連テーブルを生成する段階と、特性設定画面ＩＤ及び特性設定データの入力がなされたとき前記機能特性テーブル又は前記非機能特性テーブルに特性を設定する段階と、関連設定画面ＩＤ及び関連データの入力がなされたとき前記機能特性及び前記非機能特性の関連を前記関連テーブルに設定する段階と、前記関連テーブルに設定された前記機能特性及び前記非機能特性の関連から前記機能特性及び前記非機能特性との対応を記載したマトリックスを生成する段階と、生成されたマトリックス上で前記機能特性及び非機能特性を相互に連携させて機能特性および非機能特性の詳細設計を実施する段階、を含むことを特徴とするソフトウェア設計支援方法。
【請求項５】
前記機能特性テーブル又は前記非機能特性テーブルに特性を設定する段階において、前記非機能特性テーブルに機能特性に対応した詳細化した非機能特性を設定するか、または、前記機能特性テーブルに非機能特性に対応した詳細化した機能特性を設定する請求項４記載のソフトウェア設計支援方法。
【請求項６】
前記機能特性テーブル又は前記非機能特性テーブルへの特性設定がすでに設定済みである場合には、前記機能特性及び前記非機能特性の関連を前記関連テーブルに設定する段階において機能特性と非機能特性との対応付けの入力を可能とする請求項４記載のソフトウェア設計支援方法。
【請求項７】
前記機能特性テーブル又は前記非機能特性テーブルに特性を設定する段階において、前記機能特性の下位レベルへのデータ入力により機能特性ツリーを構築可能とする請求項４記載のソフトウェア設計支援方法。
【請求項８】
前記機能特性テーブル又は前記非機能特性テーブルに特性を設定する段階において、前記非機能特性の下位レベルへのデータ入力により非機能特性ツリーを構築可能とする請求項４記載のソフトウェア設計支援方法。
【請求項９】
ナビゲーションテーブルにナビゲーションデータを格納しておき、前記機能特性および非機能特性の詳細設計を実施する段階において、前記ナビゲーションテーブルからデータを取得してナビゲーションする請求項４記載のソフトウェア設計支援方法。
【請求項１０】
機能特性の定義を格納する階層化した機能特性テーブルと、非機能特性の定義を格納する階層化した非機能特性テーブルと、機能特性と非機能特性の関連の定義を格納する関連テーブルを備え、機能特性および非機能特性の分析からソフトウェアの設計支援を行うソフトウェア設計支援プログラムであって、コンピュータに、特性設定画面ＩＤ及び特性設定データの入力がなされたとき前記機能特性テーブル又は前記非機能特性テーブルに特性を設定する手順と、関連設定画面ＩＤ及び関連データの入力がなされたとき前記機能特性及び前記非機能特性の関連を前記関連テーブルに設定する手順と、前記関連テーブルに設定された前記機能特性及び前記非機能特性の関連から前記機能特性及び前記非機能特性との対応を記載したマトリックスを生成する手順と、生成されたマトリックス上で前記機能特性及び非機能特性を相互に連携させて機能特性および非機能特性の詳細設計を実施する手順を実行させるためのソフトウェア設計支援プログラム。
【請求項１１】
さらにナビゲーションテーブルを備え、前記機能特性および非機能特性の詳細設計を実施する手順をコンピュータに実行させる際、前記ナビゲーションテーブルからデータを取得してナビゲーションすることを特徴とする請求項１０記載のソフトウェア設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込みソフトウェアを含むソフトウェア設計を実施するにあたって、機能特性と非機能特性を対応付けながら、機能特性および非機能特性の設計の詳細化の支援を行うソフトウェアの設計支援に関する。
【背景技術】
【０００２】
下記非特許文献１では、FODA(Feature-Oriented Domain Analysis method：特性指向ドメイン分析法)で定義する特性に基づいて特性モデルを考え、その特性モデルを表現するのに特性ダイアグラムを用いている。一例として図１９に示すような車の特性ダイアグラムを提示し、そこでは車の機能を示す特性を、必須特性（全ての車は変速機を持たなければならない）、代替特性（変速機は自動なのか手動なのか）、オプション特性（システムはいくつかの特性を持ってもよいし、持たなくてもよい。例えばエアコン）のように階層的に記述した特性モデルにおいて、車の非機能特性は特性の制約事項としてたとえば「エアコンは馬力＞１００必要」などと付記するとしている。しかし、体系的な機能特性と非機能特性との対応付けには触れられていない。
【０００３】
下記非特許文献２では、FORM（Feature-Oriented Reuse Method：特性指向再利用法）がドメインエンジニアリングの過程を経て再利用可能なアーキテクチャとコンポーネントの開発と、ドメインエンジニアリングから得られたドメイン成果物（domain artifacts）を使用してアプリケーションを開発するサポート手段として利用されるものであることを提示し、さらに特性は機能特性と非機能特性を分離して記述しても良いし、特性をアーキテクチャにマッピングするときに非機能特性を参照するとしている。しかし、機能特性と非機能特性の対応付けの方法には触れられていない。
【０００４】
下記非特許文献３では、ATAM(Architecture Tradeoff Analysis Method：アーキテクチャ トレードオフ 分析法)はアーキテクチャ設計時に早期に検証することを主目的に９ステップの手順が設定され、アーキテクチャの設計者よりもアーキテクチャの評価者が利用することを想定し、適用する技法として、(１)効用ツリー、(２)アーキテクチャのアプローチ抽出/分析（アーキテクチャ設計者がどういう方法で設計の判断を行ったかをチェックする）、(３)シナリオ（品質属性を更に展開したもの）のブレーンストーミング(優先付け)／マッピング(シナリオ再チェック)を採用している。そして品質属性の分類項目も性能、変更可能性、ユーザビリティ、セキュリティから更に刺激、パラメータ、応答の階層へ展開し、またその下の階層にも階層化して分類している。しかし非機能特性（シナリオ）の展開方法を記載しているが、特性モデルの機能との関係付けは記載していない。
【０００５】
下記特許文献１では、ＱＦＤ（Quality Function Deployment：品質機能展開）のデータを内蔵した設計支援装置により該当する機能、品質特性などの要件を指定すると、関連する部品構成仕様のリスト、ＣＡＤ図面の対応部分の強調表示がなされるが、機能特性や非機能特性の入力および機能特性と非機能特性の関連を入力して設計の詳細化を行うことについては触れられていない。
【０００６】
下記特許文献２では、ソフトウェアの機能仕様を階層的に展開した「機能仕様型」を用いることについて記載しているが、非機能特性についての記述がなされておらず、それゆえ、体系的な機能特性と非機能特性との対応付けには触れられていない。
【特許文献１】特開２０００−１７２７３９号公報
【特許文献２】特開平１０−４００８８号公報
【非特許文献１】Krzysztof Czarnecki 外1 著「Generative Programming Methods, Tools, and Applications」 Addison-Wesley, pp39-48 (2000)
【非特許文献２】Kyo C Kang 外5 著「FORM:A Feature-oriented reuse method with domain-specific reference architectures」Annals of Software Engineering 5 (1998)
【非特許文献３】Rick Kazman 外2 著「ATAM:Method for Architecture Evaluation」 TECNICAL REPORT CMU/SEI-2000-TR-004 (2000)
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、上記非特許文献１では体系的な機能特性と非機能特性との対応付けには触れられていないし、上記非特許文献２でも対応付けの方法には触れられていない。そして上記非特許文献３ではシナリオ（非機能特性）と機能特性との関係付けは特性のシナリオ（非機能特性）に限定されており、非機能特性と機能特性との関係付けは記載していない。また、上記特許文献１では、対応関係を表示することはできるが、機能特性や非機能特性の入力や機能特性と非機能特性の関連を入力して設計の詳細化をすることはできない。さらに、上記特許文献２では、機能特性の展開については記述しているが、非機能特性についての記述がなく、機能特性と非機能特性との対応付けについては触れられていない。
【０００８】
このように従来技術を概観してみると、ソフトウェアの開発設計を詳細化するにあたっては機能特性と非機能特性を関連付けながらそれぞれ展開又は進化させることの重要性が認識されていない。
【０００９】
そこで本発明は、機能特性と非機能特性を対応付けながら機能特性および非機能特性の設計の詳細化の支援を行うソフトウェア設計支援装置および方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明は、機能特性および非機能特性の分析からソフトウェアの設計支援を行うソフトウェア設計支援装置において、機能特性の定義を格納する階層化した機能特性テーブルと、非機能特性の定義を格納する階層化した非機能特性テーブルと、機能特性と非機能特性の関連の定義を格納する関連テーブルと、特性設定画面ＩＤ及び特性設定データの入力がなされたとき前記機能特性テーブル又は前記非機能特性テーブルに特性を設定する特性設定手段と、関連設定画面ＩＤ及び関連データの入力がなされたとき前記機能特性及び前記非機能特性の関連を前記関連テーブルに設定する関連設定手段と、前記関連テーブルに設定された前記機能特性及び前記非機能特性の関連から前記機能特性及び前記非機能特性との対応を記載したマトリックスを生成するマトリックス生成手段と、前記マトリックス生成手段で生成されたマトリックス上で前記機能特性及び非機能特性を相互に連携させて機能特性および非機能特性の詳細設計を実施する詳細設計実施手段と、を含むことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、機能特性と非機能特性とを関連テーブルにより対応付けながら、機能特性および非機能特性の設計の詳細化を行うようにしているので、組み込みソフトウェアを含むソフトウェア設計における誤りや漏れの混入を防止し、作業工数を削減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は、本発明の実施の形態に係るソフトウェア設計支援装置の構成概要を示すブロック図である。図１において本発明の実施形態に係るソフトウェア設計支援装置は、機能特性の定義を格納する階層化した機能特性テーブル１と、非機能特性の定義を格納する階層化した非機能特性テーブル２と、機能特性と非機能特性との関連の定義を格納する関連テーブル３と、設計入力方法、設計失敗事例などのナビゲーション情報を格納するナビゲーションテーブル４と、機能特性及び非機能特性の設定並びに両者の関連設定および論理チェックを行う特性設定・チェック処理部５と、機能特性と非機能特性との関連設定並びに属性データの設定および論理チェックを行う関連設定・チェック処理部６と、ナビゲーションテーブル４に情報を設定するナビゲーション設定処理部７と、機能特性と非機能特性の関連を表示するマッピング情報表示処理部８と、プログラムを格納し上記各処理部の処理動作を実行するサーバ９と、サーバ９とクライアント１１を連携するネットワーク１０と、ネットワーク１０経由でサーバ９に繋がれ、データの設定や処理の起動、データの表示を行うクライアント１１とから構成されている。
【００１３】
図２は図１に示した機能特性テーブル１に設定する項目例を示す図である。図２に示すように機能特性テーブル１は、ドメイン名２１と特性名２２がインデックスとなっている。ドメイン名２１は、ドメイン分析をした結果によって入力され、特性名２２には、特性分析の最上位特性を格納する。なお本発明における「特性」は、上記非特許文献１で紹介されている一般的な定義、すなわちＦＯＤＡ(Feature-Oriented Domain Analysis method)で定義する、エンドユーザに直接影響するシステムのプロパティとして特性を定義したもの、を用いることにする。具体的には、ソフトウェアシステムあるいはシステムの目立ちそしてエンドユーザに見えるアスペクト、質、または特質を言い、たとえば、車を購入する場合、ユーザが決定しなければならない変速機特性（例．自動または手動）を記述することに相当する。そして特性名２２の下位に順次階層化された下位レベル特性名を展開し、下位１レベル特性名２３には、最上位特性を特性分割して得られた特性名を入れる。また属性項目２４には、図２の下部に示された（２）属性項目に示された項目が入れられる。また下位２レベル特性名２５、属性項目２６、下位ｎレベル特性名２７、属性項目２８には、上述した下位１レベル特性名２３および属性項目２４と同様に、上位機能特性を特性分割して得られた特性名と当該機能特性の属性項目を格納する。
【００１４】
図２の下部に示した「（２）属性項目」は、次のように構成される。分類３１には、当該特性が共通特性であるか、オプション特性であるか、ＯＲ特性であるかのデータを格納する。本情報は特性モデルを構築するために必須の情報である。また、下位マップ３２には、当該レベルの下位機能それぞれとの関係を記載する。さらに、関連テーブルＩＤ３３には、機能特性と非機能特性との関連を示す図１に示した関連テーブル３のＩＤを格納する。これにより当該機能特性と対応する非機能特性が識別される。また備考３４には、任意の情報を記入する。機能特性テーブル項目の具体例を図１１に示す。なお、図２の下部に示した「（２）属性項目」は随意追加できるようにされている。
【００１５】
図３は図１に示した非機能特性テーブル２に設定する項目例を示す図である。図３に示すように非機能特性テーブル２は、ドメイン名４１がインデックスとなっている。ここでドメイン名はドメイン分析をした結果によって入力されることは上述したとおりである。品質属性４２には、品質の分類を記載する。記載する当該分類として例えばＩＳＯ／ＩＥＣ９１２６の品質特性をデフォルトで設定する。品質特性４４には、例えばＱＦＤ(Quality Function Deployment：品質機能展開)(ＪＩＳ Ｑ ９０２５）の品質表により要求品質を品質特性に変換したものを用いる。シナリオｎレベル名４６には、例えば品質特性４４を入力／状態／応答の観点から展開したシナリオを記載する。なお本発明における「シナリオ」は、参考文献Clements 外2 著「Evaluating Software Architectures」 Addison-Wesley, pp52-55 (2002年)に「利害関係者とシステムとのやりとりの短い記述である」と定義されているものを用いることにする。
【００１６】
図３の下部に示した「（２）属性項目」は次のように構成される。属性項目として、属性項目４３、属性項目４５、属性項目４７が、品質属性４２、品質特性４４、シナリオｎレベル名４６に対応して設けられているが、ここではシナリオｎレベル名４６に対応して設けられた属性項目４７だけを取り上げ、「（２）属性項目」における分類５１には、当該シナリオが入力に関係するものか、状態に関係するものか、応答に関係するものかのデータを格納する。なお本情報は付加情報であり必須ではない。下位マップ５２には、当該レベルの下位機能それぞれとの関係があればそれを記載する。関連テーブルＩＤ５３には、機能特性と非機能特性との関連を示す図１に示した関連テーブル３のＩＤを格納する。関連テーブルＩＤ５３により当該非機能特性と対応する機能特性が識別される。重要度５４には、当該非機能特性の重要度を５段階で評価した値を格納する。リスク５５には、当該非機能特性のリスクを５段階で評価した値を格納する。リスクには例えば判断要件が不明確、判断の検討が不十分など、が含まれる。備考５６には、必要とされる任意の情報を記入する。非機能特性テーブル項目の具体例を図１２に示す。なお、属性項目４３，４５における分類５１は現段階では空欄であって、埋めるものがないということで例示されていないが、図３の下部に示す「（２）属性項目」は随意追加できるので適宜埋めることができる。
【００１７】
図４は図１に示した関連テーブル３に設定する項目例を示す図である。図４に示す関連テーブル３は、次のようにして構成される。すなわち、ＩＤ６１には、関連テーブル３のレコードを識別するための任意につけたレコードに一意の番号が記載される。機能テーブル項目名６２には、当該レコードの機能特性テーブル１の特性名２２を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。非機能テーブル項目名６３には、当該レコードの機能特性テーブル１の特性名２２に関連する非機能特性名（図３の品質属性４２、品質特性４４、シナリオｎレベル名４６、参照）を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。条件記述６４には、機能特性と非機能特性の関連について条件がある場合は当該条件を格納する。関連テーブル項目の具体例を図１３に示す。
【００１８】
図５は図１に示したナビゲーションテーブル４に設定する項目例を示す図である。図５に示すナビゲーションテーブル４は、次のようにして構成される。すなわち、イベント７１には、設計入力方法、設計失敗事例などナビゲーション項目に対応する設計手順名などを格納する。ナビゲーション７２には、設計入力方法、設計失敗事例など設計者に品質の良い設計を導くための情報を格納する。ナビゲーションテーブル項目の具体例を図１４に示す。
【００１９】
図６は図１に示した特性設定・チェック処理部５における処理動作を説明するためのフローチャートである。本処理動作は図１７Ａないし図１７Ｃに示されるような第１ないし第３の特性設定画面の入力、すなわち第１ないし第３の特性設定画面を識別する画面ＩＤ情報の入力、により起動される。そして図６中には図１７Ｃが、すなわち機能特性に対応した非機能特性（シナリオ）を設定するための第３の特性設定画面による入力例が示されている。
【００２０】
図６のフローチャートにおいてステップ（図ではステップをＳと略記している。以下、同じ）１では画面ＩＤ情報および入力データ読込みを行って、入力されたデータが関連する画面を識別し、入力されたデータを獲得する。ステップ２では、必要な入力項目が入力されているかのチェックを行って、画面に指定された入力項目で必須のものと必須以外のものの情報、データタイプ、制限文字数などを処理内または処理外に保持し、入力されたデータ項目と比較チェックする。ステップ３では、チェックＯＫか否かを判定し、ステップ２における結果を評価する。ステップ３におけるチェックがＯＫの場合、ステップ４では、機能特性／非機能特性かを画面ＩＤ情報から判断し機能特性テーブル／非機能特性テーブルに入力データを設定する。ここでの入力データは図６の右側中段に示すように特性名、属性項目（下位マップ、関連テーブルＩＤ以外）である。下位マップは入力データの画面属性（入力時にマウスなどでマトリックス上の入力位置を指定したデータ）により生成する。また関連テーブルＩＤはステップ６における処理により設定される。
【００２１】
ステップ５では、非機能特性が入力された場合、関連テーブルのＩＤを新規に設定し、関連テーブルに新規レコードを生成する。すでに関連テーブルにレコードがある場合は変更要否のメッセージにより確認しＯＫなら非機能特性を上書き修正する。機能特性が入力された場合はこのステップをパスする。ステップ６では、関連テーブルのレコードを新規に生成した場合、機能特性テーブル及び非機能特性テーブルの属性項目の関連テーブルＩＤに当該関連テーブルＩＤを設定する。一方、ステップ７では、ステップ３におけるチェックがＮＧの場合、処理内または処理外に保持しているエラーメッセージを当該画面ＩＤの画面に表示する。
【００２２】
図７は図１に示した関連設定・チェック処理部６の処理動作を説明するためのフローチャートである。本処理動作は図１８に示す関連設定画面におけるマトリックス（黒丸‘●’付け）の設定完了時に起動画面の入力、すなわち関連設定画面を識別する画面ＩＤ情報の入力、により起動される。この場合、事前に機能特性テーブル及び非機能特性テーブルの特性と下位マップが設定されていることが前提条件となる。なお図７中には図１８に示す関連設定画面による入力例が示されている。
【００２３】
図７のフローチャートにおいてステップ（図ではステップをＳと略記している。以下、同じ）１１では、画面ＩＤ情報および入力データの読込みを行い、入力されたデータが関連する画面を識別し、入力されたデータを獲得する。ステップ１２では、必要な入力項目が入力されているかをチェックし、画面に指定された入力項目で必須のものと必須以外のものの情報、データタイプ、制限文字数などを処理内または処理外に保持し、入力されたデータ項目と比較チェックする。次いでステップ１３では、チェックＯＫか否かを判定し、ステップ１２での結果を評価する。ステップ１３でチェックＯＫの場合、ステップ１４では、画面のマトリックスでの入力情報（黒丸‘●’が有る位置情報）により、機能特性と非機能特性の関連を判断し、関連テーブルのＩＤを新規に設定し、新規レコードを生成する。関連テーブルの当該機能特性がすでに登録されている場合は変更要否のメッセージにより確認しＯＫなら変更する。
【００２４】
ステップ１５では、機能特性テーブル及び非機能特性テーブルの属性項目の関連テーブルＩＤに当該関連テーブルＩＤを設定する。次いでステップ１６では、機能特性テーブル及び非機能特性テーブルに属性項目の変更が入力されていたら当該データを当該テーブルの当該項目に設定する。一方、ステップ１７では、ステップ１３におけるチェックがＮＧの場合、処理内または処理外に保持しているエラーメッセージを当該画面ＩＤの画面に表示する。
【００２５】
このように本実施形態では、機能特性および非機能特性があらかじめ設計されていた場合にも関連設定・チェック処理動作において両特性を対応付けられるようにしているので、組み込みソフトウェアを含むソフトウェア設計における誤りや漏れの混入を防止することが可能となる。
【００２６】
図８は図１に示したナビゲーション設定処理部７の処理動作を説明するためのフローチャートである。図８においてはイベントとナビゲーションの項目がパラメータとして設定され、任意に起動される。削除する場合は削除の項目をパラメータに追加する。
【００２７】
図８のフローチャートにおいてステップ２１では、入力されたイベントとナビゲーション項目を新規レコードとしてナビゲーションテーブル４に登録する。また削除のパラメータの場合は当該レコードをナビゲーションテーブル４から削除する。
【００２８】
図９は図１に示したマッピング情報表示処理部８におけるマッピング情報表示・特性設定の処理動作を説明するためのフローチャートである。本処理動作は任意に起動され、パラメータとしては、イベント名および設定する機能特性／非機能特性の下位レベルであり、画面を通じて入力する。なおマッピング情報を表示する設定画面は、図１７Ａないし図１７Ｃに例示した第１ないし第３の設定画面を使用する。図９中では図１７Ｃに示した第３の設定画面が例示されている。
【００２９】
図９のフローチャートにおいてステップ（図ではステップをＳと略記している。以下、同じ）３１では、パラメータで指定された機能特性／非機能特性の指定下位レベル以上の特性名などのデータを機能特性テーブル１および非機能特性テーブル２から取得し、マトリックスの項目（枠の項目）を表示（図９の右下に示す設定画面に表示）する。表示したマトリックスのセルをマウスなどでクリックすると当該セルのデータが入力エリアで入力可能となる。ステップ３２では、関連テーブル３のデータを取得する。そして当該機能特性、非機能特性の組で関連データがないセルを網掛け表示（図９の右下に示す設定画面に表示）する。ステップ３３では、パラメータで指定されたイベント名からナビゲーションテーブル４を参照し、ナビゲーションデータを取得してナビゲーション表示を行う。
【００３０】
図１０は図１に示したマッピング情報表示処理部８におけるマッピング情報表示・関連設定の処理動作を説明するためのフローチャートである。本処理動作は任意に起動され、パラメータとしては関連を設定する下位レベルのレベルを指定する。
【００３１】
図１０のフローチャートにおいてステップ（図ではステップをＳと略記している。以下、同じ）４１では、パラメータで指定された機能特性／非機能特性のデータを機能特性テーブル１、非機能特性テーブル２から取得する。そして機能特性ツリーを当該テーブルのデータにより表示する（図１０の右下に示す設定画面の左上部参照）。図１５に機能特性ツリーの具体例を示す。同様に、非機能特性ツリーを当該テーブルのデータにより表示する（図１０の右下に示す設定画面の左下部参照）。図１６に非機能特性ツリーの具体例を示す。
【００３２】
ステップ４２では、パラメータで指定された下位レベルのマトリックスの項目（枠の項目）を表示する（図１０の右下に示す設定画面の右上部参照）。ステップ４３では、マトリックスの項目（枠の項目）をマウスなどでクリックして指定すると関連するデータを入力領域に表示する（入力も可能）（図１０の右下に示す設定画面の右下部参照）。ステップ４４では、マトリックスの項目（枠の項目）を指定して入力したデータを取得し、機能特性テーブル／非機能特性テーブルのデータに対応する項目に格納する。
【００３３】
このように本実施形態では、画面でのツリー表現やナビゲーションにより設計入力方法や失敗事例などのガイダンスを含められるようにしているので、組み込みソフトウェアを含むソフトウェア設計における誤りや漏れの混入を防止し、作業工数を削減することが可能となり、ソフトウェア開発での品質向上、短納期対応、コスト削減を図ることができる。
【００３４】
ここで上記した各テーブルの具体例について説明する。図１１は、本発明の実施形態に係る機能特性テーブル項目の具体例を示す図であり、一例としてドメイン名２１に「テンキー」および特性名２２に「テンキー」を設定し、下位１レベル特性名２３に「ＩＣボタン初期化」、「放置タイマー」、「操作」を設定し、この「操作」の下位階層として下位２レベル特性名２４に「操作モード」、「特定キー順送り」、「高速払出」を設定する。この「高速払出」の属性項目として、分類３１に「オプション特性」であることを、下位マップ３２に「なし」を、関連テーブルＩＤに「３」を設定している。
【００３５】
図１２は、本発明の実施形態に係る非機能特性テーブル項目の具体例を示す図であり、一例としてドメイン名４１に「テンキー」を設定し、品質属性４２に「使用性」、「信頼性」、「効率性」、「保守性」、「移行性」、「機能性」を設定し、さらにこの「使用性」の下位階層としての品質特性４４に「操作モードを容易に選択できること」、「少ない操作でできること」、「払い出しが高速にできること」、「初期化が１操作でできること」を設定し、またこの「操作モードを容易に選択できること」の下位階層としての「シナリオｎレベル名」４６に「１操作でモードを切り替えること」を設定する。この「１操作でモードを切り替えること」の属性項目として、分類５１に「入力」であることを、下位マップ５２に「なし」を、関連テーブルＩＤ５３に「４」を、重要度５段階評価５４に「４」を、またリスク５段階評価５５に「３」を設定している。
【００３６】
図１３は、本発明の実施形態に係る関連テーブル項目の具体例を示す図であり、一例としてＩＤ項目６１に「１」、「２」、「３」、「４」を設定し、機能テーブル項目名６２にＩＤに対応して「テンキー−操作」、「テンキー−操作」、「テンキー−操作−高速払出」、「テンキー−操作−特性キー順送り」を設定し、非機能テーブル項目名６３にＩＤに対応して「使用性−操作モードを容易に選択できること」、「使用性−少ない操作でできること」、「使用性−払い出しが高速にできること−３秒以内に払い出し」、「使用性−操作モードを容易に選択できること−１操作でモードを切り替えること」を設定している。条件記述には何も設定していない。
【００３７】
図１４は、本発明の実施形態に係るナビゲーションテーブル項目の具体例を示す図であり、一例としてイベント７１に「品質特性設定」、「機能詳細化」、「シナリオ設定」を設定し、ナビゲーション７２にそれぞれ「機能に対応した品質を設定して下さい。品質特性は名詞＋形容詞＋動詞で記述して下さい。」、「品質特性に対応した機能を設定して下さい。応答がないと永遠にロックするという失敗事例があります。」、「機能に対応したシナリオを設定して下さい。入力、状態、応答の観点で分類入力をして下さい。」を設定している。
【００３８】
図１５は、本発明の実施形態に係る機能特性ツリーの具体例を示す図であり、図１５において機能特性ツリーは機能特性と機能特性間の関係を示すダイアグラムであり、非機能特性に対する記述を除いて基本的に図１９に示したものに同じである。図１５において円弧は代替特性を、白丸はオプション特性を、それ以外は必須特性を示している。図１９に示した特性ツリーについては上記非特許文献１を参照されたい。
【００３９】
図１６は、本発明の実施形態に係る非機能特性ツリーの具体例を示す図である。図１６において非機能特性ツリーは非機能特性と非機能特性間の関係を示すダイアグラムである。ツリーの階層は、上から品質属性４２、品質特性４４、シナリオ４６である。そして品質属性の一例に使用性と信頼性を挙げている。なお、非機能特性ツリーについては”Utility Trees”（効用ツリー）として上記非特許文献３にも記載例が示されている外、上記非特許文献１に記載されている特性ツリー表記による表示方法もあるので必要であれば参照されたい。
【００４０】
図１７Ａないし図１７Ｃは、本発明の実施形態に係る特性設定画面の例を示す図である。図１７Ａないし図１７Ｃに例示されている特性設定画面は、機能特性および非機能特性の階層を深める設計を行うための手順を追って、まずテンキーの機能に対応した非機能特性（品質特性）を設定するための第１の特性設定画面（図１７Ａ）、次いで非機能特性（品質属性）に対し機能特性を詳細化するための第２の特性設定画面（図１７Ｂ）、さらに機能特性に対応した非機能特性（シナリオ）を設定するための第３の特性設定画面（図１７Ｃ）を実施した場合を例にしている。図１７Ａの特性設定画面では、要求品質と品質特性のマトリクス（品質表）は既に作られているという前提に立っており、「放置タイマー」と「信頼性」のセルへの非機能特性の入力例を示し、また図１７Ｂの特性設定画面では、「操作」と「操作モードを容易に選択できること」のセルへの機能特性の入力例を示し、また図１７Ｃの特性設定画面では、「テンキー放置タイマー」と「放置しても自動的に復旧すること」のセルへのシナリオの（当該セル中の５，３は、「重要度」５で「リスク」が３であることを示す。他のセル中の数字も同じ。）入力例を示している。
【００４１】
なお「信頼性」の非機能特性については、図１７Ａないし図１７Ｃの特性設定画面から図３に示した非機能特性テーブル項目における（１）非機能特性テーブルの品質特性４２またはシナリオｎレベル名４６に「信頼性ブロック名」を、また（２）属性項目の「備考」５６に「故障モード」、「推定原因」、「影響（機能特性、上位の機能特性）」、「故障等級」を設定することによりFMEA(Failure Mode and Effect Analysis)に利用することができる。FMEAの内容について必要であれば、鈴木順二郎 外2 著「FMEA・FTA実施法」 日科技連出版社 pp-36-42 (1982年)を参照されたい。
【００４２】
図１８は、本発明の実施形態に係る関連設定を行う設定画面の具体例を示す図であり、下位１レベルでマトリックスを構成した場合を示している。画面のマトリックスでの入力情報（黒丸‘●’が有る位置情報）により、機能特性と非機能特性の関連を判断することができる。また入力エリアには非機能特性の「放置しても自動的に復旧する」項目を指定した場合が示されており、さらに重要度が「５」であること並びに条件記述に「タイマー割り込みがあること」を示している（図１７Ａ参照）。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施形態に係るソフトウェア設計支援装置の構成概要を示すブロック図である。
【図２】図１に示した機能特性テーブルに設定する項目例を示す図である。
【図３】図１に示した非機能特性テーブルに設定する項目例を示す図である。
【図４】図１に示した関連テーブルに設定する項目例を示す図である。
【図５】図１に示したナビゲーションテーブルに設定する項目例を示す図である。
【図６】図１に示した特性設定・チェック処理部の処理動作を説明するためのフローチャートである。
【図７】図１に示した関連設定・チェック処理部の処理動作を説明するためのフローチャートである。
【図８】図１に示したナビゲーション設定処理部の処理動作を説明するためのフローチャートである。
【図９】図１に示したマッピング情報表示処理部におけるマッピング情報表示・特性設定の処理動作を説明するためのフローチャートである。
【図１０】図１に示したマッピング情報表示処理部におけるマッピング情報表示・関連設定の処理動作を説明するためのフローチャートである。
【図１１】本発明の実施形態に係る機能特性テーブル項目の具体例を示す図である。
【図１２】本発明の実施形態に係る非機能特性テーブル項目の具体例を示す図である。
【図１３】本発明の実施形態に係る関連テーブル項目の具体例を示す図である。
【図１４】本発明の実施形態に係るナビゲーションテーブル項目の具体例を示す図である。
【図１５】本発明の実施形態に係る機能特性ツリーの具体例を示す図である。
【図１６】本発明の実施形態に係る非機能特性ツリーの具体例を示す図である。
【図１７Ａ】本発明の実施形態に係る特性設定画面の第１の例を示す図である。
【図１７Ｂ】本発明の実施形態に係る特性設定画面の第２の例を示す図である。
【図１７Ｃ】本発明の実施形態に係る特性設定画面の第３の例を示す図である。
【図１８】本発明の実施形態に係る関連設定を行う設定画面の具体例を示す図である。
【図１９】従来の特性モデルにおける非機能特性の記述法を説明するための図である。
【符号の説明】
【００４４】
１  機能特性テーブル
２  非機能特性テーブル
３  関連テーブル
４  ナビゲーションテーブル
５  特性設定・チェック処理部
６  関連設定・チェック処理部
７  ナビゲーション設定処理部
８  マッピング情報表示処理部
９  サーバ
１０  ネットワーク
１１  クライアント
【図１】
2007058791.tif 000003
【図２】
2007058791.tif 000004
【図３】
2007058791.tif 000005
【図４】
2007058791.tif 000006
【図５】
2007058791.tif 000007
【図８】
2007058791.tif 000008
【図１１】
2007058791.tif 000009
【図１２】
2007058791.tif 000010
【図１３】
2007058791.tif 000011
【図１４】
2007058791.tif 000012
【図１９】
2007058791.tif 000013
【図６】
2007058791.tif 000014
【図７】
2007058791.tif 000015
【図９】
2007058791.tif 000016
【図１０】
2007058791.tif 000017
【図１５】
2007058791.tif 000018
【図１６】
2007058791.tif 000019
【図１７Ａ】
2007058791.tif 000020
【図１７Ｂ】
2007058791.tif 000021
【図１７Ｃ】
2007058791.tif 000022
【図１８】
2007058791.tif 000023