(57)【要約】【課題】  ネットワーク機器のコマンド仕様作成において、複数のリソースや設定項目の相互関係から生じるコマンド制約仕様を抜け・漏れなく作成する。【解決手段】  上記課題を解決するため、ユーザが入力したコマンドの設定対象を元にリソースや設定項目などの要素関係を記録したデータベースからコマンド制約に影響のある可能性のある要素関係を検索する。そして、得られた要素関係を元に、コマンド制約のテンプレートとその制約が必要となる可能性のある要素関係の条件を制約パターンとして記録したデータベースから制約パターンを選出し、テンプレートを適用してコマンド制約の候補としてユーザに提示する。【選択図】  図１６
2016177671.tif 000002
【特許請求の範囲】
【請求項１】
機器のコマンド仕様作成を支援する装置であって、
前記機器に関する要素の間の要素関係を記録した、要素関係データベースと、
コマンドの設定対象と、前記要素関係の条件式と、コマンド制約のテンプレートの組である制約パターンを記録した、制約パターンデータベースと、
対象となるコマンド情報を入力して、前記コマンド情報から前記コマンドの設定対象情報を抽出する入力部と、
前記コマンドの設定対象情報を入力して、前記設定対象情報に基づいて前記要素関係データベースからコマンド制約に影響する可能性のある要素関係を検索し、要素関係情報を出力する要素関係検索部と、
前記設定対象情報と前記要素関係情報を入力して、前記設定対象情報と前記要素関係情報に基づいて、前記制約パターンデータベースから、前記要素関係情報が前記要素関係の条件式を充足する前記制約パターンを選出し、該選出された制約パターンのテンプレートを適用して、コマンド制約候補を出力する制約候補決定部と、
を備えたことを特徴とするコマンド制約仕様作成支援装置。
【請求項２】
請求項１に記載するコマンド制約仕様作成支援装置において、
前記要素関係検索部が開発製品のフィーチャ情報を参照して、無効なフィーチャに関する要素関係を前記検索対象から除外することにより、前記制約候補決定部から出力される前記コマンド制約候補の数を絞ることを特徴とするコマンド制約仕様作成支援装置。
【請求項３】
請求項１に記載するコマンド制約仕様作成支援装置において、
前記入力部は、対象となるコマンド情報とともに前記コマンド情報のコマンド属性を入力し、
前記制約パターンデータベースに記録された前記制約パターンが、コマンドの属性情報を含み、
前記制約候補決定部は、前記入力されたコマンド属性に基づいて、前記制約パターンデータベースから、前記コマンドの属性情報が整合する制約パターンを選出することにより、出力される前記コマンド制約候補の数を絞ることを特徴とするコマンド制約仕様作成支援装置。
【請求項４】
請求項１に記載するコマンド制約仕様作成支援装置において、
前記制約パターンデータベースは、
前記コマンドの設定対象として、前記コマンドの設定対象情報が代入される、要素変数の組を有し、
前記要素関係の条件式として、前記コマンドの設定対象である要素変数の組を構成する要素変数を含み、かつ、任意の要素変数の組を含む、条件式を有する、ことを特徴とするコマンド制約仕様作成支援装置。
【請求項５】
請求項１に記載するコマンド制約仕様作成支援装置において、
前記要素関係データベースは、
前記機器に関する要素として、処理または作業、あるいは当該処理または作業の主体、客体、使用リソース、あるいは、設定項目の少なくとも１種類を含み、前記要素の間の要素関係として前記要素を２つ以上含む、ことを特徴とするコマンド制約仕様作成支援装置。
【請求項６】
CPUと記憶装置と入力装置と出力装置とを少なくとも有する情報処理装置を用いるコマンド制約仕様作成支援方法において、
コマンドの設定対象情報を含むコマンド情報を入力する入力ステップと、
前記設定対象情報を元に、機器に関する要素の間の要素関係が記録された要素関係データベースから、コマンド制約に影響する可能性のある要素関係を検索し、要素関係情報を出力する要素関係の検索ステップと、
前記設定対象情報と前記要素関係情報を元に、コマンドの設定対象と要素関係の条件式とコマンド制約のテンプレートの組である制約パターンが記録された制約パターンデータベースから、前記要素関係情報が要素関係の条件式を充足する前記制約パターンを選出し、前記制約パターンのテンプレートを適用して必要となる可能性のあるコマンド制約候補を出力する制約候補の決定ステップと、
を有することを特徴とするコマンド制約仕様作成支援方法。
【請求項７】
前記要素関係の検索ステップにおいて、
開発製品のフィーチャ情報を参照して無効なフィーチャに関する要素関係を除外することにより、コマンド制約に影響する可能性のある要素関係の検索結果を削減し、コマンド制約候補を出力するステップにおいて出力されるコマンド制約候補を絞ることを特徴とする請求項６記載のコマンド制約仕様作成支援方法。
【請求項８】
前記入力ステップにおいて、
さらにコマンド属性情報を含むコマンド情報を入力し、
前記制約候補の決定ステップにおいて、
前記要素関係情報と前記コマンド属性情報を元に、コマンド属性とコマンドの設定対象と要素関係の条件式とコマンド制約のテンプレートの組である制約パターンが記録された前記制約パターンデータベースから、前記コマンド属性情報と制約パターンのコマンド属性が一致し、かつ前記要素関係情報が要素関係の条件式を充足する前記制約パターンを選出し、前記制約パターンのテンプレートを適用して必要となる可能性のあるコマンド制約候補を出力する、ことを特徴とする請求項６記載のコマンド制約仕様作成支援方法。
【請求項９】
前記入力ステップにより入力されたコマンド情報から、コマンドの設定対象情報として、前記機器に関する要素の組を抽出する入力情報の解析ステップを有し、
前記要素関係データベースは、前記要素関係として、前記機器に関する要素の組を有し、
前記要素関係の検索ステップにおいて、前記解析ステップで抽出された要素の組に含まれる要素を含む要素関係を、コマンド制約に影響する可能性のある要素関係として、前記要素関係データベースから検索し、
前記制約パターンデータベースは、前記コマンドの設定対象として、前記機器に関する要素の組が代入されるべき要素変数の組を有し、
前記制約パターンデータベースは、前記要素関係の条件式として、前記機器に関する要素の組が代入されるべき要素変数の組を含む条件式を有し、
前記制約候補の決定ステップにおいて、前記制約パターンデータベースの前記コマンドの設定対象に、前記解析ステップにおいてコマンドの設定対象情報として抽出された、前記機器に関する要素の組を代入し、
前記制約候補の決定ステップにおいて、前記代入されたコマンドの設定対象を、前記要素関係の条件式に当てはめ、
前記制約候補の決定ステップにおいて、前記要素関係の条件式に含まれる要素のうち、前記当てはめがされなかった要素について、前記要素関係の検索ステップにおいて検索された要素関係に含まれる要素のうち、前記コマンドの設定対象に代入された要素以外の要素を当てはめ、該当てはめの結果、前記条件式に含まれる要素関係の組が、前記要素関係データベースに存在する要素関係の組に該当する場合、当該条件式を有する前記制約パターンを選出することを特徴とする、請求項６記載のコマンド制約仕様作成支援方法。
【請求項１０】
機器に関するコマンド仕様の作成を支援する装置であって、
前記機器に関する要素の組を、第１の要素関係情報として記録した要素関係データベース、を利用可能であり、
前記機器に関するコマンドの要素の組が対応付けられる第１の設定対象情報と、前記コマンドの要素の組が対応付けられる部分を有する条件式の組を、制約パターンとして記録した制約パターンデータベース、を利用可能であり、
対象となるコマンドのコマンド情報を入力として、前記コマンド情報から前記コマンドの要素を抽出し、第２の設定対象情報とする入力部と、
前記第２の設定対象情報を入力して、前記要素関係データベースの前記第１の要素関係情報を検索し、前記第２の設定対象情報の少なくとも一部を含む第２の要素関係情報を抽出する要素関係検索部と、
前記第２の設定対象情報と前記第２の要素関係情報を入力として、前記制約パターンデータベースから、コマンド制約候補となる制約パターンを抽出する制約候補決定部を有する、コマンド制約仕様作成支援装置。
【請求項１１】
前記要素関係検索部は、
前記要素関係データベースから、前記入力部で抽出されたコマンドの要素を持つ前記第１の要素関係情報を、前記第２の要素関係情報として抽出する、請求項１０記載のコマンド制約仕様作成支援装置。
【請求項１２】
前記制約パターンデータベースは、
前記第１の設定対象情報として、要素変数の組を有し、
前記条件式として、要素変数の組または要素変数の組の組み合わせを有し、
前記制約候補決定部は、
前記第１の設定対象情報の前記要素変数の組に、前記第２の設定対象情報を代入し、
前記代入した第２の設定対象情報を前記条件式の要素変数に当てはめ、
前記第２の要素関係情報から、前記第２の設定対象情報に含まれるコマンドの要素以外のコマンドの要素を設定対象以外の要素として抽出し、
前記条件式において、前記第２の設定対象情報が当てはめられていない要素変数に対して、前記設定対象以外の要素を当てはめし、
前記第２の設定対象情報および前記設定対象以外の要素の当てはめの結果、前記条件式に含まれるコマンドの要素の組が、全て前記要素関係データベースの第１の要素関係情報に存在する場合、当該制約パターンをコマンド制約候補として抽出する、請求項１１記載のコマンド制約仕様作成支援装置。
【請求項１３】
前記制約パターンデータベースは、
前記第１の設定対象情報と、前記条件式に加え、さらに、制約条件の内容を表示あるいは出力するための制約テンプレートを有し、これらの組を、制約パターンとして記録しており、
前記制約テンプレートに基づいた表示を出力する出力部を有する、請求項１０記載のコマンド制約仕様作成支援装置。
【請求項１４】
前記コマンドの要素の有効・無効を示す情報を含むフィーチャ情報を利用可能であり、
前記要素関係検索部は、前記第２の要素関係情報を抽出する際に、前記フィーチャ情報により無効とされるコマンドの要素を含む前記第１の要素関係情報を除外する、請求項１０記載のコマンド制約仕様作成支援装置。
【請求項１５】
前記入力部は、さらにコマンド属性情報を含むコマンド情報を入力し、
前記制約パターンデータベースは、さらにコマンド属性を前記制約パターンの一部として含み、
前記制約候補決定部は、前記入力されたコマンド属性情報と制約パターンのコマンド属性が一致する制約パターンを抽出する、請求項１０記載のコマンド制約仕様作成支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種機器、特にネットワーク機器のコマンド制約仕様の作成を支援する装置およびその方法に関する。
【背景技術】
【０００２】
ソフトウェアが誤った動作や意図しない動作をすることを防ぐためには、ソフトウェアの仕様を抜け・漏れなく作成することが必要である。近年、ソフトウェアの大規模化や多機能化に伴い、仕様の作成において考慮すべき条件が増え、また、複雑化し、抜け・漏れなく仕様を作成することが困難になっている。
【０００３】
かかる問題を解決する技術として、特許文献１では、決定表(デシジョン・テーブル)の作成・解読を容易にすることでソフトウェア仕様の作成を支援する装置が開示されている。決定表は入力・条件とソフトウェアの動作の結果の対応関係を表形式で表したものである。決定表を用いてソフトウェア仕様を表す事により、仕様の抜け・漏れを発見し易くなる効果がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５４６０６２９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ネットワーク機器のソフトウェアの仕様作成においては、上述の問題は特にコマンド制約の仕様作成の場合に深刻となる。
【０００６】
コマンド制約について説明する。ネットワークスイッチに代表されるネットワーク機器においては、各種機能の設定をコマンドの実行により行うことが一般的である。
【０００７】
図１にコマンドによる機能の設定の一例を示す。この例においては、「Func A」という、物理ポートをリソースとして使用する機能に対して、物理ポート「port1」を割り当てている。
【０００８】
通常、コマンドを発行すると対応する機能の設定が行われるが、発行されたコマンドが設定の矛盾や不整合を起こしてしまうようなものである場合は、コマンドの実行を抑制するべきである。
【０００９】
図２に不整合（競合）の一例を示す。この例においては、「Func A」に既に物理ポート「port1」が割り当てられている状態であり、コマンドによって「Func B」に同一の物理ポート「port1」を割り当てようとしている。ここで、「Func AとFunc Bの間では物理ポートが競合してはならない」という決まりがあるとする。この場合、コマンドを実行してしまうと物理ポートの競合が起きてしまうため、コマンドの実行は抑制される。このようなコマンドの実行を抑制する条件に関する仕様を、以降「コマンド制約」と呼ぶこととする。
【００１０】
図２に示した一例のような複数の機能やリソースの関係の条件に起因するコマンド制約は機能が増加するにつれ考慮すべき条件の組合せが増えて複雑になり、抜け・漏れなく仕様を作成することが困難となる。特許文献１で開示されている技術を用いると、考慮すべき条件の組合せをすべて洗い出すことが可能であるが、個々の条件の組合せに対してコマンド制約が必要であるかどうか、また、必要であればどのようなコマンド制約を定めるべきか、などの判断は人手で行う必要がある。機能やリソースの関係の条件が膨大である場合、これらの判断は容易ではない。
【００１１】
この問題に対処し、ネットワーク機器のコマンド制約仕様を抜け・漏れなく作成する技術を提供する事を本発明の目的とする。
【課題を解決するための手段】
【００１２】
本願は上記課題を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【００１３】
本発明の装置は、機器のコマンド仕様作成を支援する装置である。この装置は例えば、入力装置、出力装置、処理装置、記憶装置を備えるコンピュータで構成され、種々の機能はソフトウェアで実現することができる。この装置は、機器に関する要素（例えば、機器が行う処理や作業、あるいは当該処理や作業の主体、客体、使用リソース、あるいは、設定項目等を含む）の間の要素関係を記録した、要素関係データベースを備える。また、コマンドの設定対象と、要素関係の条件式と、コマンド制約のテンプレートの組である制約パターンを記録した、制約パターンデータベースとを備える。これらのデータベースは、コンピュータ内部にあってもよいし、外部に配置して、ネットワークなどで接続してアクセスしてもよい。
【００１４】
コマンドの設定対象とは、例えば、コマンドによって実行される処理や作業、あるいは当該処理や作業の主体、客体、使用リソース、あるいは、設定項目等を含む。
【００１５】
この装置は、対象となるコマンド情報を入力して、コマンド情報からコマンドの設定対象情報を抽出する入力部と、コマンドの設定対象情報を入力して、設定対象情報に基づいて要素関係データベースからコマンド制約に影響する可能性のある要素関係を検索し、要素関係情報を出力する要素関係検索部とを有する。また、設定対象情報と要素関係情報を入力して、設定対象情報と要素関係情報に基づいて、制約パターンデータベースから、要素関係情報が要素関係の条件式を充足する制約パターンを選出し、選出された制約パターンのテンプレートを適用して、コマンド制約候補を出力する制約候補決定部と、を備える。
【００１６】
本発明の他の側面は、CPUと記憶装置と入力装置と出力装置とを少なくとも有する情報処理装置を用いるコマンド制約仕様作成支援方法である。この方法は、情報処理装置によって、コマンドの設定対象情報を含むコマンド情報を入力する入力ステップと、設定対象情報を元に、機器に関する要素の間の要素関係が記録された要素関係データベースから、コマンド制約に影響する可能性のある要素関係を検索し、要素関係情報を出力する要素関係の検索ステップとを実行する。また、設定対象情報と要素関係情報を元に、コマンドの設定対象と要素関係の条件式とコマンド制約のテンプレートの組である制約パターンが記録された制約パターンデータベースから、要素関係情報が要素関係の条件式を充足する前記制約パターンを選出し、制約パターンのテンプレートを適用して必要となる可能性のあるコマンド制約候補を出力する制約候補の決定ステップを実行する。
【００１７】
本発明のさらに他の側面は、機器に関するコマンド仕様の作成を支援する装置である。この装置は、機器に関する要素の組を、第１の要素関係情報として記録した要素関係データベースを利用可能である。また、機器に関するコマンドの要素の組が対応付けられる第１の設定対象情報と、コマンドの要素の組が対応付けられる部分を有する条件式の組を、制約パターンとして記録した制約パターンデータベースを利用可能である。
【００１８】
そして、対象となるコマンドのコマンド情報を入力として、コマンド情報からコマンドの要素を抽出し、第２の設定対象情報とする入力部と、第２の設定対象情報を入力して、要素関係データベースの前記第１の要素関係情報を検索し、第２の設定対象情報の少なくとも一部を含む第２の要素関係情報を抽出する要素関係検索部を備える。そして、第２の設定対象情報と第２の要素関係情報を入力として、制約パターンデータベースから、コマンド制約候補となる制約パターンを抽出する制約候補決定部を有する。
【００１９】
発明の理解のために、以下では、より具体的な処理内容の一例を説明する。要素関係検索部は、要素関係データベースから、入力部で抽出されたコマンドの要素を持つ第１の要素関係情報を、第２の要素関係情報として抽出する。要素関係データベースは、コマンドに関連する可能性のある要素の組を予めデータベース化したものと把握できる。ただし、第１の要素関係情報は、必ずしも既存のコマンドの内容に対応している必要はなく、機器自体の構成から機器が行う処理や作業、あるいは当該処理や作業の主体、客体、使用リソース、あるいは、設定項目等を抽出し、既存の知識により関係性を判断して作成することができる。
【００２０】
要素関係データベースから、入力部で抽出されたコマンドの要素を持つ第１の要素関係情報をキーにして検索することにより、入力されたコマンドに関係する可能性のある要素の組を第２の要素関係情報として抽出することができる。検索の最も簡単な例としては、コマンドの要素を示す語句と一致する語句をもつ要素の組を、要素関係データベースから探索することがあげられる。
【００２１】
制約パターンデータベースの構成例としては、第１の設定対象情報として、要素変数の組を有し、条件式として、要素変数の組または要素変数の組の組み合わせを有する。制約候補決定部は、第１の設定対象情報の要素変数の組に、第２の設定対象情報を代入する。また、代入した第２の設定対象情報を条件式の要素変数に当てはめる。当てはめの結果、条件式の要素変数が全て定まる場合もあるし、定まらない要素変数が残る場合もある。
【００２２】
さらに、第２の要素関係情報から、第２の設定対象情報に含まれるコマンドの要素以外のコマンドの要素を設定対象以外の要素として抽出し、条件式において、第２の設定対象情報が当てはめられていない要素変数に対して、設定対象以外の要素を当てはめる。当てはめかたは、要素変数の数と要素の数に応じて何通りかの組み合わせが考えられる。第２の設定対象情報および設定対象以外の要素の当てはめの結果、条件式に含まれるコマンドの要素の組が、全て要素関係データベースの第１の要素関係情報に存在する場合、当該制約パターンをコマンド制約候補として抽出する。
【００２３】
上記の処理によれば、コマンドの中には直接現れてこないが、コマンドに間接的に影響する要素が含まれる、制約パターンを抽出することができる。要素の組が、第１の要素関係情報に存在するか否かをチェックするのは、要素の組み合わせとしてはあり得ても、技術的に意味のない組み合わせを排除するためである。
【００２４】
以上の構成は、単体のコンピュータで構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。発明の思想としては変わるところがない。
【００２５】
また、ソフトウェアで構成した機能と同等の機能は、FPGA（Field Programmable Gate Array）、ASIC（Application Specific Integrated Circuit）などのハードウェアでも実現できる。そのような態様も本願発明の範囲に含まれる。
【発明の効果】
【００２６】
本発明によれば、コマンド情報の入力からそのコマンドに対して必要となる可能性のあるコマンド制約の候補を出力することが可能となる。これにより、コマンド制約仕様の作成が容易になり、抜け・漏れをなくす効果がある。
【００２７】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２８】
【図１】ネットワークスイッチのコマンドによる設定の例を示す概念図である。
【図２】ネットワークスイッチのコマンド制約の例を示す概念図である。
【図３】本発明の実施例のコマンド制約仕様作成支援装置の例によるハードウェアの全体構成ブロック図である。
【図４】本発明の実施例のコマンド制約仕様作成支援装置の例によるソフトウェアの全体構成図である。
【図５】本発明の第一の実施例のコマンド制約仕様作成支援プログラムのデータフロー図である。
【図６】本発明の第一の実施例のコマンド制約仕様作成支援プログラムの全体処理のフローチャート図である。
【図７】本発明の第一の実施例の入力画面の平面図である。
【図８】本発明の第一の実施例の要素関係データベースの構成図である。
【図９】本発明の第一の実施例の制約パターンデータベースの構成図である。
【図１０】本発明の第一の実施例の設定対象情報の構成図である。
【図１１】本発明の第一の実施例の要素関係情報の構成図である。
【図１２】本発明の第一の実施例のコマンド制約候補の構成図である。
【図１３】本発明の第一の実施例の出力画面の平面図である。
【図１４】本発明の第一の実施例の要素関係検索処理のフローチャート図である。
【図１５】本発明の第一の実施例の制約候補決定処理のフローチャート図である。
【図１６】本発明の第二の実施例のコマンド制約仕様作成支援プログラムのデータフロー図である。
【図１７】本発明の第二実施例のフィーチャ情報の構成図である。
【図１８】本発明の第二の実施例の入力画面の平面図である。
【図１９】本発明の第二の実施例の制約パターンデータベースの構成図である。
【図２０】本発明の第二の実施例の設定対象情報の構成図である。
【図２１】本発明の第二の実施例のコマンド属性情報の構成図である。
【図２２】本発明の第二の実施例の要素関係情報の構成図である。
【図２３】本発明の第二の実施例のコマンド制約候補の構成図である。
【図２４】本発明の第二の実施例の要素関係検索処理のフローチャート図である。
【図２５】本発明の第二の実施例の制約候補決定処理のフローチャート図である。
【発明を実施するための形態】
【００２９】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００３０】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【００３１】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【００３２】
以下の実施例では、コマンド制約仕様作成支援装置をネットワーク機器に関するリソースや設定項目などの要素の間の要素関係を記録した要素関係データベースと、コマンドの設定対象と要素関係の条件式とコマンド制約のテンプレートの組である制約パターンを記録した制約パターンデータベースと、コマンドの設定対象情報を入力して、要素関係データベースからコマンド制約に影響する可能性のある要素関係を検索し、要素関係情報を出力する要素関係検索部と、設定対象情報と要素関係情報を入力し制約パターンデータベースから要素関係情報が要素関係の条件式を充足する制約パターンを選出し、制約パターンのテンプレートを適用して必要となる可能性のあるコマンド制約候補を出力する制約候補決定部とを備えた構成とした。
【００３３】
また、以下の実施例では、コマンド制約仕様作成支援装置を、要素関係検索部が開発製品のフィーチャ情報を参照して無効なフィーチャに関する要素関係を除外することにより、コマンド制約に影響する可能性のある要素関係の検索結果を削減し、制約候補決定部から出力される前記コマンド制約候補の数を絞るように構成した。
【００３４】
また、実施例では、コマンド制約仕様作成支援装置を、制約パターンデータベースに記録された制約パターンがコマンドの属性の情報を有し、制約候補決定部がコマンド属性情報を入力し、制約パターンデータベースからコマンド属性が一致する制約パターンを選出することにより出力されるコマンド制約候補の数を絞るように構成した。
【００３５】
以下、本発明に係る各実施形態を、図を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００３６】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【実施例１】
【００３７】
本実施例では、入力されたコマンド情報を元に、ネットワーク機器のコマンドに対して必要となる可能性のあるコマンド制約の候補を出力するコマンド制約仕様作成支援装置の例を説明する。以下、ネットワーク機器の一例としてネットワークスイッチを用いて説明するが、ネットワークスイッチに限らず、ルーターなど他のネットワーク機器でも同様に本発明を適用可能である。
【００３８】
図３を用いて本発明の第一実施形態に係るコマンド制約仕様作成支援装置のハードウェア構成について説明する。
【００３９】
図３は、本発明の第一の実施形態に係るコマンド制約仕様作成支援装置のハードウェア構成を示すブロック図である。
【００４０】
図３に示すようにコマンド制約仕様作成支援装置１は、例えば、パーソナルコンピュータやサーバや専用ハードウェアなどであり、ＣＰＵ（Central Processing Unit）２、ＲＯＭ（Read Only Memory）３、ＲＡＭ（Random Access Memory）４、ＨＤＤ（Hard Disk Drive）５、入力装置７、表示装置８、ＮＩＣ（Network Interface Card）９、ＣＤＲＯＭドライブ１０が、ＢＵＳ１２により接続された形態である。
【００４１】
ＣＰＵ２は、コンピュータの主要な部分であって、演算処理および各部を制御する構成要素であり、ＨＤＤ５に格納されたコマンド制約仕様作成支援プログラム６を、ＲＡＭ４にロードして実行する。
【００４２】
ＲＯＭ３は、起動プログラムであるＢＩＯＳなどを記憶する読み出し専用の半導体記憶装置である。
【００４３】
ＲＡＭ４は、ＯＳ（Operating System）やコマンド制約仕様作成支援プログラム６などの各種プログラムやワークデータ等を記憶する書き換え可能な半導体記憶装置であり、コマンド制約仕様作成支援装置１の主記憶装置になる。
【００４４】
ＨＤＤ５は、大容量の記憶装置であり、ＯＳやコマンド制約仕様作成支援プログラム６などの各種プログラム、プログラムに使用されるデータなどを格納する補助記憶装置である。
【００４５】
ＣＤＲＯＭドライブ１０は、ＣＤＲＯＭ（Compact Disc Read Only Memory）１１に記憶されたプログラムやデータを読み取る装置である。
【００４６】
ＮＩＣ９は、ネットワークとの通信を制御する装置である。
【００４７】
入力装置７は、各種操作指示をおこなうキーボードやマウスなどのポインティングデバイスである。
【００４８】
表示装置８は、各種情報を表示するＬＣＤ（Liquid Crystal Display）などの表示のための装置である。
【００４９】
なお、各種プログラムやデータ等を格納するのは、ＨＤＤ５に限らずＳＳＤ（Solid State Drive）などの半導体記憶装置なども用いることができ、記憶媒体としてはＣＤＲＯＭに限らずＤＶＤやその他の磁気、光学、半導体などを用いた媒体を用いることができる。また、ＮＩＣ９を介してネットワークからプログラムやデータをダウンロードしてＨＤＤ５やＲＡＭ４に記憶してもよい。なお、プログラムやデータは、特定のＯＳ上で動作するか、ＯＳを必要としないか、特定のＯＳやアプリケーション群を構成するファイルの一部であるかは問わない。
【００５０】
一例として示した本実施形態のコマンド制約仕様作成支援装置１は、図３に示したハードウェア構成で、ＨＤＤ５に格納されたコマンド制約仕様作成支援プログラム６が、ＲＡＭ４にロードされて、ＣＰＵ２がプログラムを解釈実行することにより、その機能が実行される。
【００５１】
図４を用いて本発明の一実施形態に係るコマンド制約仕様作成支援装置１のソフトウェア構成について説明する。
【００５２】
図４に示すようにコマンド制約仕様作成支援装置１のソフトウェア部分は、コマンド制約仕様作成支援プログラム６とＯＳ４５を含んでいる。
【００５３】
ＯＳ４５は、ハードウェアとソフトウェアの仲立ちとなり、ユーザに対してのインタフェースを提供する基本プログラムである。ＯＳ４５としては、従来からある種々のＯＳを利用することができる。
【００５４】
コマンド制約仕様作成支援プログラム６は、コマンド制約仕様作成支援装置１のアプリケーションソフトウェアであり、入力部４１、要素関係検索部４２、制約候補決定部４３、出力部４４の４つのモジュールを含む。これらの各モジュールの処理については、後に詳説する。
【００５５】
次に、図５および図６を用いて本発明の第一の実施形態に係るコマンド制約仕様作成支援プログラム６の機能と、その処理について説明する。
【００５６】
図５は、本発明の第一の実施形態に係るコマンド制約仕様作成支援プログラム全体の機能構成およびデータフローを示した図である。
【００５７】
図５に示すようにコマンド制約仕様作成支援プログラム６は、入力部４１、要素関係検索部４２、制約候補決定部４３、出力部４４の機能を有する。また、要素関係データベース５３と制約パターンデータベース５５を利用可能とする。
【００５８】
図６は、コマンド制約仕様作成支援プログラム６による全体処理のフローチャートである。
【００５９】
図５と図６において、入力部４１は、ユーザから入力された制約仕様作成対象のコマンド情報５１（図７で説明する）を解析し、コマンドが設定対象とする要素の情報を抽出し、設定対象情報５２（図１０で説明する）を生成する、入力情報の解析処理（Ｓ６１）を行う。
【００６０】
要素関係データベース５３（図８で説明する）は、ネットワークスイッチに関する各種リソースや設定項目の間の関係が記録されている。
【００６１】
要素関係検索部４２は、生成された設定対象情報５２を元に要素関係データベース５３を検索し、コマンド制約に影響のある可能性を持つ要素関係を選び出し、要素関係情報５４（図１１で説明する）を生成する、要素関係検索（Ｓ６２）を行う。
【００６２】
制約パターンデータベース５５（図９で説明する）は、コマンドの設定対象と要素関係の条件式とコマンド制約テンプレートとの組からなるコマンド制約のパターンが記録されている。
【００６３】
制約候補決定部４３は、設定対象情報５２と要素関係情報５４を元に制約パターンデータベース５５から条件式を充足するコマンド制約パターンを抽出し、必要となる可能性のあるコマンド制約の候補を決定し、コマンド制約候補５６（図１２で説明する）を生成する制約候補の決定処理（Ｓ６３）を行う。
【００６４】
出力部４４は、コマンド制約候補５６を結果として出力する（図１３で説明する）。出力処理（Ｓ６４）を行う。  なお、コマンド制約仕様作成支援プログラム６の中では、当該処理の一時的なデータとして、入力部４１が設定対象情報５２を生成し、要素関係検索部４２が要素関係情報５４を生成し、制約候補決定部４３がコマンド制約候補５６を生成し、ＲＡＭ４およびＨＤＤ５に一時的に格納されるが、コマンド制約仕様作成支援プログラム６の永続的な構成要素ではない。
【００６５】
個々の構成要素について説明する。
【００６６】
コマンド制約仕様作成支援プログラム６への入力として、コマンド情報５１がある。コマンド情報５１は制約仕様作成対象であるコマンドに関する情報であり、ユーザによりＮＩＣ９や入力装置７やＣＤＲＯＭ１１やＨＤＤ５などから入力され、ＲＡＭ４にロードされるデータである。
【００６７】
図７に入力装置７における入力画面の例を示す。図７に示されるように、本実施例においては、コマンド情報５１としてコマンドが設定対象とする要素を入力する。図７の例においては、コマンドの設定対象として、「Func A」, 「LAG」が入力されている。後に説明するように、本実施例では上記のコマンド情報に関連する、コマンド制約仕様を検出する。周知のようにコマンドとは、特定の処理や作業をシステムや装置に実行させるための指示であり、コマンドの要素は、その処理や作業、あるいは当該処理や作業の主体、客体、使用リソース、あるいは、設定項目等を示すものから任意に選ぶことができる。図７では、作業者がコマンドの要素をカンマで区切って入力しているが、プログラムのコマンドをそのまま入力し、装置側でコマンドの文法に基づいて自動的に要素を抽出してもよい。
【００６８】
図８を用いて要素関係データベース５３について説明する。
【００６９】
要素関係データベース５３は、ネットワーク機器に関するある要素と、それに対しコマンドによって割り当てや設定が行われるリソースや設定項目などの要素との関係を記録したテーブルである。ここで要素とは、機能、ソフトウェア、ハードウェア、データ等のリソース、設定項目など、機能的に関連する可能性がある要素全般を含む。要素関係データベース５３は、装置の運用経験や構造等の既知の情報から、関連する可能性がある要素の組を予め定め、データベース化しておく。
【００７０】
図８に示されるように、要素関係データベースは例えば、上位および下位の二つの列を備える。ここで、上位とはリソースが割り当てられる側の要素であり、下位とは割り当てるリソース側の要素である。以下、この上位と下位の組を要素関係と呼ぶ。
【００７１】
例えば、図８の要素関係データベース５３における行８１のデータは、上位がLAG、下位がPORTとなっており、「あるLAGに対していくつかのPORTが割り当てられる」ということを表している。
【００７２】
なお、本実施例においては要素関係データベース５３をテーブルによって表現しているが、同等の情報が表現可能であれば、グラフやツリーなど他の方法を用いてもよい。また、図８では２階層の構造としているが、３階層以上に拡張してもよい。
【００７３】
図９を用いて制約パターンデータベース５５について説明する。
【００７４】
ネットワーク機器のコマンド制約仕様は大部分のものがパターン化可能である。例えば、ある機能AがあるリソースBを使用し、リソースBがあるリソースCを使用する場合、AにBを追加するコマンドについて、「BにCが設定されていない場合、AにBを追加できない」という形の制約仕様が必要となる場合が多い。
【００７５】
制約仕様パターンデータベース５５は、このような制約仕様のパターンを、制約仕様のテンプレートと、その制約仕様が必要となる可能性のある状況の組合せによって表現し記録したテーブルである。制約仕様パターンデータベース５５は、装置の運用経験や構造等の既知の情報から、制約が生じる可能性がある条件をパターン化して予め定め、データベース化しておく。
【００７６】
図９に示されるように、制約パターンデータベース５５は設定対象、条件式、制約テンプレートの三つの列を備える。制約テンプレートとは、各要素をA,Bなどの抽象的な変数に置き換えた制約仕様である。設定対象とは、その制約テンプレート内の抽象的な変数で表された要素のうち、コマンドが割り当てや設定が行う要素である。図９の例では、設定対象を図８と同様、上位A、下位Bの組で示しているが、これに限るものではない。条件式とは、制約仕様が必要となる可能性のある状況を要素関係の条件式によって表現したものである。以下、これら設定対象、条件式、制約テンプレートの組合せを制約パターンと呼ぶ。
【００７７】
例えば、図９の制約パターンデータベース５５の行９１のデータは、設定対照が「A」,「B」、条件式が「(A has B) and (B has C)」、制約テンプレートが「BにCが設定されていない場合、「A」に「B」を追加できない」となっている。これは、「A」,「B」,「C」という３つの要素があり、コマンドが「A」,「B」の設定を行うものである場合、「A」と「B」に要素関係があり、かつ「B」と「C」に要素関係があるならば、「BにCが設定されていない場合、AにBを追加できない」という制約仕様が必要となる可能性があるということを表している。
【００７８】
要素関係データベース５３および制約パターンデータベース５５は対象のネットワーク機器に固有のものであり、コマンドの開発者等が制約仕様作成支援装置１の利用前に作成し、配置しておく必要がある。
【００７９】
図６を再度参照して、処理の詳細を説明する。
【００８０】
先ず、ステップＳ６１において、入力部４１が入力されたコマンド情報５１を解析し、設定対象情報５２を生成する。
【００８１】
図１０は、図７の例における入力に対して生成された設定対象情報５２の例を示したものである。図７でユーザが入力した「Func A, LAG」のようなコマンド情報を、コマンドの要素ごとに分解して「Func A」「LAG」を抽出し、要素の組としてデータ化する。図７の例では単純に、カンマの部分でコマンドを区切ればよい。コマンドの要素の分解・抽出方法は、コマンドの文法等に応じて設定しておけばよい。
【００８２】
次に、ステップＳ６２（後に図１４で詳述する）において、要素関係検索部４２が、要素関係データベース５３から、設定対象情報５２の要素が上位または下位に一致するすべての要素関係を選出し、要素関係情報５４を生成する。この処理によって生成された要素関係情報５４は、設定対象情報５２の要素の設定を行うコマンドの制約に影響を与える可能性がある要素関係をすべて列挙したものとなる。
【００８３】
図１１に、図８の要素関係データベース５３の例および図１０の設定対象情報５２の例に対して生成された要素関係情報５４の例を示す。図１０の設定対象情報５２では、「Func A」, 「LAG」が要素となっているので、要素関係データベース５３から、「Func A」または「LAG」が上位または下位に一致する要素関係を抽出する。図１１の要素関係は、今回入力したコマンドの要素「Func A」または「LAG」を含んでいるので、今回入力したコマンドの制約条件に関係する可能性がある。
【００８４】
次に、ステップＳ６３（後に図１５で詳述する）において、制約候補決定部４３が、制約パターンデータベース５５から、設定対象情報５２と要素関係情報５４が制約パターンの設定情報および条件式に合致するすべての制約パターンを選出し、制約テンプレートを適用してコマンド制約候補５６を生成する。
【００８５】
図１２に、図９の制約パターンデータベース５５の例、図１０の設定対象情報５２の例、図１１の要素関係情報５４の例に対して生成されたコマンド制約候補５６の例を示す。
【００８６】
最後に、ステップＳ６４において、出力部４４がコマンド制約候補５６を結果として出力し、表示装置８に表示する。
【００８７】
図１３は出力画面の例を示したものである。コマンドの制約が発生する可能性がある場合が表示されるので、オペレータはこれを考慮して作業を行えばよい。
【００８８】
図１４のフローチャートを用いて、要素関係検索部４２が行う処理である図６のステップＳ６２の詳細について説明する。
【００８９】
先ず、ステップＳ１４１において、設定対象情報５２から、１つ目の設定対象要素を取得する。
【００９０】
ステップＳ１４２においては、要素関係データベース５３から、１行目の要素関係を取得し、ステップＳ１４３に進む。
【００９１】
ステップＳ１４３においては、前記設定対象要素が前記要素関係の上位または下位に一致するかを判定し、一致する場合はステップＳ１４４に進む。一致しない場合はステップＳ１４５に進む。
【００９２】
ステップＳ１４４においては、ステップＳ１４３で一致すると判定された前記要素関係を要素関係情報５４に追加し、ステップＳ１４５に進む。
【００９３】
ステップＳ１４５においては、前記要素関係が要素関係データベース５３の最後の行の要素関係かを判定する。
最後の行の要素関係である場合、ステップＳ１４７に進む。最後の行の要素関係でない場合、ステップＳ１４６において要素関係データベース５３の次の行を取得し、再びステップＳ１４３に進む。
【００９４】
ステップＳ１４７においては、前記設定対象要素が設定対象情報５２の最後の設定対象要素かを判定する。最後の設定対象要素である場合、処理を終了する。最後の設定対象要素でない場合、ステップＳ１４８において設定対象情報５２から次の設定対象要素を取得し、再びステップＳ１４２に進む。
【００９５】
図１５のフローチャートを用いて、制約候補決定部４３が行う処理である図６のステップＳ６３の詳細について説明する。
【００９６】
先ず、ステップＳ１５１において、制約パターンデータベース５５から、１行目の制約パターンを取得する。
【００９７】
ステップＳ１５２においては、制約パターンの設定対象の要素変数に、設定対象情報５２の設定対象要素を代入し、ステップＳ１５３に進む。
【００９８】
例えば、図１０の設定対象情報５２の例と図９の制約パターンデータベース５５の行９１の制約パターンの場合では、設定対象情報５２の設定対象要素が「Func A」, 「LAG」、制約パターンの設定対象の要素変数が「A」, 「B」であるため、「A=Func A」, 「B=LAG」を代入する。
【００９９】
ステップＳ１５３においては、制約パターンの条件式に含まれる設定対象以外の要素変数に、要素関係情報５４に含まれる全ての要素の内、設定対象情報５２に含まれていない要素を制約パターンの設定対象以外の要素変数に代入し、ステップＳ１５４に進む。ただし、要素変数への代入の仕方の組合せが複数ある場合は、どれか一つの組合せを選択し、代入する。
【０１００】
例えば、図１０の設定対象情報５２の例と図１１の要素関係情報５４の例と図９の制約パターンデータベース５５の行９１の制約パターンの場合では、要素関係情報５４に含まれる全ての要素が「LAG」, 「PORT」, 「VLAN」, 「Func A」, 「Func B」であり、設定対象情報５２の設定対象要素が「Func A」, 「LAG」であるため、設定対象情報５２に含まれていない要素は「PORT」, 「VLAN」, 「Func B」となる。また、制約パターンの設定対象の条件式は「(A has B) and (B has C)」であり、A, Bは設定対象であるため、設定対象以外の要素変数はCである。従って要素変数への代入の仕方の組合せは「C=PORT」または「C=VLAN」または「C=Func B」の３通りがあり、いずれかの組合せを選択し、代入する。
【０１０１】
ステップＳ１５４においては、要素変数に要素が代入された制約パターンの条件式を要素関係情報５４と照らし合わせ、条件式が充足するかを判定する。
充足する場合はステップＳ１５５に進む。充足しない場合はステップＳ１５６に進む。
【０１０２】
例えば、図１０の設定対象情報５２の例と図１１の要素関係情報５４の例と図９の制約パターンデータベース５５の行９１の制約パターンの場合において、「A=Func A」, 「B=LAG」, 「C=PORT」が代入されている場合、制約パターンの設定対象の条件式は「(Func A has LAG) and (LAG has PORT)」であり、要素関係情報５４の要素関係の中に上位：「Func A」, 下位：「LAG」と上位：「LAG」, 下位：「PORT」が存在するため、条件式は充足すると判定される。また、「A=Func A」, 「B=LAG」, 「C=VLAN」が代入されている場合、制約パターンの設定対象の条件式は「(Func A has LAG) and (LAG has VLAN)」であり、要素関係情報５４の要素関係の中に上位：「LAG」, 下位：「VLAN」が存在しないため、条件式は充足しないと判定される。
【０１０３】
ステップＳ１５５においては、要素変数に要素が代入された制約パターンの制約テンプレートをコマンド制約候補に追加し、ステップＳ１５６に進む。
【０１０４】
例えば、図１０の設定対象情報５２の例と図１１の要素関係情報５４の例と図９の制約パターンデータベース５５の行９１の制約パターンの場合において、「A=Func A」, 「B=LAG」, 「C=PORT」が代入されている場合は、制約パターンの制約テンプレートは「LAGにPORTが設定されていない場合、Func AにLAGを追加できない」となる。
【０１０５】
ステップＳ１５６においては、制約パターンの設定対象以外の要素変数に対して、要素関係情報５４に含まれる全ての要素の内、設定対象情報５２に含まれていない要素の全ての組合せを代入したかを判定する。全ての組み合わせを代入した場合は、ステップＳ１５８に進む。全ての組み合わせを代入していない場合は、ステップＳ１５７において組み合わせを変えて設定対象以外の要素変数を代入し、再びステップＳ１５４に進む。
【０１０６】
例えば、図１０の設定対象情報５２の例と図１１の要素関係情報５４の例と図９の制約パターンデータベース５５の行９１の制約パターンの場合においては、制約パターンの設定対象以外の要素変数は「C」であり、要素関係情報５４に含まれる全ての要素の内、設定対象情報５２に含まれていない要素は「PORT」, 「VLAN」, 「Func B」であるため、「C=PORT」, 「C=VLAN」, 「C=Func B」の3種類の代入をすでにしていれば全ての組合せを代入したと判定される。いずれか一つでも代入をしていなければ、全ての組合せを代入していないと判定される。
【０１０７】
ステップＳ１５８においては、制約パターンが制約パターンデータベース５５の最後の行の制約パターンかを判定する。
最後の行の制約パターンである場合、処理を終了する。最後の行の制約パターンでない場合、ステップＳ１５９において制約パターンデータベース５５の次の行を取得し、再びステップＳ１５２に進む。
【０１０８】
本実施例から得られるコマンド制約仕様作成支援装置により出力されたコマンド制約候補５６は、仕様作成対象のコマンドに必要な制約仕様の候補である。
仕様作成者はこれを参考にすることにより、コマンド制約仕様の作成を効率的に実施することができ、また、コマンド制約仕様の抜け・漏れを減らす効果が得られる。
【実施例２】
【０１０９】
実施例１はコマンド制約仕様作成支援装置１の基本的な実現方法であるが、要素関係データベース５３や制約パターンデータベース５５のサイズが大きい場合に出力されるコマンド制約候補の数が多くなり、ユーザが実際に必要なコマンド制約を選定する手間が大きくなってしまうという問題がある。コマンドの設定対象以外の追加の情報を利用して、出力されるコマンド制約候補の数を絞り込むことにより、この問題を解決することができる。
【０１１０】
本実施例では、開発製品のフィーチャ情報あるいは制約仕様作成対象コマンドのコマンド属性を利用し、コマンド制約候補を効率良く絞り込むコマンド制約仕様作成支援装置１の例を説明する。
【０１１１】
実施例２におけるコマンド制約仕様作成支援プログラムを実行するコマンド制約仕様作成支援装置１のハードウェア構成とソフトウェア構成の一例を示す図は、図３および図４に示した実施例１におけるハードウェア構成とソフトウェア構成の図と同様である。以後、実施例１と同一の機能を有する部分および処理手順については説明を省略する。
【０１１２】
図１６は本実施例のコマンド制約仕様作成支援プログラム６の一例を示すブロック図である。実施例１の図５との違いは、要素関係検索部４２がフィーチャ情報１６１を参照する点と、入力部４１コマンド情報５１を解析し、設定対象情報５２に加えコマンド属性情報１６２を生成し、制約候補決定部４３がコマンド属性情報１６２を利用する点である。
【０１１３】
フィーチャ情報について説明する。本実施例においては、開発製品の開発形態がSPL(Software Product Line)型開発である事を想定する。SPL型開発では、フィーチャと呼ばれる機能などの特徴の有無を設定する事により、プロダクトラインの個々の製品のバリエーションが多様に実現される。
【０１１４】
図１７はフィーチャ情報１６１の一例を示す図である。図１７に示されるように、フィーチャ情報１６１はコマンド制約仕様作成の対象となる製品に関する各フィーチャの有無を表すテーブルである。図１７の例においてはフィーチャ「Func A」が有、フィーチャ「Func B」と「Func C」が無となっている。これは、コマンド制約仕様作成の対象となる製品はフィーチャ「Func A」が有り、フィーチャ「Func B」と「Func C」が無いということを表している。
【０１１５】
本実施例においてはフィーチャ情報１６１はコマンド制約仕様作成支援装置１の外部または内部に配置された記憶装置にあらかじめ記録されているものとするが、この方法以外にも、例えばユーザが同等の情報を入力装置から入力する形態をとってもよい。
【０１１６】
本実施例においては、入力されるコマンド情報５１が実施例１と異なる。
【０１１７】
ネットワーク機器のコマンドはリソースや設定項目を追加するものと削除するものの二種類に大きく分けられる。前者を属性「add」のコマンド、後者を属性「delete」のコマンドと定義する。属性「add」のコマンドと属性「delete」のコマンドでは、作成するべきコマンド制約仕様が異なる。
【０１１８】
図１８に本実施例における入力画面の例を示す。図１８に示すように、本実施例においてはコマンド情報５１としてコマンドが設定対象とする要素に加え、コマンドの属性を入力する。図１８の入力画面の例においては、コマンド属性として「add」が入力されている。
【０１１９】
本実施例においては、制約パターンデータベース５５が実施例１と異なる。
【０１２０】
図１９は本実施例における制約パターンデータベース５５の例を示すものである。図１９に示されるように、本実施例における制約パターンデータベース５５は、設定対象、条件式、制約テンプレートに加えて属性の列を備える。属性とは、その制約パターンが必要となる可能性のあるコマンドの属性である。図１９の例は実施例１における図９の制約パターンデータベースの例に属性の列を付加したものになっている。
【０１２１】
例えば、図１９の行１９１の制約パターンは、属性が「add」となっている。これは、この制約パターンはコマンドの属性が「add」の場合のみに必要となる可能性があるということを示している。
【０１２２】
本実施例のコマンド制約仕様作成支援プログラム６の全体の処理手順を説明するフローチャートは実施例１の図６のフローチャートと同様であるが、ステップＳ６１、ステップＳ６２、ステップＳ６３の処理の内容が実施例１と異なる。
【０１２３】
ステップＳ６１においては、入力部４１が入力されたコマンド情報５１を解析し、設定対象情報５２とコマンド属性情報１６２を生成する。
【０１２４】
図２０および図２１は、それぞれ図１８の例における入力に対して生成された設定対象情報５２の例およびコマンド属性情報１６２の例を示したものである。
【０１２５】
ステップＳ６２においては、要素関係検索部４２が、要素関係データベース５３から、要素関係の上位と下位の両方がフィーチャ情報１６１において有となっているフィーチャであり、かつ設定対象情報５２の要素が上位または下位に一致するすべての要素関係を選出し、要素関係情報５４を生成する。
【０１２６】
図２２に、図８の要素関係データベース５３の例および図２０の設定対象情報５２の例に対して生成された要素関係情報５４の例を示す。実施例１の図１１の要素関係情報５４と比べ、フィーチャが無である「Func B」についての要素関係はコマンド制約への影響を考慮する必要がないため、除外されている。
【０１２７】
ステップＳ６３においては、制約候補決定部４３が、制約パターンデータベース５５からコマンド属性情報１６２と設定対象情報５２と要素関係情報５４が制約パターンの設定情報および条件式に合致するすべての制約パターンを選出し、制約テンプレートを適用してコマンド制約候補５６を生成する。
【０１２８】
図２３に、図１９の制約パターンデータベース５５の例、図２０の設定対象情報５２の例、図２２の要素関係情報５４の例に対して生成されたコマンド制約候補５６の例を示す。実施例１の図１２のコマンド制約候補５６と比べ、フィーチャが無である「Func B」に関するコマンド制約候補と、コマンド属性が「delete」である場合にのみ必要なコマンド制約候補は除外されている。
【０１２９】
図２４は実施例２における要素関係検索部４２が行う処理である図６のステップＳ６２の詳細を説明するフローチャートである。実施例１における図１４との違いはステップＳ２４１を有する点であり、その他のステップについては実施例１における図１４のものと同様である。
【０１３０】
ステップＳ２４１においては、要素関係の上位と下位両方の要素が、フィーチャ情報１６１において有になっているかを判定する。両方の要素が有になっている場合はステップＳ１４３に進む。少なくとも一方が無になっている場合はステップＳ１４６に進む。
【０１３１】
図２５は実施例２における制約候補決定部４３が行う処理である図６のステップＳ６３の詳細を説明するフローチャートである。実施例１における図１５との違いはステップＳ２５１を有する点であり、その他のステップについては実施例１における図１５のものと同様である。
【０１３２】
ステップＳ２５１においては、制約パターンの属性がコマンド属性情報１６２と一致するかどうかを判定する。一致する場合はステップＳ１５２に進む。一致しない場合はステップＳ１５９に進む。
【０１３３】
このように、開発製品のフィーチャ情報または制約仕様作成対象コマンドのコマンド属性を利用することで、コマンド制約候補を効率良く絞り込むことができる。
【０１３４】
なお、以上の実施例２では、絞り込みにフィーチャ情報とコマンド属性の両方を利用可能な構成となっているが、両者は独立な特徴なので、いずれか一つのみを備えるようにしてもよい。
【０１３５】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１３６】
１  コマンド制約仕様作成支援装置
２  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  ＨＤＤ
６  コマンド制約仕様作成支援プログラム
７  入力装置
８  表示装置
９  ＮＩＣ
１０  ＣＤＲＯＭドライブ
１１  ＣＤＲＯＭ
１２  バス
４１  入力部
４２  要素関係検索部
４３  制約候補決定部
４４  出力部
４５  ＯＳ
５１  コマンド情報
５２  設定対象情報
５３  要素関係データベース
５４  要素関係情報
５５  制約パターンデータベース
５６  コマンド制約候補
１６１  フィーチャ情報
１６２  コマンド属性情報
【図１】
2016177671.tif 000003
【図２】
2016177671.tif 000004
【図３】
2016177671.tif 000005
【図４】
2016177671.tif 000006
【図５】
2016177671.tif 000007
【図６】
2016177671.tif 000008
【図７】
2016177671.tif 000009
【図８】
2016177671.tif 000010
【図９】
2016177671.tif 000011
【図１０】
2016177671.tif 000012
【図１１】
2016177671.tif 000013
【図１２】
2016177671.tif 000014
【図１３】
2016177671.tif 000015
【図１４】
2016177671.tif 000016
【図１５】
2016177671.tif 000017
【図１６】
2016177671.tif 000018
【図１７】
2016177671.tif 000019
【図１８】
2016177671.tif 000020
【図１９】
2016177671.tif 000021
【図２０】
2016177671.tif 000022
【図２１】
2016177671.tif 000023
【図２２】
2016177671.tif 000024
【図２３】
2016177671.tif 000025
【図２４】
2016177671.tif 000026
【図２５】
2016177671.tif 000027