(57)【要約】【課題】機能特性と非機能特性を対応づけながら、機能特性および非機能特性の仕様の詳細化を行うにあたり、機能特性の状態遷移の記述を可能とする仕様記述支援装置および方法を提供する。【解決手段】機能特性の定義を格納する機能特性テーブル１と、非機能特性の定義を格納する非機能特性テーブル２と、機能特性と非機能特性との関連の定義を格納する関連テーブル３と、状態遷移を伴う機能での状態遷移の定義を格納する状態遷移表テーブル４と、画面ＩＤ情報及び入力データの読込みで入力されたデータが関連する画面を識別するとともに入力データを獲得し、入力データが関連する画面が機能特性の入力画面では機能特性に状態遷移表番号が指定されている場合には前記状態遷移表テーブルに状態遷移データを設定し、更に前記関連テーブルに機能特性と非機能特性の関連設定を行う特性設定処理部６と、を備えて構成される。【選択図】図１
2008065709.tif 000002
【特許請求の範囲】
【請求項１】
機能特性と非機能特性とを対応づけながら、機能特性および非機能特性の仕様の詳細化を行う仕様記述支援装置において、
機能特性の定義を格納する機能特性テーブルと、
非機能特性の定義を格納する非機能特性テーブルと、
機能特性と非機能特性の関連の定義を格納する関連テーブルと、
状態遷移を伴う機能での状態遷移の定義を格納する状態遷移表テーブルと、
特性設定画面入力により起動され、画面ＩＤ情報及び入力データの読込みで入力されたデータが関連する画面を識別するとともに入力データを獲得し、入力データが関連する画面が非機能特性の入力画面では属性項目の分類に対応する入力項目を沿って入力するよう入力表示するとともに入力データが関連する画面が機能特性の入力画面では機能特性に状態遷移表番号が指定されている場合には前記状態遷移表テーブルに状態遷移データを設定し、更に前記関連テーブルに機能特性と非機能特性の関連設定を行う特性設定手段と、
前記機能特性及び前記非機能特性の関連から生成された品質特性マトリックス上で前記機能特性及び非機能特性を相互に連携させて状態遷移がある機能特性および非機能特性の仕様の詳細化を行う仕様詳細化手段と、
を備えていることを特徴とする仕様記述支援装置。
【請求項２】
非機能特性を展開する属性項目に非正常系の項目を定義し、定義した非正常系の項目に対して前記仕様詳細化手段は前記品質特性マトリックス上で非機能特性の仕様の詳細化を行うことを特徴とする請求項１記載の仕様記述支援装置。
【請求項３】
仕様記述を仕様記述言語の仕様記述スケルトンへ変換するためのデータを格納する仕様記述言語スケルトン変換テーブルと、
仕様記述を仕様記述言語の仕様記述スケルトンへ変換処理する仕様記述言語スケルトン変換処理手段を備え、
前記非機能特性テーブルの非機能特性の属性項目に仕様記述言語の構文に対応する項目が定義されているとき、前記仕様記述言語スケルトン変換処理手段は、前記仕様記述言語の構文に対応する項目を前記仕様記述言語スケルトン変換テーブルに基づいて仕様記述言語スケルトンに変換することを特徴とする請求項１記載の仕様記述支援装置。
【請求項４】
機能特性と非機能特性とを対応づけながら、機能特性および非機能特性の仕様の詳細化を行う仕様記述支援方法において、
機能特性の定義を格納する機能特性テーブル、非機能特性の定義を格納する非機能特性テーブル、機能特性と非機能特性の関連の定義を格納する関連テーブルおよび状態遷移を伴う機能での状態遷移の定義を格納する状態遷移表テーブルを生成する段階と、
特性設定画面入力により起動され、画面ＩＤ情報及び入力データの読込みで入力されたデータが関連する画面を識別するとともに入力データを獲得し、入力データが関連する画面が非機能特性の入力画面では属性項目の分類に対応する入力項目を沿って入力するよう入力表示するとともに入力データが関連する画面が機能特性の入力画面では機能特性に状態遷移表番号が指定されている場合には前記状態遷移表テーブルに状態遷移データを設定し、更に前記関連テーブルに機能特性と非機能特性の関連設定を行う段階と、
前記機能特性及び前記非機能特性の関連から生成された品質特性マトリックス上で前記機能特性及び非機能特性を相互に連携させて状態遷移がある機能特性および非機能特性の仕様の詳細化を行う段階と、
を含むことを特徴とする仕様記述支援方法。
【請求項５】
非機能特性を展開する属性項目に非正常系の項目を定義し、定義した非正常系の項目に対して前記品質特性マトリックス上で非機能特性の仕様の詳細化を行う段階を含むことを特徴とする請求項４記載の仕様記述支援方法。
【請求項６】
仕様記述を仕様記述言語の仕様記述スケルトンへ変換するためのデータを格納する仕様記述言語スケルトン変換テーブルを生成する段階と、
仕様記述を仕様記述言語の仕様記述スケルトンへ変換処理する段階と、
前記非機能特性テーブルの非機能特性の属性項目に仕様記述言語の構文に対応する項目が定義されているとき、前記仕様記述言語の構文に対応する項目を前記仕様記述言語スケルトン変換テーブルに基づいて仕様記述言語スケルトンに変換する段階と、
を含むことを特徴とする請求項４記載の仕様記述支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込みソフトウェアを含むソフトウェアの設計を実施するにあたって、機能特性と非機能特性を対応付けながらその詳細を設計する場合、仕様記述の記載漏れや抜けを防止する仕様記述支援装置および方法に関する。
【背景技術】
【０００２】
下記非特許文献１には、機能を示す特性を階層的に記述した特性モデルにおいて、非機能特性は特性の制約事項として「エアコンは馬力＞１００必要」などと付記するとしている。
【０００３】
また下記非特許文献２には、非機能特性（シナリオ）の展開方法について開示がなされている。
また下記特許文献１には、ＱＦＤ（品質機能展開）のデータを内蔵した設計支援装置により該当する機能、品質特性などの要件を指定すると、関連するＣＡＤ図やデータを強調表示することができる技術が開示されている。
【０００４】
また下記特許文献２には、要求フォームに要件の入力方法を提示する技術が開示されている。
また下記非特許文献３には、要求記述を「型」や「格フレーム」に当てはめてチェックする技術が開示されている。
【０００５】
また下記特許文献３には、非正常現象について関連情報をデータベースから検索して当該ソフトウェアに対して考慮すべき非正常現象（異常現象）を取得し、取得した非正常現象に基づいた非正常仕様を生成し、生成した非正常仕様とユーザが入力した特徴情報に含まれている正常仕様とを合成処理し、合成処理した開発対象のソフトウェアの全体仕様内容をユーザに提示するソフトウェア開発支援システムが開示されている。
【特許文献１】特開２０００−１７２７３９号公報
【特許文献２】特開２００５−３５２８６９号公報
【特許文献３】特開２００６−８５６６８号公報
【非特許文献１】Krzysztof Czarnecki 外1 著「Generative Programming Methods, Tools, and Applications」 Addison-Wesley, pp39-48 (2000)
【非特許文献２】Rick Kazman 外2 著「ATAM:Method for Architecture Evaluation」 TECNICAL REPORT CMU/SEI-2000-TR-004 (2000)
【非特許文献３】大西  淳  著「ソフトウェア要求定義のためのコミュニケーションモデル」情報処理学会論文誌，Vol.33，No.8，1999年8月，pp．1068-1071
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで組み込みソフトウェアを含むソフトウェアの設計を詳細化するにあたっては、機能特性と非機能特性を関連づけながらそれぞれを展開していく必要があるが、上述した非特許文献１に示された技術では、体系的な機能特性と非機能特性との対応付け、及び状態遷移の記述方法には触れられていない。また上述した非特許文献２に示された技術では、シナリオと機能との関係付けは特性のシナリオに限定されており、非正常ケースのシナリオ記述についての提示はない。また上述した特許文献１に示された技術では、機能と品質要素の対応関係を表示することはできるが、機能特性や非機能特性の入力や機能特性と非機能特性の関連を入力して指定した構文に基づいた仕様の詳細化をすることはできない。
【０００７】
さらに上述した特許文献２に示された技術では、要求フォームに要件の入力方法を示しているが、構文に対応したフォームとなっていない点で仕様の記述の不備を検出することはできない。またさらに上述した非特許文献３に示された技術では、要求記述を「型」や「格フレーム」に当てはめてチェックするが、形式的な仕様記述の不備を検出することはできない。また上述した特許文献３に示された技術では、非正常系概念モデルによってデータベースに非正常現象に直接関与する項目についてあらかじめ記述しておき、開発対象のソフトウェアに対して上記データベースから取得した非正常現象に基づいた非正常仕様を生成し、生成した非正常仕様とユーザが入力した特徴情報に含まれている正常仕様とを合成処理する技術が示されているが、体系的な機能特性と非機能特性との対応付け、及び状態遷移の記述方法には触れられていない。
【０００８】
また上記いずれの文献にも、状態遷移を伴う仕様の記述方法については明確に説明されていない。さらに、非機能特性のうち、非正常ケースの仕様の記述方法についても明確ではない。さらに、機能特性および非機能特性の記述について厳密な形式的証明をするために必要な仕様記述言語（ＶＤＭ−ＳＬ：Vienna Development Method - Specification Language）への変換方法についての記述がされていない。
【０００９】
そこで本発明は、機能特性と非機能特性を対応づけながら、機能特性および非機能特性の仕様の詳細化を行うにあたり、機能特性の状態遷移の記述を可能とする仕様記述支援装置および方法を提供することを第１の目的とする。
【００１０】
また本発明は、機能特性と非機能特性を対応づけながら、機能特性および非機能特性の仕様の詳細化を行うにあたり、非正常ケースの仕様の記述を抜けがないようにする仕様記述支援装置および方法を提供することを第２の目的とする。
【００１１】
また本発明は、機能特性と非機能特性を対応づけながら、機能特性および非機能特性の仕様の詳細化を行うにあたり、仕様記述言語構文に対応した入力を可能として厳密な形式的証明をするための仕様記述言語への変換を容易にする仕様記述支援装置および方法を提供することを第３の目的とする。
【課題を解決するための手段】
【００１２】
上記第１の課題を解決するために本発明は、機能特性と非機能特性とを対応づけながら、機能特性および非機能特性の仕様の詳細化を行う仕様記述支援装置において、機能特性の定義を格納する機能特性テーブルと、非機能特性の定義を格納する非機能特性テーブルと、機能特性と非機能特性の関連の定義を格納する関連テーブルと、状態遷移を伴う機能での状態遷移の定義を格納する状態遷移表テーブルと、特性設定画面入力により起動され、画面ＩＤ情報及び入力データの読込みで入力されたデータが関連する画面を識別するとともに入力データを獲得し、入力データが関連する画面が非機能特性の入力画面では属性項目の分類に対応する入力項目を沿って入力するよう入力表示するとともに入力データが関連する画面が機能特性の入力画面では機能特性に状態遷移表番号が指定されている場合には前記状態遷移表テーブルに状態遷移データを設定し、更に前記関連テーブルに機能特性と非機能特性の関連設定を行う特性設定手段と、前記機能特性及び前記非機能特性の関連から生成された品質特性マトリックス上で前記機能特性及び非機能特性を相互に連携させて状態遷移がある機能特性および非機能特性の仕様の詳細化を行う仕様詳細化手段と、を備えていることを特徴とする。
【００１３】
また上記第２の課題を解決するために本発明は、上記において、さらに、非機能特性を展開する属性項目に非正常系の項目を定義し、定義した非正常系の項目に対して前記仕様詳細化手段は前記品質特性マトリックス上で非機能特性の仕様の詳細化を行うことを特徴とする。
【００１４】
また上記第３の課題を解決するために本発明は、上記において、さらに、仕様記述を仕様記述言語の仕様記述スケルトンへ変換するためのデータを格納する仕様記述言語スケルトン変換テーブルと、仕様記述を仕様記述言語の仕様記述スケルトンへ変換処理する仕様記述言語スケルトン変換処理手段を備え、前記非機能特性テーブルの非機能特性の属性項目に仕様記述言語の構文に対応する項目が定義されているとき、前記仕様記述言語スケルトン変換処理手段は、前記仕様記述言語の構文に対応する項目を前記仕様記述言語スケルトン変換テーブルに基づいて仕様記述言語スケルトンに変換することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、第１に、機能特性と非機能特性とを関連テーブルにより対応づけながら、機能特性および非機能特性の仕様の詳細化を行うことができ、また機能特性と状態遷移表を関連づけることにより状態遷移を明記でき、状態遷移表の形式で状態遷移を記述することにより、状態遷移のテスト項目への自動展開も可能となる。
【００１６】
本発明によれば、第２に、機能特性と非機能特性とを関連テーブルにより対応づけながら、機能特性および非機能特性の仕様の詳細化を行うことができ、また非機能特性を記載する属性項目に非正常系の項目を明確に定義したため、仕様の記入漏れを防止することができる。
【００１７】
本発明によれば、第３に、機能特性と非機能特性とを関連テーブルにより対応づけながら、機能特性および非機能特性の仕様の詳細化を行うことができ、また仕様記述言語（ＶＤＭ−ＳＬ）のスケルトンに展開することにより、仕様記述言語の記述が容易化される。その結果、仕様記述言語（ＶＤＭ−ＳＬ）のツールによる厳密な形式的検証を実施することができる。
【００１８】
これらにより仕様記述の誤りや漏れを防止し、作業工数を削減することが可能となり、ソフトウェア開発での品質向上、短納期対応、コスト削減を図ることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は、本発明の実施の形態に係る仕様記述支援装置の構成を示すブロック図である。図１において本発明の実施形態に係る仕様記述支援装置は、機能特性の定義を格納する機能特性テーブル１と、非機能特性の定義を格納する非機能特性テーブル２と、機能特性と非機能特性との関連の定義を格納する関連テーブル３と、状態遷移を伴う機能での状態遷移の定義を格納する状態遷移表テーブル４と、仕様記述を仕様記述言語（ＶＤＭ−ＳＬ）の仕様記述スケルトンへ変換するためのデータを格納する仕様記述言語スケルトン変換テーブル５と、機能特性及び非機能特性の設定および両者の関連設定と論理チェック処理を行う特性設定処理部６と、仕様記述を仕様記述言語（ＶＤＭ−ＳＬ）の仕様記述スケルトンへ変換処理する仕様記述言語スケルトン変換処理部７と、プログラムを格納し上記各処理部の処理を実行するとともに上記各テーブルに対し制御を行うサーバ８と、サーバ８とクライアント１０を連携するネットワーク９と、ネットワーク９経由でサーバ８に繋がれ、データの設定や処理の起動、データの表示を行うクライアント１０と、から構成されている。
【００２０】
図２は、図１に示した本発明の実施形態に係るサーバのハードウェア構成を示すブロック図である。図２において、サーバは、各種のデータ入力や操作入力を行う入力部１１、システムプログラム及び各種プログラムをＲＯＭ１５から読み出してワークエリアに展開するとともに各部で処理したデータや伝送制御部１６を経由するデータを一時蓄積するＲＡＭ１２、処理した内容を表示する表示部１３、各種データの出力を行う出力部１４、システムプログラムや各種処理プログラム（伝送制御部１６を介して伝送されてきた各種プログラムを含む）を蓄積するＲＯＭ１５、ネットワークとの間でデータのやりとりを行う伝送制御部１６、および、上記各部をプログラム制御するＣＰＵ１７を備えている。なお、ＣＰＵ１７は、ＲＯＭ１５に記憶されているシステムプログラムを読み出し、ＲＡＭ１２内に形成されたワークエリアに展開し、該システムプログラムに従って各部を制御すると共に各種処理プログラムに応じた各種処理を実行する。したがって、図１に示した機能テーブル１、非機能テーブル２、関連テーブル３、状態遷移表テーブル４、および、仕様記述言語スケルトン変換テーブル５は、図２のハードウェア構成ではＲＡＭ１２において実現され、また特性設定処理部６および仕様記述言語スケルトン変換処理部７は、図２のハードウェア構成では、ＲＡＭ１２、表示部１３、ＲＯＭ１５、伝送制御部１６、および、ＣＰＵ１７の各コンピュータ資源を用いて実現される。そして、伝送制御部１６を介して伝送されてきた各種プログラムに従った動作を逐次実行することもできる。
【００２１】
図３は、図１に示した本発明の実施形態に係るクライアントのハードウェア構成を示すブロック図である。図３において、クライアントは、各種のデータ入力や操作入力を行う入力部２１、システムプログラム及び各種プログラムをＲＯＭ２５から読み出してワークエリアに展開するとともにデータを一時蓄積するＲＡＭ２２、入力及び出力するデータを表示する表示部２３、各種データの出力を行う出力部２４、システムプログラムや各種処理プログラム（伝送制御部２６を介して伝送されてきた各種プログラムを含む）を蓄積するＲＯＭ２５、ネットワークとの間でデータのやりとりを行う伝送制御部２６、および、上記各部をプログラム制御するＣＰＵ２７を備えている。なお、ＣＰＵ２７は、ＲＯＭ２５に記憶されているシステムプログラムを読み出し、ＲＡＭ２２内に形成されたワークエリアに展開し、該システムプログラムに従って各部を制御すると共に各種処理プログラムに応じた各種処理を実行する。また、伝送制御部２６を介して伝送されてきた各種プログラムに従った動作を逐次実行することもできる。
【００２２】
図４は、本発明の実施形態に係る機能特性テーブルの項目を示す図である。図４において、機能特性テーブルの項目を（１）機能特性テーブルと、（２）属性項目に分けて説明する。（１）機能特性テーブルは、ドメイン名３１と特性名３２がインデックスとなっている。ドメイン名３１はドメイン分析をした結果によって入力される。特性名３２は特性分析の最上位特性が格納される。なお本発明における特性の定義は、上記非特許文献１に開示されている特性の定義と同じである。特性名３２の下位に順次階層化された下位レベル特性名を展開し、下位１レベル特性名３３には、最上位特性を特性分割して得られた特性名を入れる。また属性項目３４には、図４の下部に示された（２）属性項目に示された項目が入れられる。また下位２レベル特性名３５、属性項目３６、下位ｎレベル特性名３７、属性項目３８には、上述した下位１レベル特性名３３および属性項目３４と同様に、上位機能特性を特性分割して得られた特性名と当該機能特性の属性項目を格納する。
【００２３】
（２）属性項目は、次のように構成される。分類３９には、当該特性が共通特性であるか、オプション特性であるか、ＯＲ特性であるかのデータを格納する。本情報は特性モデルを構築するために必須の情報である。また、下位マップ４０には、当該レベルの下位機能それぞれとの関係を記載する。さらに、関連テーブルＩＤ４１には、機能特性と非機能特性との関連を示す図１に示した関連テーブル３のＩＤを格納する。これにより当該機能特性と対応する非機能特性が識別される。また状態遷移を伴う機能特性は（２）属性項目の状態遷移番号４２に状態遷移番号を記載し、図１の状態遷移表テーブル４に状態遷移の詳細を記載する。これにより状態遷移を伴う機能の要件を記述することが可能となる。なお、（２）属性項目は随意追加できるようにされている。
【００２４】
図５は、図４に示した機能特性テーブル項目の具体例を示す図である。図５の具体例において、ここでは（２）属性項目として、下位２レベル特性３５に定義されている「操作モード」に関する属性項目３６が詳細化され、分類３９には「共通特性」が、下位マップ４０には「なし」が、関連テーブルＩＤ４１には「１」が、状態遷移表番号４２には「００３」が、それぞれ記述されている。
【００２５】
図６は、本発明の実施形態に係る非機能特性テーブルの項目を示す図である。図６において、非機能特性テーブルの項目を（１）非機能特性テーブルと、（２）属性項目と、（３）分類と分類対応１〜６の項目に分けて説明する。（１）非機能特性テーブルは、ドメイン名５１がインデックスとなっている。ここでドメイン名はドメイン分析をした結果によって入力されることは上述したとおりである。品質属性５２には、品質の分類を記載する。記載する当該分類として例えばＩＳＯ／ＩＥＣ９１２６の品質特性をデフォルトで設定する。品質特性５４には、例えばＱＦＤ(Quality Function Deployment：品質機能展開)(ＪＩＳ Ｑ ９０２５）の品質表により要求品質を品質特性に変換したものを用いる。シナリオｎレベル名５６には、例えば品質特性５４を入力／状態／応答の観点から展開したシナリオを記載する。なお本発明における「シナリオ」は、Clements 外2 著「Evaluating Software Architectures」 Addison-Wesley, pp52-55 (2002年)（参考文献１）に「利害関係者とシステムとのやりとりの短い記述である」と定義されているものを用いることにする。品質属性５２の信頼性（図７の具体例参照）の品質特性５４に「異常ケース」と「異常復旧」をデフォルトで設定する。これにより非正常ケースの仕様の記述について漏れを防止できる。
【００２６】
次に（２）属性項目について説明すると、属性項目は随意追加が可能である。そして属性項目セット数５８には、当該項目に複数の属性が対応する際に当該セット数を記載する。分類５９には、当該属性項目が状態７０／操作８０／出力確定機能９０／出力不定機能１００のいずれかを記載する。当該分類５９は仕様記述言語（ＶＤＭ−ＳＬ）の状態関数、操作関数、陽関数、陰関数にそれぞれ対応する。仕様記述言語（ＶＤＭ−ＳＬ）については、荒木啓二郎 外１ 著「プログラム仕様記述論」オーム社発行、２００２年（参考文献２）を参照されたい。下位マップ６０には、当該レベルの下位機能それぞれとの関係があればそれを記載する。関連テーブルＩＤ６１には、機能特性と非機能特性との関連を示す図１に示した関連テーブル３のＩＤを格納する。関連テーブルＩＤ５３により当該非機能特性と対応する機能特性が識別される。分類対応１〜６には、分類５９の種類により項目の定義が異なるが、次に説明する（３）分類と分類対応１〜６の項目のいずれかを記載することになる。
【００２７】
上記した（３）分類と分類対応１〜６の項目には、分類とそれに対応した項目名（この項目は仕様記述言語（ＶＤＭ−ＳＬ）の各関数に必要とするデータに対応）を記載する。いま分類が状態７０であれば、状態定義７１、状態を表す変数７２、不変条件７３及び初期状態７４を、また分類が操作８０であれば、操作定義８１、操作入力８２、操作結果８３、外部参照データ８４、事前条件８５及び事後条件８６を、また分類が出力確定機能９０であれば、機能定義９１、入力９２、結果９３及び事前条件９４が、さらに分類が出力不定機能１００であれば、機能定義１０１、入力１０２、結果１０３、事前条件１０４及び事後条件１０４が、それぞれ記載される。
【００２８】
図７は、図６に示した非機能特性テーブル項目の具体例を示す図である。図７の具体例において、ここでは（２）属性項目として、品質属性５２の「信頼性」に関する品質特性５４でデフォルトされた「異常復旧」の「放置しても自動的に復旧すること」についての属性項目５５が詳細化され、属性項目セット数５８には、「１」が、分類５９には、「操作」８０が、下位マップ６０には、「なし」が、関連テーブルＩＤ６１には、「５」が、それぞれ記述されている。そして分類５９の「操作８０」に対応する分類対応１〜６の項目として、操作定義８１には、「放置しても自動的に復旧すること」が、操作入力８２には、「放置タイマー設定」が、操作結果８３には、「１０秒後に復旧」が、外部参照データ８４には、「テンキー enter 」が、事前条件８５には、「テンキー enter 待ち」が、事後条件８６には、「テンキー初期状態」が、それぞれ記述されている。
【００２９】
図８は、本発明の実施形態に係る非機能特性の非正常系ケースにおける非機能特性ツリーの具体例を示す図である。非機能特性は階層化されて記述されているため、非機能特性ツリーでは、階層順に品質属性、品質特性、シナリオに展開され、品質属性は「信頼性」で、品質特性は、「異常ケース」、「異常復旧」がデフォルトとして設定され、それに対応するシナリオレベルの仕様について品質特性マトリックス（図１７参照）の対応する桝目（セル）に明示的にその記入を促す。従来、非正常系である、異常ケースや異常ケースからの異常復旧の機能はISO/IEC 9126-1:2001品質特性の分類では適切に表現することができなかったが、本発明の実施形態では、品質特性マトリックスにおいて品質属性「信頼性」の下位の品質特性において「異常ケース」「異常復旧」の項目を設け、「異常ケース」「異常復旧」についての仕様記述を容易化した。こうすることで、従来では見過ごされていた仕様記述の漏れを防止することが可能となる。
【００３０】
また図９は、ＶＤＭ−ＳＬ（仕様記述言語）の構文対応の具体例を示す図で、ＶＤＭ−ＳＬの（１）各関数の構文例と（２）操作（操作関数）の構文記入例を示している。ＶＤＭ−ＳＬの（１）各関数の構文例としては上述したように状態（状態関数）、操作（操作関数）、出力確定機能（陽関数）、出力不定機能（陰関数）の構文が対応するようにされ、また、構文記入例として操作関数構文に対応する記述例が図６に示した非機能特性テーブルの属性項目における分類に対応する項目例として利用され、さらにその仕様が品質特性マトリックス（図１７参照）の対応する桝目（セル）に記述されることを示している。仕様記述言語ＶＤＭ−ＳＬは、ISO_IEC_13817-1として標準化されており、この仕様記述言語ＶＤＭ−ＳＬの構文を採用し、ＶＤＭ−ＳＬの構文に対応した項目を自然言語で記述したことで、さらに、ＶＤＭ−ＳＬの構文からＶＤＭ−ＳＬのスケルトンを生成可能とし、スケルトンをもとにＶＤＭ−ＳＬを容易に記述可能とし、ＶＤＭ−ＳＬの利点である構文、型のツールによる検証、C++変換によるテストの実施、FSP（Finite State Processes）への変換によるモデル検査LTSA（Labeled Transition System Analyzer）の実施などを可能とした。
【００３１】
図１０は、本発明の実施形態に係る状態遷移表テーブルの項目を示す図である。図１０において、（１）状態遷移表テーブルは下記の項目から構成される。すなわち、ＩＤ１１１は、図１に示した状態遷移表テーブル４のレコードを識別するための任意につけたレコードに一意の番号である。状態名１１２は、状態遷移がとるそれぞれの状態の名称を格納する。入力動作１１３は、状態遷移のトリガーとなる入力動作名を格納する。そして状態遷移１１４は、状態名１１２の状態から入力動作１１３のトリガーにより遷移した結果の状態名１１２を格納する。
【００３２】
図１１は、図１０に示した状態遷移表テーブル項目の具体例を示す図である。図１１の具体例において、例えば、ＩＤ１１１が「０２１」、状態名１１２が「簡易操作モード」である場合、入力動作１１３のトリガーが「イニシャル操作」であれば、状態遷移１１４が「初期状態」（状態名）となることを示している。
【００３３】
図１２は、本発明の実施形態に係る関連テーブルの項目を示す図である。図１２において、（１）関連テーブルは下記の項目から構成される。すなわち、ＩＤ１２１は、図１に示した関連テーブル３のレコードを識別するための任意につけたレコードに一意の番号である。機能テーブル項目名１２２は、当該レコードの機能テーブルの特性名を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。非機能テーブル項目名１２３は、当該レコードの機能テーブルの特性名に関連する非機能特性名（品質属性、品質特性、シナリオｎレベル名）を格納する。下位レベルの特性の場合は最上位までの上位特性名も記載する。条件記述１２４は、機能特性と非機能特性の関連について条件がある場合は条件を格納する。
【００３４】
図１３は、図１２に示した関連テーブル項目の具体例を示す図である。図１３の具体例において、例えば、ＩＤ１２１が「５」の場合、機能テーブル項目名１２２が「テンキー−操作」で、非機能テーブル項目名１２３が「信頼性−異常復旧」「放置しても自動的に復旧すること」が関連することが示されている。条件記述１２４には何も記述がなされていないことから機能特性と非機能特性の関連についての条件が無いことを示している。
【００３５】
図１４は、本発明の実施形態に係る仕様記述言語スケルトン変換テーブルの項目を示す図である。図１４において、（１）仕様記述言語スケルトン変換テーブルは下記から構成される。すなわち、ＩＤ１３１は、図１に示した仕様記述言語スケルトン変換テーブル５のレコードを識別するための任意につけたレコードに一意の番号である。仕様記述１３２は、仕様記述言語（ＶＤＭ−ＳＬ）に対応した自然言語の記述を格納する。仕様記述言語１３３は、自然言語で書かれた仕様記述に対応した仕様記述言語（ＶＤＭ−ＳＬ）を格納する。条件記述１３４は、仕様記述の記述個所や事前条件の有無など自然言語を仕様記述言語（ＶＤＭ−ＳＬ）のスケルトンに変換するために必要な条件を記載する。
【００３６】
図１５は、図１４に示した仕様記述言語スケルトン変換テーブル項目の具体例を示す図である。図１５の具体例において、例えば、ＩＤ１３１が「００２」の場合、仕様記述１３２は「操作」が、仕様記述言語１３３は「Operations」が、条件記述１３４は「非機能特性テーブル−分類」が、それぞれスケルトン変換に関係することが示されている。
【００３７】
図１６は、本発明の実施形態に係る特性設定処理部の動作を説明するためのフローチャートである。図１に示した本発明の実施形態に係る特性設定処理部６の動作は特性設定画面入力により起動される。なお本説明では特性設定画面を図示していないが、必要なら本件出願人によって出願された特願2005-246475を参照されたい。なおフロー図ではステップをＳと略記する。
【００３８】
図１６のフローチャートにおいてステップ１では画面ＩＤ情報および入力データ読込みを行って、入力されたデータが関連する画面を識別し、入力されたデータを獲得する。非機能特性の入力画面では、属性項目に展開される分類（状態／操作／出力確定機能／出力不定機能）に対応して入力項目を図６の（３）「分類と分類対応1〜６の項目」に沿った入力とするよう、入力タイトル表示と入力領域分離をする。ステップ２では、必要な入力項目が入力されているかのチェックを行って、画面に指定された入力項目で必須のものと必須以外のものの情報、データタイプ、制限文字数などを処理内または処理外に保持し、入力されたデータ項目と比較チェックする。この場合、非機能特性テーブルの属性の分類に対応した入力項目が全て記載されているかも確認する。
【００３９】
ステップ３では、チェックＯＫか否かを判定し、ステップ２における結果を評価する。ステップ３におけるチェックがＯＫの場合、ステップ４では、機能特性／非機能特性かを画面ＩＤ情報から判断し機能特性テーブル／非機能特性テーブルに入力データを設定する。ここでの入力データは図１６の右側に示す非機能特性テーブル（図７も参照）の場合には、品質特性、属性項目（下位マップ、関連テーブルＩＤ以外）、シナリオであり、図１６の右側には図示されていない機能特性テーブル（図５参照）の場合には、特性名、属性項目（下位マップ、関連テーブルＩＤ以外）である。下位マップは入力データの画面属性（入力時にマウスなどでマトリックス上の入力位置を指定したデータ）により生成する。また関連テーブルＩＤは以下に示すステップ６における処理により設定される。
【００４０】
ステップ５では、機能特性に状態遷移表番号が指定された場合、図１に示した状態遷移表テーブル４に状態遷移データを設定する。この場合、図１９のように表形式でデータを作成したのち、そのデータを表作成ソフトのマクロを使用して状態遷移表テーブルへインポートできる配列と形式に変換して当該データを図１に示した状態遷移表テーブル４にインポートしても良い。ステップ６では、非機能特性が入力された場合、関連テーブルのＩＤを新規に設定し、図１に示した関連テーブル３に新規レコードを生成する。すでに関連テーブルにレコードがある場合は変更要否のメッセージにより確認しＯＫなら非機能特性を上書き修正する。機能特性が入力された場合はこのステップをパスする。ステップ７では、図１に示した関連テーブル３のレコードを新規に生成した場合、機能特性テーブル及び非機能特性テーブルの属性項目の関連テーブルＩＤに当該関連テーブルＩＤを設定する。一方、ステップ８では、ステップ３におけるチェックがＮＧの場合、処理内または処理外に保持しているエラーメッセージを当該画面ＩＤの画面に表示する。
【００４１】
図１７は、本発明の実施形態に係る品質特性マトリックスの一例を示す図である。品質特性マトリックスは、機能に対応する品質をモデル化して作成したデータを格納する。図１７に示す品質特性マトリックスにおいては、「機能」としての「テンキー」は階層化され細分化されてデータが格納される。また非機能特性に係る「品質属性」はISO/IEC9126の品質特性の分類より、機能性、信頼性、使用性、効率性、保守性、移行性に分類され、このうち図１７では“使用性”、“信頼性”についてデータを格納する例を示している。ここで“信頼性”については、上述したように「異常ケース」と「異常復旧」をデフォルトで設定している。一般に「品質特性」は「品質属性」をブレークダウンし、「品質属性」を対象システムに合うように品質を展開した項目を格納する。該当する「機能」側の項目と「品質特性」側の項目とが交叉するマトリックスのセル（桝目）に仕様を記述して詳細化し、ソフトウェア設計の詳細化と仕様の記載漏れをなくす。
【００４２】
図１８は、本発明の実施形態に係る状態遷移設定の具体例を示す図である。図１８に示す例では、行に機能特性、列に非機能特性を配置した図１７に示す品質特性マトリックスの一部を示しており、機能特性の「操作モード」項目欄に状態遷移番号を[状態遷移番号003]などと記載し、図１８の右側に示すように状態遷移表（図１９参照）にリンクされていることを示している。
【００４３】
図１９は、本発明の実施形態に係る状態遷移表の具体例を示す図である。図１９に示すように表形式でデータを作成したのち、そのデータを表作成ソフトのマクロを使用して状態遷移表テーブルへインポートできる配列と形式に変換し、当該データを図１に示した状態遷移表テーブル４にインポートしても良い。状態遷移表テーブルについては、上述した図１０、図１１を参照されたい。
【００４４】
なお以上の説明では構成として図面上に明記していないが、機能特性及び非機能特性を図１７に示した品質特性マトリックス上で相互に連携させて状態遷移がある機能特性および非機能特性の仕様の詳細化を行う仕様詳細化手段をサーバ８とクライアント１０の協働で実現するものである。
【００４５】
図２０は、本発明の実施形態に係る仕様記述言語スケルトン変換処理部の動作を説明するためのフローチャートである。図１に示した本発明の実施形態に係る仕様記述言語スケルトン変換処理部７は図２０に示すように非機能特性テーブル（図６参照）の属性のセットを指定して起動する。ステップ１１では、非機能特性テーブルの指定した属性のセットからデータを読み込む。この場合、関連テーブルＩＤから図１に示した関連テーブル３を参照し、そこから更に図１に示した機能特性テーブル１の特性名も読み込む。ステップ１２では、図１に示した仕様記述言語スケルトン変換テーブル５からデータを読み込む。そしてステップ１３では、図１に示した非機能特性テーブル２の指定した属性のセットの項目および項目内容のデータを順に整列してデータの配列を作る。この場合においてデータの整列方法は仕様記述言語（ＶＤＭ−ＳＬ）の記述に対応する。仕様記述言語ＶＤＭ−ＳＬについては、上記したようにISO_IEC_13817-1として標準化されているものであり、以下、仕様記述言語（ＶＤＭ−ＳＬ）の記述に対応するデータの整列方法について説明する。
【００４６】
図６の（３）「分類と分類対応１〜６の項目」における分類が「状態」の配列では、状態定義７１、状態を表す変数７２、不変条件７３、初期条件７４であるが、これを下記の配列（Ａ）とする。
（Ａ）
状態
状態定義の内容
状態を表す変数の内容
不変条件  不変条件の内容
初期条件  初期条件の内容
図６の（３）「分類と分類対応1〜６の項目」における分類が「操作」の配列では、操作定義８１、操作入力８２、操作結果８３、外部参照データ８４、事前条件８５、事後条件８６であるが、これを下記の配列（Ｂ）とする。
（Ｂ）
操作
特性名（操作入力の内容）
操作定義の内容
外部参照データ  外部参照データの内容
事前条件  事前条件の内容
事後条件  操作結果の内容、事後条件の内容
図６の（３）「分類と分類対応1〜６の項目」における分類が「出力確定機能」の配列では、機能定義９１、入力９２、結果９３、事前条件９４であるが、これを下記の配列（Ｃ）とする。
（Ｃ）
機能
特性名（入力の内容）
機能定義の内容
結果の内容
事前条件  事前条件の内容
図６の（３）「分類と分類対応1〜６の項目」における分類が「出力不定機能」の配列では、機能定義１０１、入力１０２、結果１０３、事前条件１０４、事後条件１０５であるが、これを下記の配列（Ｄ）とする。
（Ｄ）
機能
特性名（入力の内容）
機能定義の内容
事前条件  事前条件の内容
事後条件  結果の内容、事後条件の内容
ステップ１３では、上記のように非機能特性テーブル２の指定した属性のセットの項目および項目内容のデータを順に整列してデータの配列を生成した後にデータの配列中の自然言語が仕様記述言語（ＶＤＭ−ＳＬ）に対応するものを置き換えて、仕様記述言語のスケルトンを作成する（図２０の右側参照）。
【００４７】
上述したデータ配列が、以下のような場合、
（Ａ）
状態
状態定義の内容
状態を表す変数の内容
不変条件  不変条件の内容
初期条件  初期条件の内容
は、
state  状態定義の内容  of
状態を表す変数の内容
inv 不変条件の内容
init==s=mk_初期条件の内容
end
（Ｂ）
操作
特性名（操作入力の内容）
操作定義の内容
外部参照データ  外部参照データの内容
事前条件  事前条件の内容
事後条件  操作結果の内容、事後条件の内容
は、
operations
特性名（操作入力の内容）
操作定義の内容
ext  外部参照データの内容
pre  事前条件の内容
post操作結果の内容、事後条件の内容
（Ｃ）
機能
特性名（入力の内容）
機能定義の内容
結果の内容
事前条件  事前条件の内容
は、
functions
特性名(入力の内容)== 機能定義の内容
結果の内容
pre  事前条件の内容
（Ｄ）
機能
特性名（入力の内容）
機能定義の内容
事前条件  事前条件の内容
事後条件  結果の内容、事後条件の内容
は、
functions
特性名(入力の内容)== 機能定義の内容
pre  事前条件の内容
post  結果の内容、事後条件の内容
とスケルトンが生成されることになる。このようにして生成された仕様記述言語（ＶＤＭ−ＳＬ）のスケルトンを基にして仕様記述言語（ＶＤＭ−ＳＬ）による記述を行う。仕様記述言語（ＶＤＭ−ＳＬ）による記述を行った場合には、仕様記述言語（ＶＤＭ−ＳＬ）のツールVDMTools（http://www.vdmtools.jp/tool_tips）（閲覧確認日2006.08.30）（参考文献３）による厳密な形式的検証を実施できる。
【００４８】
図２１は、本発明の実施形態に係る仕様記述言語（ＶＤＭ−ＳＬ）記述の具体例を示す図である。図２１に示すように仕様記述言語（ＶＤＭ−ＳＬ）記述は、まず、ＶＤＭ−ＳＬの構文記入からＶＤＭ−ＳＬスケルトン変換によりＶＤＭ−ＳＬスケルトンを生成し、生成したＶＤＭ−ＳＬスケルトンに基づいてＶＤＭ−ＳＬ記述を行う。
【００４９】
以上の説明から以下のように概括することができる。すなわち、
（１）機能を展開していく段階で状態遷移を伴う機能が出て来る場合があり、その場合、従来の機能と品質（非機能）のマトリックスである「品質特性表」（必要ならば本件出願人によって出願された特願2006-172830に提案した品質特性表参照）では、機能における状態遷移を仕様表現することができないため、仕様記述が不十分であった。これに対して本実施形態では、状態遷移表（図１９参照）により状態遷移を表現できるようにするとともに品質特性マトリックスにおいて機能特性の項目欄に状態遷移番号を記載するだけで状態遷移設定（図１６ステップ５、図１８参照）を可能とし、さらに状態遷移表テーブル（図１０、図１１参照）により状態遷移表を管理できるようにしている。また状態遷移表の形式で状態遷移を記述することにより、既知の手法である状態遷移のテスト項目への自動展開（必要ならば、山崎辰雄著「まちがいだらけの自動テスト」Design Wave Magazine pp.32-42 2004 September）（参考文献４）も可能となる。
（２）従来の非機能特性テーブルの品質特性の分類では非正常系ケースを表現するに不明確であったため、本実施形態では、図１７の品質特性マトリックスに示すように、「異常ケース」「異常復旧」についての品質特性項目をデフォルトで設け、非正常系ケースの仕様記述を容易化している。これにより、従来では見過ごされていた仕様の記入漏れを防止することが可能となる。
（３）従来の仕様記述においては、自然言語による表現は形式的言語による表現と比較して記述が曖昧になりがちで、また、形式的言語は習得が困難で利用できる人が少ないなどの課題があった。これに対し本実施形態では、ISO_IEC_13817-1で標準化されている仕様記述言語ＶＤＭ−ＳＬの構文を採用し、非機能特性の展開項目においてＶＤＭ−ＳＬの構文に対応した項目を自然言語で記述する（図６、図９参照）ようにした。また、図２０及び図２１に示すように、ＶＤＭ−ＳＬの構文からＶＤＭ−ＳＬのスケルトンを生成可能とし、生成したスケルトンをもとにＶＤＭ−ＳＬ記述が容易に行え、ＶＤＭ−ＳＬの利点である構文、型のツールによる検証、C++変換によるテストの実施、FSP（Finite State Processes）への変換によるモデル検査LTSA（Labeled Transition System Analyzer）の実施などを可能とした。
【００５０】
これらにより仕様記述の誤りや漏れを防止し、作業工数を削減することが可能となり、ソフトウェア開発での品質向上、短納期対応、コスト削減を図ることができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態に係る仕様記述支援装置の構成を示すブロック図である。
【図２】本発明の実施形態に係るサーバのハードウェア構成を示すブロック図である。
【図３】本発明の実施形態に係るクライアントのハードウェア構成を示すブロック図である。
【図４】本発明の実施形態に係る機能特性テーブルの項目を示す図である。
【図５】図４に示した機能特性テーブル項目の具体例を示す図である。
【図６】本発明の実施形態に係る非機能特性テーブル項目を示す図である。
【図７】図６に示した非機能特性テーブル項目の具体例を示す図である。
【図８】本発明の実施形態に係る非機能特性の非正常系ケースにおける非機能特性ツリーの具体例を示す図である。
【図９】ＶＤＭ−ＳＬ（仕様記述言語）の構文対応の具体例を示す図である。
【図１０】本発明の実施形態に係る状態遷移表テーブルの項目を示す図である。
【図１１】図１０に示した状態遷移表テーブル項目の具体例を示す図である。
【図１２】本発明の実施形態に係る関連テーブルの項目を示す図である。
【図１３】図１２に示した関連テーブル項目の具体例を示す図である。
【図１４】本発明の実施形態に係る仕様記述言語スケルトン変換テーブルの項目を示す図である。
【図１５】図１４に示した仕様記述言語スケルトン変換テーブル項目の具体例を示す図である。
【図１６】本発明の実施形態に係る特性設定処理部の動作を説明するためのフローチャートである。
【図１７】本発明の実施形態に係る品質特性マトリックスの一例を示す図である。
【図１８】本発明の実施形態に係る状態遷移設定の具体例を示す図である。
【図１９】本発明の実施形態に係る状態遷移表の具体例を示す図である。
【図２０】本発明の実施形態に係る仕様記述言語スケルトン変換処理部の動作を説明するためのフローチャートである。
【図２１】本発明の実施形態に係る仕様記述言語（ＶＤＭ−ＳＬ）記述の具体例を示す図である。
【符号の説明】
【００５２】
１  機能特性テーブル
２  非機能特性テーブル
３  関連テーブル
４  状態遷移表テーブル
５  仕様記述言語スケルトン変換テーブル
６  特性設定処理部
７  仕様記述言語スケルトン変換処理部
８  サーバ
９  クライアント
１０  ネットワーク
１１、２１  入力部
１２、２２  ＲＡＭ
１３、２３  表示部
１４、２４  出力部
１５、２５  ＲＯＭ
１６、２６  伝送制御部
１７、２７  ＣＰＵ
【図１】
2008065709.tif 000003
【図２】
2008065709.tif 000004
【図３】
2008065709.tif 000005
【図４】
2008065709.tif 000006
【図５】
2008065709.tif 000007
【図６】
2008065709.tif 000008
【図７】
2008065709.tif 000009
【図８】
2008065709.tif 000010
【図９】
2008065709.tif 000011
【図１０】
2008065709.tif 000012
【図１１】
2008065709.tif 000013
【図１２】
2008065709.tif 000014
【図１３】
2008065709.tif 000015
【図１４】
2008065709.tif 000016
【図１５】
2008065709.tif 000017
【図１６】
2008065709.tif 000018
【図１７】
2008065709.tif 000019
【図１８】
2008065709.tif 000020
【図１９】
2008065709.tif 000021
【図２０】
2008065709.tif 000022
【図２１】
2008065709.tif 000023