(57)【要約】【課題】開発対象の情報システムの通信に関する要求仕様と制御仕様との整合性を検証可能な構成を実現する。【解決手段】シーケンス記述情報入力部１０１は、開発対象の情報システムの通信に関する要求仕様として、情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を入力する。検証要素抽出部１０２は、シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、データ送受信シーケンスで行われる処理を検証対象処理として抽出する。検証式生成部１０４は、検証要素抽出部１０２により抽出された検証対象処理が表され、検証対象処理が情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を生成する。【選択図】図１
2013228780.tif 000002
【特許請求の範囲】
【請求項１】
開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力部と、
前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出部と、
前記検証対象処理抽出部により抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を、生成する検証式生成部とを有することを特徴とする情報処理装置。
【請求項２】
前記シーケンス記述情報入力部は、
システム構成要素間で送受信される要求データと応答データのデータ送受信シーケンスが記述されているシーケンス記述情報を入力し、
前記検証対象処理抽出部は、
要求データを受信したシステム構成要素が、要求データの送信元のシステム構成要素に応答データを送信する処理を、検証対象処理として抽出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記シーケンス記述情報入力部は、
システム構成要素間で送受信される要求データと応答データとエラー応答データのデータ送受信シーケンスが記述されているシーケンス記述情報を入力し、
前記検証対象処理抽出部は、
要求データの送信元のシステム構成要素が要求データの送信を所定回繰り返しても応答データを受信しない場合に、前記要求データの送信元のシステム構成要素が他のシステム構成要素にエラー応答データを送信する処理を、検証対象処理として抽出することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記シーケンス記述情報入力部は、
システム構成要素間で送受信される要求データと応答データのデータ送受信シーケンスが記述されているシーケンス記述情報を入力し、
前記検証対象処理抽出部は、
要求データと応答データの送信を所定の順序に従って行う処理を、検証対象処理として抽出することを特徴とする請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
前記情報処理装置は、更に、
データ送受信シーケンスのサンプルモデルを複数記憶し、サンプルモデルごとに、前記検証対象処理抽出部が検証対象処理として抽出する処理の条件を記憶するサンプルモデル記憶部を有し、
前記検証対象処理抽出部は、
前記シーケンス記述情報に記述されているデータ送受信シーケンスが前記サンプルモデル記憶部に記憶されている複数のサンプルモデルのうちのいずれのサンプルモデルに対応するかを判別し、前記データ送受信シーケンスで行われる処理のうち、判別したサンプルモデルについての条件に合致する処理を検証対象処理として抽出することを特徴とする請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
前記情報処理装置は、更に、
前記情報システムの制御仕様に基づいて生成された、前記情報システムの制御モデルを入力する制御モデル入力部と、
前記検証式生成部により生成された検証式を用いて前記制御モデルを解析して、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かを検証する検証部とを有することを特徴とする請求項１〜５のいずれかに記載の情報処理装置。
【請求項７】
前記情報処理装置は、更に、
前記検証対象処理抽出部により抽出された検証対象処理を自然言語で記述する検証対象処理情報を生成し、生成した検証対象処理情報を出力する検証対象処理情報出力部を有することを特徴とする請求項１〜６のいずれかに記載の情報処理装置。
【請求項８】
コンピュータが、開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力ステップと、
前記コンピュータが、前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出ステップと、
前記コンピュータが、前記検証対象処理抽出ステップにより抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を、生成する検証式生成ステップとを有することを特徴とする情報処理方法。
【請求項９】
開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力ステップと、
前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出ステップと、
前記検証対象処理抽出ステップにより抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を生成する検証式生成ステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発対象の情報システムの仕様を検証する技術に関する。
【背景技術】
【０００２】
近年、制御ソフトウェアの開発手法としてモデルベース開発が普及している。
モデルベース開発は、開発対象システムの制御仕様を実行可能な制御モデルで記述することで、早期の検証や自動コード生成を可能とするソフトウェア開発手法である。
ソフトウェア開発のプロセスは、まず要求仕様書を自然言語で作成した後、要求仕様書に基づいて制御モデルを構築し、その後に制御モデルから実装コードを自動生成する。
ソフトウェア品質にかかる特徴として、実装作業の大部分が自動化されるため、実装プロセスで誤りが混入する危険性が低減される。
従って、ソフトウェア品質を高めるためには、制御仕様が要求仕様を正しく実現するものであるか確認することが重要となるが、自然言語で記述された要求仕様と制御モデルで記述された制御仕様の整合性を人手で検証することは困難である。
【０００３】
この課題を解決する手法として、形式的検証がある。
形式的検証は、システムの仕様を数学モデルで形式的に記述し、システムが本来満たすべき性質が実現されていることを数学的に証明する手法である。
要求仕様書と制御モデルの整合性を検証する場合には、形式的検証の一つであるモデル検査技術が適用可能である。
モデル検査技術では、要求仕様書に記述されたシステムの性質を検証式として記述し、制御モデルが検証式に違反した動作を行うことがないか、検証器を用いて論理的に検証する。
【０００４】
また、特許文献１では、ユースケース記述した要求仕様モデルと有限状態機械モデル記述した制御仕様モデルの整合性を自動で検証する手法が開示されている。
また、特許文献２では、開発の各工程で仕様の状態遷移をグラフ化し、状態間の関係を機械的に調べて下位工程の仕様が上位工程の仕様を正しく実現しているかを判定する手段が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３１０６６３号公報
【特許文献２】特開平６−２８２４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のモデル検査技術では、要求仕様の記述に基づいて検証式を作成するため、要求仕様に記述された範囲において制御モデルが正しく動作することは確認できるが、自然言語で記述された要求仕様から検証すべき項目を漏れなく抽出することは困難であるという課題があった。
あるいは、要求仕様に曖昧な記述があり、検証実施者が要求仕様を誤って解釈した場合には、検証式そのものに誤りが生じてしまうという課題があった。
【０００７】
また、上述した特許文献１によれば、システムを構成する個別の要素について、システムの状態に関する事前条件、事後条件、不変条件を満たすか否か検証することは可能であるが、複数の要素が連携するシステムにおいて、要素間の通信に関する要求仕様が各要素の制御モデルを複合した場合に成り立つか否か検証する方法は示されていない。
【０００８】
また、上述した特許文献２によれば、上位仕様と下位仕様の状態遷移関係をグラフに表すことで仕様間の整合性を機械的に判定するとしているが、検証可能な性質は状態遷移における信号の一致性に限られている。
また、制御仕様が取り得る状態遷移のパスを網羅して検証する方法も示されていない。
【０００９】
本発明は、上記の諸点に鑑みたものであり、システム構成要素間の通信に関する要求仕様と制御仕様との整合性を検証可能な構成を実現することを主な目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る情報処理装置は、
開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力部と、
前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出部と、
前記検証対象処理抽出部により抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を、生成する検証式生成部とを有することを特徴とする。
【発明の効果】
【００１１】
本発明では、シーケンス記述情報に記述されているデータ送受信シーケンスを解析して検証対象処理を抽出し、検証対象処理が制御仕様に反映されているか否かの検証に用いられる検証式を生成する。
このため、検証式を用いた検証により、通信に関する要求仕様と制御仕様との整合性を検証することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る仕様検証装置の構成例を示す図。
【図２】実施の形態１に係るデータ送受信シーケンスの例を示す図。
【図３】実施の形態１に係るデータ送受信シーケンスから抽出された要素の例を示す図。
【図４】実施の形態１に係る自然言語の構文の例を示す図。
【図５】実施の形態１に係る自然言語の要求仕様情報の例を示す図。
【図６】実施の形態１に係るＬＴＬ検証式の構成例を示す図。
【図７】実施の形態１に係るＬＴＬ検証式の具体例を示す図。
【図８】実施の形態１に係る制御モデルの例を示す図。
【図９】実施の形態１に係る検証結果ファイルの例を示す図。
【図１０】実施の形態１に係る仕様検証装置の動作例を示すフローチャート図。
【図１１】実施の形態２に係るデータ送受信シーケンスの例を示す図。
【図１２】実施の形態２に係るデータ送受信シーケンスから抽出された要素の例を示す図。
【図１３】実施の形態２に係る自然言語の構文の例を示す図。
【図１４】実施の形態２に係る自然言語の要求仕様情報の例を示す図。
【図１５】実施の形態２に係るＬＴＬ検証式の構成例を示す図。
【図１６】実施の形態２に係るＬＴＬ検証式の具体例を示す図。
【図１７】実施の形態３に係るデータ送受信シーケンスから抽出された要素の例を示す図。
【図１８】実施の形態３に係る自然言語の構文の例を示す図。
【図１９】実施の形態３に係る自然言語の要求仕様情報の例を示す図。
【図２０】実施の形態３に係るＬＴＬ検証式の具体例を示す図。
【図２１】実施の形態１に係るサンプルモデルの例を示す図。
【図２２】実施の形態２に係るサンプルモデルの例を示す図。
【図２３】実施の形態１〜３に係る仕様検証装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１３】
実施の形態１．
本実施の形態では、システム構成要素間の通信に関する要求仕様をシーケンス記述すると、通信仕様に関する検証項目を自動的に生成し、制御仕様の状態遷移パスを網羅的に探索して、検証項目に反する状態遷移パスが存在するか否か確認する方法、および装置を説明する。
【００１４】
図１は、本実施の形態に係る仕様検証装置１００の構成例を示すブロック図である。
なお、仕様検証装置１００は情報処理装置の例に相当する。
【００１５】
図１において、シーケンス記述情報入力部１０１は、システム構成要素間の通信仕様を表すシーケンス記述情報を入力する。
シーケンス記述情報入力部１０１の実現方法としては、例えば、設計者がシーケンス記述情報を直接に入力するためのエディタを備え、エディタを介して入力されたシーケンス記述情報を保持する。
シーケンス記述情報入力部１０１が入力するシーケンス記述情報の記法には、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）シーケンス図など、ソフトウェアの開発者に広く知られている記法を用いることが可能である。
また、シーケンス記述情報の生成に外部ソフトウェアを用いる場合には、外部ソフトウェアのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を利用して同等のデータを取得、保持してもよい。
図２は、シーケンス記述情報入力部１０１の入力となるシーケンス記述情報の例を示している。
図２に示すように、シーケンス記述情報には、開発対象の情報システムの通信に関する要求仕様として、情報システムに含まれるシステム構成要素（図２ではＯｂｊ１、Ｏｂｊ２、Ｏｂｊ３）間のデータ送受信シーケンスが記述されている。
【００１６】
検証要素抽出部１０２は、シーケンス記述情報入力部１０１で受け付けたシーケンス記述情報のデータ送受信シーケンスから、検証に必要な要素を抽出する。
検証に必要な要素とは、オブジェクトやメッセージなどシーケンス記述に含まれる要素、およびそれらの関係性のうち、検証すべきシステムの性質を表すものである。
換言すれば、検証要素抽出部１０２は、データ送受信シーケンスで行われる処理のうち検証の対象とすべき処理（検証対象処理）を表す要素を抽出する。
本実施の形態では、要求データに対して応答データが必ず発生すること（つまり、要求データに対して必ず応答データを送信するという処理）を検証の対象とする。
このため、検証に必要な要素は、すべてのオブジェクト間の要求データと応答データの対となる。
図３は、検証要素抽出部１０２が図２のシーケンス記述情報から抽出した要素を示している。
なお、検証要素抽出部１０２は、検証対象処理抽出部の例に相当する。
【００１７】
要求仕様出力部１０３は、検証要素抽出部１０２が取得した検証要素（検証対象処理）を自然言語で表現する要求仕様情報（検証対象処理情報）を生成し、生成した要求仕様情報を要求仕様ファイル１１０として出力する。
要求仕様出力部１０３では、検証すべきシステムの性質に対応する自然言語の構文をあらかじめ定めておき、これに検証要素抽出部１０２が取得した検証要素を当てはめることで、自然言語の要求仕様情報を自動的に生成し、要求仕様ファイル１１０に書き出す。
図４は、要求仕様出力部１０３が自然言語の要求仕様情報を生成するために、あらかじめ定めた自然言語の構文を示している。
図５は、図３で示す検証要素を図４で示す構文に適用して生成した自然言語の要求仕様情報を示している。
なお、要求仕様出力部１０３は、検証対象処理情報出力部の例に相当する。
【００１８】
検証式生成部１０４は、検証要素抽出部１０２が取得した検証要素（検証対象処理）を用いて検証式を生成する。
検証式には、検証要素抽出部１０２により抽出された検証要素（検証対象処理）が表され、検証要素（検証対象処理）が情報システムの制御仕様に反映されているか否かの検証に用いられる。
検証式生成部１０４では、検証すべきシステムの性質に対応する検証式の構成をあらかじめ定めておき、これに検証要素抽出部１０２が取得した検証要素を当てはめることで、検証式生成の処理を自動化する。
検証式の形式は、システムの性質を記述するために適した形式を用いればよく、通信仕様を表すのに好適なＬＴＬ（Ｌｉｎｅａｒ  Ｔｅｍｐｏｒａｌ  Ｌｏｇｉｃ、線形時相論理）などを用いることが可能である。
図６は、検証式生成部１０４が検証式を生成するために、あらかじめ定めたＬＴＬ検証式の構成を示している。
図７は、図３で示す検証要素を図６で示す構成に適用して作成したＬＴＬ検証式を示している。
【００１９】
制御モデル入力部１０５は、状態遷移によって記述した制御モデルの入力を受け付ける。
制御モデルは、開発対象の情報システムの制御仕様に基づいて生成された情報である。
制御モデルでは、システム構成要素間の通信が、状態遷移のアクションやイベントとして記述されている。
モデルベース開発では、専用のソフトウェアを用いて、実装コードの自動生成が可能な形式で制御モデルを記述することが一般であるため、制御モデル入力部１０５は、このような外部ソフトウェアで作成した制御モデルファイル１１１の入力を受け付ける。
制御モデルを記述するために外部ソフトウェアを利用しない場合には、制御モデル入力部１０５は制御モデルファイル１１１の入力を受け付けず、設計者が制御モデルを直接に入力するためのエディタを備えるようにしてもよい。
図８は、制御モデル入力部１０５の入力となる制御モデルの例を示している。
【００２０】
検証部１０６は、制御モデル入力部１０５の取得した制御モデルに存在する状態遷移パスを漏れなく抽出し、アクションやイベントとして記述されたシステム構成要素間の通信において、検証式生成部１０４で生成した検証式を満たさない通信が行われる状態遷移パスがないか確認する。
つまり、検証部１０６は、検証式生成部１０４により生成された検証式を用いて制御モデルを解析し、検証要素抽出部１０２により抽出された検証要素（検証対象処理）が制御仕様に反映されているか否かを検証する。
検証式を満たさない通信が行われる状態遷移パスがあれば、検証部１０６は、これを記録する。
制御モデルの検証エンジンとして外部のモデル検査ツールを利用する場合は、制御モデル入力部１０５の取得した制御モデルをモデル検査ツールの記法に変換し、検証式とあわせてモデル検査ツールへ入力し、モデル検査を実行する。
【００２１】
出力部１０７は、検証部１０６の実行結果を検証結果ファイル１１２として書き出す。
出力部１０７が書き出す情報は、検証式を満たさない状態遷移パスが存在するか否か、存在する場合にはどのような状態遷移パスであるか、というものである。
図９は、出力部１０７の書き出す検証結果ファイル１１２の例を示している。
【００２２】
サンプルモデル記憶部１０８は、データ送受信シーケンスのサンプルモデルを複数記憶し、サンプルモデルごとに、検証要素抽出部１０２が検証対象処理として抽出する処理の条件を記憶する。
図２１及び図２２は、サンプルモデル記憶部１０８が記憶しているサンプルモデルの例を示す。
図２１は、オブジェクトＸがオブジェクトＹに要求データＸを送信し、オブジェクトＹがオブジェクトＺに要求データＹを送信し、更に、オブジェクトＺが要求データＹに対する応答データＹをオブジェクトＹに送信し、オブジェクトＹが要求データＸに対する応答データＸをオブジェクトＸに送信するというサンプルモデルが示されている。
そして、図２１のサンプルモデルに対して、検証要素抽出部１０２が解釈可能なデータ形式で、図４と同じ内容が条件として記憶されている。
図４は、要求仕様出力部１０３が保持する自然言語の構文のテンプレートを示しているが、サンプルモデル記憶部１０８も、図２１のサンプルモデルと対応付けて、図４と同じ内容を持つデータを条件として記憶している。
更に、サンプルモデル記憶部１０８は、図２１のサンプルモデルに対して、図４の自然言語の構文のテンプレートと、図６の検証式のテンプレートが適用となる旨の情報を保持している。
また、図２２は、オブジェクトＸからオブジェクトＹに要求データＸが送信された後、オブジェクトＹがオブジェクトＺに要求データＹの送信をｎ回（ｎは２以上の任意数）繰り返しても、オブジェクトＺから応答データを受信しない場合に、オブジェクトＹがオブジェクトＸにエラー応答データを送信するというサンプルモデルが示されている。
そして、図２２のサンプルモデルに対して、検証要素抽出部１０２が解釈可能なデータ形式で、図１３と同じ内容が条件として記憶されている。
図１３は、実施の形態２で説明するように、要求仕様出力部１０３が保持する自然言語の構文のテンプレートを示しているが、サンプルモデル記憶部１０８も、図２２のサンプルモデルと対応付けて、図１３と同じ内容を持つデータを条件として記憶している。
更に、サンプルモデル記憶部１０８は、図２２のサンプルモデルに対して、図１３の自然言語の構文のテンプレートと、図１５の検証式のテンプレートが適用となる旨の情報を保持している。
なお、図１３及び図１５の詳細は実施の形態２で説明する。
【００２３】
次に、本実施の形態に係る仕様検証装置１００の動作を説明する。
図１０は、仕様検証装置１００全体の動作を示すフローチャートである。
【００２４】
まず、要求仕様の設計者がシーケンス記述情報入力部１０１の備えるエディタを用いてシステム構成要素間の通信仕様を表すシーケンス記述情報を入力する（Ｓ１０１）。
シーケンス記述情報の作成に外部ソフトウェアを用いる場合には、外部ソフトウェアで作成したシーケンス記述情報のファイルを入力する。
シーケンス記述情報入力部１０１は、エディタを介して入力されたシーケンス記述情報、あるいは外部ソフトウェアで作成したシーケンス記述情報を保持する。
【００２５】
シーケンス記述情報の入力を受け付けると、検証要素抽出部１０２が、シーケンス記述情報のデータ送受信シーケンスから検証に必要な要素を抽出する（Ｓ１０２）。
検証要素抽出部１０２は、まず、入力されたシーケンス記述情報のデータ送受信シーケンスがサンプルモデル記憶部１０８に記憶されている複数のサンプルモデルのうちのいずれに対応するかを判別する。
図２のデータ送受信シーケンスが記述されているシーケンス記述情報の場合は、検証要素抽出部１０２は、図２１のサンプルモデルに対応すると判断する。
そして、検証要素抽出部１０２は、図２１のサンプルモデルに対応付けられている条件（図４と同等の内容の条件）を抽出する。
図４の条件は、要求データに対して応答データが必ず発生するという事象（要求データに対して必ず応答データを送信するという処理）を定義しているため、検証要素抽出部１０２は、すべてのオブジェクト間の要求データと応答データの対を抽出する。
検証要素抽出部１０２は、要求データと応答データの対がすべて抽出されるまで抽出処理を継続する。
検証に必要な要素の抽出が完了すると、検証要素抽出部１０２は、要求仕様出力部１０３に、抽出結果を示す図３のテーブルを出力するとともに、図４のテンプレートを使用する旨を指示するコマンドを出力する。
並行して、検証要素抽出部１０２は、検証式生成部１０４に、抽出結果を示す図３のテーブルを出力するとともに、図６のテンプレートを使用する旨を指示するコマンドを出力する。
【００２６】
次に、要求仕様出力部１０３が、Ｓ１０２で抽出した検証要素（図３の検証要素）について、自然言語の要求仕様情報を生成し、要求仕様ファイル１１０を出力する（Ｓ１０３）。
要求仕様出力部１０３は、自然言語の要求仕様情報の作成には、検証要素抽出部１０２からのコマンドに従い、図４に示す構文を用いる。
より具体的には、要求仕様出力部１０３は、検証要素抽出部１０２から入力した図３のテーブルに含まれる要求データと応答データの対を図４の構文の該当箇所に挿入して自然言語の要求仕様情報を生成する。
要求仕様出力部１０３は、Ｓ１０２で抽出したすべての項目について完了するまで要求仕様情報の生成を継続する。
【００２７】
自然言語の要求仕様情報の作成が完了すると、検証式生成部１０４が、Ｓ１０２で抽出した検証要素（図３の検証要素）を用いて検証式を生成する（Ｓ１０４）。
検証式生成部１０４は、検証式の生成には、検証要素抽出部１０２からのコマンドに従い、図６に示すテンプレートを用いる。
より具体的には、検証式生成部１０４は、検証要素抽出部１０２から入力した図３のテーブルに含まれる要求データと応答データの対を図６のテンプレートの該当箇所に挿入して検証式を生成する。
検証式生成部１０４は、Ｓ１０２で抽出したすべての項目について完了するまで検証式の生成を継続する。
なお、図１０では、自然言語の要求仕様情報の生成及び出力（Ｓ１０３）の後で検証式の生成（Ｓ１０４）を行うことになっているが、この順番は逆でもよいし、これらの処理が同時に並行して行われてもよい。
【００２８】
検証式の生成が完了すると、制御モデル入力部１０５が、外部ソフトウェアで作成した制御モデルファイル１１１から制御モデルのデータを取得する（Ｓ１０５）。
なお、制御モデルのデータの取得はＳ１０１〜Ｓ１０４と独立して実行可能であり、Ｓ１０６より以前であればいずれのタイミングで実行してもよい。
【００２９】
制御モデルの取得が完了すると、検証部１０６が、制御モデルに存在する状態遷移パスを漏れなく抽出し、検証式生成部１０４で生成した検証式を満たさない通信が行われる状態遷移パスがないか確認する（Ｓ１０６）。
検証式を満たさない通信が行われる状態遷移パスがあれば、検証部１０６は、これを記録する。
検証部１０６は、Ｓ１０４で生成したすべての検証式について完了するまで検出を継続する。
制御モデルの検証エンジンとして外部のモデル検査ツールを利用する場合は、制御モデルをモデル検査ツールの記法に変換し、検証式とあわせてモデル検査ツールへ入力し、モデル検査を実行する。
【００３０】
検証の処理が完了すると、出力部１０７が、検証式を満たさない状態遷移パスが存在するか否か、存在する場合にはどのような状態遷移パスであるかを検証結果ファイル１１２に書き出す（Ｓ１０７）。
【００３１】
以上のように、シーケンス記述されたシステム構成要素間通信の要求仕様に対して、要求と応答の成立に関する検証式を自動的に生成し、制御仕様の状態遷移パスを網羅的に探索するので、要求仕様の解釈不足や解釈誤りに由来する検証式の漏れや誤りを排除し、要求に対して必ず応答が得られることの確認、あるいは要求に対して応答が得られない場合の状態遷移パスの確認ができる。
【００３２】
以上、本実施の形態では、
システム構成要素間通信に関する要求仕様を表すシーケンス記述の入力を受け付ける手段と、
シーケンス記述からシステム構成要素間の全ての要求と応答の対を抽出する手段と、
要求に対して必ず応答が発生する性質を表す自然言語の記述を書き出す手段と、
要求に対して必ず応答が発生する性質を表す検証式を生成する手段と、
システムの制御仕様を表す制御モデルの入力を受け付ける手段と、
制御モデルの状態遷移パスを網羅的に探索して、検証式を満たさない通信が行われる状態遷移パスがないか確認し、検証式を満たさない通信が行われる状態遷移パスがあれば、これを記録する手段と、
検証式を満たさない状態遷移パスが存在するか否か、存在する場合にはどのような状態遷移パスであるかを書き出す手段
を備える制御ソフトウェアの仕様整合性検証手法および装置を説明した。
【００３３】
実施の形態２．
以上の実施の形態１では、要求データと応答データの成立を検証するようにしたものであるが、次にエラー応答データを含む通信仕様を検証する実施形態を示す。
【００３４】
本実施の形態でも、仕様検証装置１００の構成は、図１に示す通りである。
また、仕様検証装置１００の動作フローも図１０に示す通りであるが、動作の詳細が異なる。
以下、図１０の動作フローに沿って、本実施の形態に係る仕様検証装置１００の動作を説明する。
【００３５】
本実施の形態では、まず、シーケンス記述情報入力部１０１が、エラー応答データを含むデータ送受信シーケンスが記述されたシーケンス記述情報の入力を受け付ける（Ｓ１０１）。
図１１は、エラー応答データを含む通信仕様を検証する場合のシーケンス記述情報を示している。
【００３６】
次に、検証要素抽出部１０２が、シーケンス記述情報のデータ送受信シーケンスから検証に必要な要素を抽出する（Ｓ１０２）。
検証要素抽出部１０２は、まず、入力されたシーケンス記述情報のデータ送受信シーケンスがサンプルモデル記憶部１０８に記憶されている複数のサンプルモデルのうちのいずれのサンプルモデルに対応するかを判別する。
図１１のデータ送受信シーケンスが記述されているシーケンス記述情報の場合は、検証要素抽出部１０２は、図２２のサンプルモデルに対応すると判断する。
そして、検証要素抽出部１０２は、図２２のサンプルモデルに対応付けられている条件（図１３と同等の内容の条件）を抽出する。
図１３の条件は、要求データの送信後に応答データがない場合はエラー応答データが必ず発生するという事象（要求データの送信元のシステム構成要素が要求データの送信を所定回繰り返しても応答データを受信しない場合に、要求データの送信元のシステム構成要素が他のシステム構成要素にエラー応答データを送信する処理）を定義しているため、検証要素抽出部１０２は、すべてのオブジェクト間の要求データとエラー応答データの対を抽出する。
図１２は、検証要素抽出部１０２が図１１のシーケンス記述情報から抽出した要素を示している。
そして、検証要素抽出部１０２は、要求仕様出力部１０３に、抽出結果を示す図１２のテーブルを出力するとともに、図１３のテンプレートを使用する旨を指示するコマンドを出力する。
並行して、検証要素抽出部１０２は、検証式生成部１０４に、抽出結果を示す図１２のテーブルを出力するとともに、図１５のテンプレートを使用する旨を指示するコマンドを出力する。
【００３７】
要求仕様出力部１０３は、エラー応答データに関する自然言語の要求仕様情報を生成する（Ｓ１０３）。
図１３は、エラー応答データの送信が含まれるデータ送受信シーケンスに対する自然言語の構文を示している。
図１４は、図１２で示す検証要素を図１３で示す構文に適用して生成した自然言語の要求仕様情報を示している。
【００３８】
また、検証式生成部１０４は、エラー応答データの送信が含まれるデータ送受信シーケンスに対する検証式を生成する（Ｓ１０４）。
図１５は、エラー応答データの送信が含まれるデータ送受信シーケンスに対するＬＴＬ検証式のテンプレートを示している。
図１６は、図１２で示す検証要素を図１５で示すテンプレートに適用して作成したＬＴＬ検証式を示している。
【００３９】
制御モデル入力部１０５、検証部１０６、出力部１０７の動作（Ｓ１０５〜Ｓ１０７）は、実施の形態１と同様であり、説明を省略する。
【００４０】
以上、本実施の形態では、
エラー応答を含む通信仕様を表すシーケンス記述の入力を受け付けると、
シーケンス記述からエラー応答に関する要素を抽出し、
エラー応答が必ず発生する性質を表す自然言語の記述を書き出し、
エラー応答が必ず発生する性質を表す検証式を生成して制御モデルの検証を行うようにした
制御ソフトウェアの仕様整合性検証手法および装置を説明した。
【００４１】
実施の形態３．
以上の実施の形態１および実施の形態２では、要求データに対して応答データまたはエラー応答データが必ず発生することを検証するものであるが、次に要求データと応答データが正しい順序で発生することを検証する実施形態を示す。
【００４２】
本実施の形態でも、仕様検証装置１００の構成は、図１に示す通りである。
シーケンス記述情報入力部１０１の機能は、実施の形態１と同様である。
つまり、シーケンス記述情報入力部１０１は図２のデータ送受信シーケンスが記述されているシーケンス記述情報を入力するものとする。
また、検証要素抽出部１０２は、シーケンス記述情報から、要求データと応答データの順序性に関する情報を抽出する。
サンプルモデル記憶部１０８は、図２１に示すサンプルモデルを記憶しており、図２１のサンプルモデルに対して、検証要素抽出部１０２が解釈可能なデータ形式で、図１８と同じ内容が条件として記憶されている。
図１８は、要求データと応答データの順序性に対する自然言語の構文を示している。
【００４３】
図１７は、検証要素抽出部１０２が図２のシーケンス記述情報から抽出した要素を示している。
要求仕様出力部１０３は、図１８の構文と図１７の検証要素に従って、要求データと応答データの順序性に関する自然言語の要求仕様情報を生成する。
図１９は、図１７で示す検証要素を図１８で示す構文に適用して生成した自然言語の要求仕様情報を示している。
検証式生成部１０４は、要求データと応答データの順序性に関する検証式を生成する。
検証式生成部１０４は、要求データと応答データの組合せを先頭から１組ごと選択し、図６で示した検証式の構成に当てはめる。
そして、検証式生成部１０４は、末尾の要求データと応答データの組合せが選択されるまで、これを繰り返す。
図２０は、図１７で示す検証要素を図６で示す構成に適用して作成した検証式を示している。
【００４４】
制御モデル入力部１０５、検証部１０６、出力部１０７の動作は、実施の形態１と同様であり、説明を省略する。
【００４５】
以上、本実施の形態では、
シーケンス記述からシステム構成要素間の要求と応答の順序性に関する要素を抽出し、
要求と応答に関する順序性を表す自然言語の記述を書き出し、
要求と応答に関する順序性を表す検証式を生成して制御モデルの検証を行うようにした
制御ソフトウェアの仕様整合性検証手法および装置を説明した。
【００４６】
最後に、実施の形態１〜３に示した仕様検証装置１００のハードウェア構成例について説明する。
図２３は、実施の形態１〜３に示す仕様検証装置１００のハードウェア資源の一例を示す図である。
なお、図２３の構成は、あくまでも仕様検証装置１００のハードウェア構成の一例を示すものであり、仕様検証装置１００のハードウェア構成は図２３に記載の構成に限らず、他の構成であってもよい。
【００４７】
図２３において、仕様検証装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１〜３で説明した「サンプルモデル記憶部」は、ＲＡＭ９１４、磁気ディスク装置９２０等により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００４８】
通信ボード９１５は、ネットワークに接続されている。
例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されている。
【００４９】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００５０】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００５１】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
仕様検証装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００５２】
上記プログラム群９２３には、実施の形態１〜３の説明において「〜部」（「サンプルモデル記憶部」以外、以下同様）として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００５３】
ファイル群９２４には、実施の形態１〜３の説明において、「〜の判断」、「〜の抽出」、「〜の生成」、「〜の解析」、「〜の検出」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が、ディスクやメモリなどの記憶媒体にファイルとして記憶されている。
また、暗号鍵・復号鍵や乱数値やパラメータが、ディスクやメモリなどの記憶媒体にファイルとして記憶されてもよい。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記憶媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の記憶媒体に記録される。
また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００５４】
また、実施の形態１〜３の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態１〜３で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「情報処理方法」を実現することができる。
また、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の記憶媒体に記憶される。
プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。
すなわち、プログラムは、実施の形態１〜３の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜３の「〜部」の手順や方法をコンピュータに実行させるものである。
【００５５】
このように、実施の形態１〜３に示す仕様検証装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００５６】
１００  仕様検証装置、１０１  シーケンス記述情報入力部、１０２  検証要素抽出部、１０３  要求仕様出力部、１０４  検証式生成部、１０５  制御モデル入力部、１０６  検証部、１０７  出力部、１０８  サンプルモデル記憶部、１１０  要求仕様ファイル、１１１  制御モデルファイル、１１２  検証結果ファイル。
【図１】
2013228780.tif 000003
【図２】
2013228780.tif 000004
【図３】
2013228780.tif 000005
【図４】
2013228780.tif 000006
【図５】
2013228780.tif 000007
【図６】
2013228780.tif 000008
【図７】
2013228780.tif 000009
【図８】
2013228780.tif 000010
【図９】
2013228780.tif 000011
【図１０】
2013228780.tif 000012
【図１１】
2013228780.tif 000013
【図１２】
2013228780.tif 000014
【図１３】
2013228780.tif 000015
【図１４】
2013228780.tif 000016
【図１５】
2013228780.tif 000017
【図１６】
2013228780.tif 000018
【図１７】
2013228780.tif 000019
【図１８】
2013228780.tif 000020
【図１９】
2013228780.tif 000021
【図２０】
2013228780.tif 000022
【図２１】
2013228780.tif 000023
【図２２】
2013228780.tif 000024
【図２３】
2013228780.tif 000025