JP2013228780A - 情報処理装置及び情報処理方法及びプログラム - Google Patents

情報処理装置及び情報処理方法及びプログラム Download PDF

Info

Publication number
JP2013228780A
JP2013228780A JP2012098518A JP2012098518A JP2013228780A JP 2013228780 A JP2013228780 A JP 2013228780A JP 2012098518 A JP2012098518 A JP 2012098518A JP 2012098518 A JP2012098518 A JP 2012098518A JP 2013228780 A JP2013228780 A JP 2013228780A
Authority
JP
Japan
Prior art keywords
verification
information
verification target
target process
data transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012098518A
Other languages
English (en)
Inventor
Tomohiro Oga
智洋 大貫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012098518A priority Critical patent/JP2013228780A/ja
Publication of JP2013228780A publication Critical patent/JP2013228780A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】開発対象の情報システムの通信に関する要求仕様と制御仕様との整合性を検証可能な構成を実現する。
【解決手段】シーケンス記述情報入力部101は、開発対象の情報システムの通信に関する要求仕様として、情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を入力する。検証要素抽出部102は、シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、データ送受信シーケンスで行われる処理を検証対象処理として抽出する。検証式生成部104は、検証要素抽出部102により抽出された検証対象処理が表され、検証対象処理が情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を生成する。
【選択図】図1

Description

本発明は、開発対象の情報システムの仕様を検証する技術に関する。
近年、制御ソフトウェアの開発手法としてモデルベース開発が普及している。
モデルベース開発は、開発対象システムの制御仕様を実行可能な制御モデルで記述することで、早期の検証や自動コード生成を可能とするソフトウェア開発手法である。
ソフトウェア開発のプロセスは、まず要求仕様書を自然言語で作成した後、要求仕様書に基づいて制御モデルを構築し、その後に制御モデルから実装コードを自動生成する。
ソフトウェア品質にかかる特徴として、実装作業の大部分が自動化されるため、実装プロセスで誤りが混入する危険性が低減される。
従って、ソフトウェア品質を高めるためには、制御仕様が要求仕様を正しく実現するものであるか確認することが重要となるが、自然言語で記述された要求仕様と制御モデルで記述された制御仕様の整合性を人手で検証することは困難である。
この課題を解決する手法として、形式的検証がある。
形式的検証は、システムの仕様を数学モデルで形式的に記述し、システムが本来満たすべき性質が実現されていることを数学的に証明する手法である。
要求仕様書と制御モデルの整合性を検証する場合には、形式的検証の一つであるモデル検査技術が適用可能である。
モデル検査技術では、要求仕様書に記述されたシステムの性質を検証式として記述し、制御モデルが検証式に違反した動作を行うことがないか、検証器を用いて論理的に検証する。
また、特許文献1では、ユースケース記述した要求仕様モデルと有限状態機械モデル記述した制御仕様モデルの整合性を自動で検証する手法が開示されている。
また、特許文献2では、開発の各工程で仕様の状態遷移をグラフ化し、状態間の関係を機械的に調べて下位工程の仕様が上位工程の仕様を正しく実現しているかを判定する手段が開示されている。
特開2008−310663号公報 特開平6−282423号公報
従来のモデル検査技術では、要求仕様の記述に基づいて検証式を作成するため、要求仕様に記述された範囲において制御モデルが正しく動作することは確認できるが、自然言語で記述された要求仕様から検証すべき項目を漏れなく抽出することは困難であるという課題があった。
あるいは、要求仕様に曖昧な記述があり、検証実施者が要求仕様を誤って解釈した場合には、検証式そのものに誤りが生じてしまうという課題があった。
また、上述した特許文献1によれば、システムを構成する個別の要素について、システムの状態に関する事前条件、事後条件、不変条件を満たすか否か検証することは可能であるが、複数の要素が連携するシステムにおいて、要素間の通信に関する要求仕様が各要素の制御モデルを複合した場合に成り立つか否か検証する方法は示されていない。
また、上述した特許文献2によれば、上位仕様と下位仕様の状態遷移関係をグラフに表すことで仕様間の整合性を機械的に判定するとしているが、検証可能な性質は状態遷移における信号の一致性に限られている。
また、制御仕様が取り得る状態遷移のパスを網羅して検証する方法も示されていない。
本発明は、上記の諸点に鑑みたものであり、システム構成要素間の通信に関する要求仕様と制御仕様との整合性を検証可能な構成を実現することを主な目的とする。
本発明に係る情報処理装置は、
開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力部と、
前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出部と、
前記検証対象処理抽出部により抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を、生成する検証式生成部とを有することを特徴とする。
本発明では、シーケンス記述情報に記述されているデータ送受信シーケンスを解析して検証対象処理を抽出し、検証対象処理が制御仕様に反映されているか否かの検証に用いられる検証式を生成する。
このため、検証式を用いた検証により、通信に関する要求仕様と制御仕様との整合性を検証することができる。
実施の形態1に係る仕様検証装置の構成例を示す図。 実施の形態1に係るデータ送受信シーケンスの例を示す図。 実施の形態1に係るデータ送受信シーケンスから抽出された要素の例を示す図。 実施の形態1に係る自然言語の構文の例を示す図。 実施の形態1に係る自然言語の要求仕様情報の例を示す図。 実施の形態1に係るLTL検証式の構成例を示す図。 実施の形態1に係るLTL検証式の具体例を示す図。 実施の形態1に係る制御モデルの例を示す図。 実施の形態1に係る検証結果ファイルの例を示す図。 実施の形態1に係る仕様検証装置の動作例を示すフローチャート図。 実施の形態2に係るデータ送受信シーケンスの例を示す図。 実施の形態2に係るデータ送受信シーケンスから抽出された要素の例を示す図。 実施の形態2に係る自然言語の構文の例を示す図。 実施の形態2に係る自然言語の要求仕様情報の例を示す図。 実施の形態2に係るLTL検証式の構成例を示す図。 実施の形態2に係るLTL検証式の具体例を示す図。 実施の形態3に係るデータ送受信シーケンスから抽出された要素の例を示す図。 実施の形態3に係る自然言語の構文の例を示す図。 実施の形態3に係る自然言語の要求仕様情報の例を示す図。 実施の形態3に係るLTL検証式の具体例を示す図。 実施の形態1に係るサンプルモデルの例を示す図。 実施の形態2に係るサンプルモデルの例を示す図。 実施の形態1〜3に係る仕様検証装置のハードウェア構成例を示す図。
実施の形態1.
本実施の形態では、システム構成要素間の通信に関する要求仕様をシーケンス記述すると、通信仕様に関する検証項目を自動的に生成し、制御仕様の状態遷移パスを網羅的に探索して、検証項目に反する状態遷移パスが存在するか否か確認する方法、および装置を説明する。
図1は、本実施の形態に係る仕様検証装置100の構成例を示すブロック図である。
なお、仕様検証装置100は情報処理装置の例に相当する。
図1において、シーケンス記述情報入力部101は、システム構成要素間の通信仕様を表すシーケンス記述情報を入力する。
シーケンス記述情報入力部101の実現方法としては、例えば、設計者がシーケンス記述情報を直接に入力するためのエディタを備え、エディタを介して入力されたシーケンス記述情報を保持する。
シーケンス記述情報入力部101が入力するシーケンス記述情報の記法には、UML(Unified Modeling Language)シーケンス図など、ソフトウェアの開発者に広く知られている記法を用いることが可能である。
また、シーケンス記述情報の生成に外部ソフトウェアを用いる場合には、外部ソフトウェアのAPI(Application Programming Interface)を利用して同等のデータを取得、保持してもよい。
図2は、シーケンス記述情報入力部101の入力となるシーケンス記述情報の例を示している。
図2に示すように、シーケンス記述情報には、開発対象の情報システムの通信に関する要求仕様として、情報システムに含まれるシステム構成要素(図2ではObj1、Obj2、Obj3)間のデータ送受信シーケンスが記述されている。
検証要素抽出部102は、シーケンス記述情報入力部101で受け付けたシーケンス記述情報のデータ送受信シーケンスから、検証に必要な要素を抽出する。
検証に必要な要素とは、オブジェクトやメッセージなどシーケンス記述に含まれる要素、およびそれらの関係性のうち、検証すべきシステムの性質を表すものである。
換言すれば、検証要素抽出部102は、データ送受信シーケンスで行われる処理のうち検証の対象とすべき処理(検証対象処理)を表す要素を抽出する。
本実施の形態では、要求データに対して応答データが必ず発生すること(つまり、要求データに対して必ず応答データを送信するという処理)を検証の対象とする。
このため、検証に必要な要素は、すべてのオブジェクト間の要求データと応答データの対となる。
図3は、検証要素抽出部102が図2のシーケンス記述情報から抽出した要素を示している。
なお、検証要素抽出部102は、検証対象処理抽出部の例に相当する。
要求仕様出力部103は、検証要素抽出部102が取得した検証要素(検証対象処理)を自然言語で表現する要求仕様情報(検証対象処理情報)を生成し、生成した要求仕様情報を要求仕様ファイル110として出力する。
要求仕様出力部103では、検証すべきシステムの性質に対応する自然言語の構文をあらかじめ定めておき、これに検証要素抽出部102が取得した検証要素を当てはめることで、自然言語の要求仕様情報を自動的に生成し、要求仕様ファイル110に書き出す。
図4は、要求仕様出力部103が自然言語の要求仕様情報を生成するために、あらかじめ定めた自然言語の構文を示している。
図5は、図3で示す検証要素を図4で示す構文に適用して生成した自然言語の要求仕様情報を示している。
なお、要求仕様出力部103は、検証対象処理情報出力部の例に相当する。
検証式生成部104は、検証要素抽出部102が取得した検証要素(検証対象処理)を用いて検証式を生成する。
検証式には、検証要素抽出部102により抽出された検証要素(検証対象処理)が表され、検証要素(検証対象処理)が情報システムの制御仕様に反映されているか否かの検証に用いられる。
検証式生成部104では、検証すべきシステムの性質に対応する検証式の構成をあらかじめ定めておき、これに検証要素抽出部102が取得した検証要素を当てはめることで、検証式生成の処理を自動化する。
検証式の形式は、システムの性質を記述するために適した形式を用いればよく、通信仕様を表すのに好適なLTL(Linear Temporal Logic、線形時相論理)などを用いることが可能である。
図6は、検証式生成部104が検証式を生成するために、あらかじめ定めたLTL検証式の構成を示している。
図7は、図3で示す検証要素を図6で示す構成に適用して作成したLTL検証式を示している。
制御モデル入力部105は、状態遷移によって記述した制御モデルの入力を受け付ける。
制御モデルは、開発対象の情報システムの制御仕様に基づいて生成された情報である。
制御モデルでは、システム構成要素間の通信が、状態遷移のアクションやイベントとして記述されている。
モデルベース開発では、専用のソフトウェアを用いて、実装コードの自動生成が可能な形式で制御モデルを記述することが一般であるため、制御モデル入力部105は、このような外部ソフトウェアで作成した制御モデルファイル111の入力を受け付ける。
制御モデルを記述するために外部ソフトウェアを利用しない場合には、制御モデル入力部105は制御モデルファイル111の入力を受け付けず、設計者が制御モデルを直接に入力するためのエディタを備えるようにしてもよい。
図8は、制御モデル入力部105の入力となる制御モデルの例を示している。
検証部106は、制御モデル入力部105の取得した制御モデルに存在する状態遷移パスを漏れなく抽出し、アクションやイベントとして記述されたシステム構成要素間の通信において、検証式生成部104で生成した検証式を満たさない通信が行われる状態遷移パスがないか確認する。
つまり、検証部106は、検証式生成部104により生成された検証式を用いて制御モデルを解析し、検証要素抽出部102により抽出された検証要素(検証対象処理)が制御仕様に反映されているか否かを検証する。
検証式を満たさない通信が行われる状態遷移パスがあれば、検証部106は、これを記録する。
制御モデルの検証エンジンとして外部のモデル検査ツールを利用する場合は、制御モデル入力部105の取得した制御モデルをモデル検査ツールの記法に変換し、検証式とあわせてモデル検査ツールへ入力し、モデル検査を実行する。
出力部107は、検証部106の実行結果を検証結果ファイル112として書き出す。
出力部107が書き出す情報は、検証式を満たさない状態遷移パスが存在するか否か、存在する場合にはどのような状態遷移パスであるか、というものである。
図9は、出力部107の書き出す検証結果ファイル112の例を示している。
サンプルモデル記憶部108は、データ送受信シーケンスのサンプルモデルを複数記憶し、サンプルモデルごとに、検証要素抽出部102が検証対象処理として抽出する処理の条件を記憶する。
図21及び図22は、サンプルモデル記憶部108が記憶しているサンプルモデルの例を示す。
図21は、オブジェクトXがオブジェクトYに要求データXを送信し、オブジェクトYがオブジェクトZに要求データYを送信し、更に、オブジェクトZが要求データYに対する応答データYをオブジェクトYに送信し、オブジェクトYが要求データXに対する応答データXをオブジェクトXに送信するというサンプルモデルが示されている。
そして、図21のサンプルモデルに対して、検証要素抽出部102が解釈可能なデータ形式で、図4と同じ内容が条件として記憶されている。
図4は、要求仕様出力部103が保持する自然言語の構文のテンプレートを示しているが、サンプルモデル記憶部108も、図21のサンプルモデルと対応付けて、図4と同じ内容を持つデータを条件として記憶している。
更に、サンプルモデル記憶部108は、図21のサンプルモデルに対して、図4の自然言語の構文のテンプレートと、図6の検証式のテンプレートが適用となる旨の情報を保持している。
また、図22は、オブジェクトXからオブジェクトYに要求データXが送信された後、オブジェクトYがオブジェクトZに要求データYの送信をn回(nは2以上の任意数)繰り返しても、オブジェクトZから応答データを受信しない場合に、オブジェクトYがオブジェクトXにエラー応答データを送信するというサンプルモデルが示されている。
そして、図22のサンプルモデルに対して、検証要素抽出部102が解釈可能なデータ形式で、図13と同じ内容が条件として記憶されている。
図13は、実施の形態2で説明するように、要求仕様出力部103が保持する自然言語の構文のテンプレートを示しているが、サンプルモデル記憶部108も、図22のサンプルモデルと対応付けて、図13と同じ内容を持つデータを条件として記憶している。
更に、サンプルモデル記憶部108は、図22のサンプルモデルに対して、図13の自然言語の構文のテンプレートと、図15の検証式のテンプレートが適用となる旨の情報を保持している。
なお、図13及び図15の詳細は実施の形態2で説明する。
次に、本実施の形態に係る仕様検証装置100の動作を説明する。
図10は、仕様検証装置100全体の動作を示すフローチャートである。
まず、要求仕様の設計者がシーケンス記述情報入力部101の備えるエディタを用いてシステム構成要素間の通信仕様を表すシーケンス記述情報を入力する(S101)。
シーケンス記述情報の作成に外部ソフトウェアを用いる場合には、外部ソフトウェアで作成したシーケンス記述情報のファイルを入力する。
シーケンス記述情報入力部101は、エディタを介して入力されたシーケンス記述情報、あるいは外部ソフトウェアで作成したシーケンス記述情報を保持する。
シーケンス記述情報の入力を受け付けると、検証要素抽出部102が、シーケンス記述情報のデータ送受信シーケンスから検証に必要な要素を抽出する(S102)。
検証要素抽出部102は、まず、入力されたシーケンス記述情報のデータ送受信シーケンスがサンプルモデル記憶部108に記憶されている複数のサンプルモデルのうちのいずれに対応するかを判別する。
図2のデータ送受信シーケンスが記述されているシーケンス記述情報の場合は、検証要素抽出部102は、図21のサンプルモデルに対応すると判断する。
そして、検証要素抽出部102は、図21のサンプルモデルに対応付けられている条件(図4と同等の内容の条件)を抽出する。
図4の条件は、要求データに対して応答データが必ず発生するという事象(要求データに対して必ず応答データを送信するという処理)を定義しているため、検証要素抽出部102は、すべてのオブジェクト間の要求データと応答データの対を抽出する。
検証要素抽出部102は、要求データと応答データの対がすべて抽出されるまで抽出処理を継続する。
検証に必要な要素の抽出が完了すると、検証要素抽出部102は、要求仕様出力部103に、抽出結果を示す図3のテーブルを出力するとともに、図4のテンプレートを使用する旨を指示するコマンドを出力する。
並行して、検証要素抽出部102は、検証式生成部104に、抽出結果を示す図3のテーブルを出力するとともに、図6のテンプレートを使用する旨を指示するコマンドを出力する。
次に、要求仕様出力部103が、S102で抽出した検証要素(図3の検証要素)について、自然言語の要求仕様情報を生成し、要求仕様ファイル110を出力する(S103)。
要求仕様出力部103は、自然言語の要求仕様情報の作成には、検証要素抽出部102からのコマンドに従い、図4に示す構文を用いる。
より具体的には、要求仕様出力部103は、検証要素抽出部102から入力した図3のテーブルに含まれる要求データと応答データの対を図4の構文の該当箇所に挿入して自然言語の要求仕様情報を生成する。
要求仕様出力部103は、S102で抽出したすべての項目について完了するまで要求仕様情報の生成を継続する。
自然言語の要求仕様情報の作成が完了すると、検証式生成部104が、S102で抽出した検証要素(図3の検証要素)を用いて検証式を生成する(S104)。
検証式生成部104は、検証式の生成には、検証要素抽出部102からのコマンドに従い、図6に示すテンプレートを用いる。
より具体的には、検証式生成部104は、検証要素抽出部102から入力した図3のテーブルに含まれる要求データと応答データの対を図6のテンプレートの該当箇所に挿入して検証式を生成する。
検証式生成部104は、S102で抽出したすべての項目について完了するまで検証式の生成を継続する。
なお、図10では、自然言語の要求仕様情報の生成及び出力(S103)の後で検証式の生成(S104)を行うことになっているが、この順番は逆でもよいし、これらの処理が同時に並行して行われてもよい。
検証式の生成が完了すると、制御モデル入力部105が、外部ソフトウェアで作成した制御モデルファイル111から制御モデルのデータを取得する(S105)。
なお、制御モデルのデータの取得はS101〜S104と独立して実行可能であり、S106より以前であればいずれのタイミングで実行してもよい。
制御モデルの取得が完了すると、検証部106が、制御モデルに存在する状態遷移パスを漏れなく抽出し、検証式生成部104で生成した検証式を満たさない通信が行われる状態遷移パスがないか確認する(S106)。
検証式を満たさない通信が行われる状態遷移パスがあれば、検証部106は、これを記録する。
検証部106は、S104で生成したすべての検証式について完了するまで検出を継続する。
制御モデルの検証エンジンとして外部のモデル検査ツールを利用する場合は、制御モデルをモデル検査ツールの記法に変換し、検証式とあわせてモデル検査ツールへ入力し、モデル検査を実行する。
検証の処理が完了すると、出力部107が、検証式を満たさない状態遷移パスが存在するか否か、存在する場合にはどのような状態遷移パスであるかを検証結果ファイル112に書き出す(S107)。
以上のように、シーケンス記述されたシステム構成要素間通信の要求仕様に対して、要求と応答の成立に関する検証式を自動的に生成し、制御仕様の状態遷移パスを網羅的に探索するので、要求仕様の解釈不足や解釈誤りに由来する検証式の漏れや誤りを排除し、要求に対して必ず応答が得られることの確認、あるいは要求に対して応答が得られない場合の状態遷移パスの確認ができる。
以上、本実施の形態では、
システム構成要素間通信に関する要求仕様を表すシーケンス記述の入力を受け付ける手段と、
シーケンス記述からシステム構成要素間の全ての要求と応答の対を抽出する手段と、
要求に対して必ず応答が発生する性質を表す自然言語の記述を書き出す手段と、
要求に対して必ず応答が発生する性質を表す検証式を生成する手段と、
システムの制御仕様を表す制御モデルの入力を受け付ける手段と、
制御モデルの状態遷移パスを網羅的に探索して、検証式を満たさない通信が行われる状態遷移パスがないか確認し、検証式を満たさない通信が行われる状態遷移パスがあれば、これを記録する手段と、
検証式を満たさない状態遷移パスが存在するか否か、存在する場合にはどのような状態遷移パスであるかを書き出す手段
を備える制御ソフトウェアの仕様整合性検証手法および装置を説明した。
実施の形態2.
以上の実施の形態1では、要求データと応答データの成立を検証するようにしたものであるが、次にエラー応答データを含む通信仕様を検証する実施形態を示す。
本実施の形態でも、仕様検証装置100の構成は、図1に示す通りである。
また、仕様検証装置100の動作フローも図10に示す通りであるが、動作の詳細が異なる。
以下、図10の動作フローに沿って、本実施の形態に係る仕様検証装置100の動作を説明する。
本実施の形態では、まず、シーケンス記述情報入力部101が、エラー応答データを含むデータ送受信シーケンスが記述されたシーケンス記述情報の入力を受け付ける(S101)。
図11は、エラー応答データを含む通信仕様を検証する場合のシーケンス記述情報を示している。
次に、検証要素抽出部102が、シーケンス記述情報のデータ送受信シーケンスから検証に必要な要素を抽出する(S102)。
検証要素抽出部102は、まず、入力されたシーケンス記述情報のデータ送受信シーケンスがサンプルモデル記憶部108に記憶されている複数のサンプルモデルのうちのいずれのサンプルモデルに対応するかを判別する。
図11のデータ送受信シーケンスが記述されているシーケンス記述情報の場合は、検証要素抽出部102は、図22のサンプルモデルに対応すると判断する。
そして、検証要素抽出部102は、図22のサンプルモデルに対応付けられている条件(図13と同等の内容の条件)を抽出する。
図13の条件は、要求データの送信後に応答データがない場合はエラー応答データが必ず発生するという事象(要求データの送信元のシステム構成要素が要求データの送信を所定回繰り返しても応答データを受信しない場合に、要求データの送信元のシステム構成要素が他のシステム構成要素にエラー応答データを送信する処理)を定義しているため、検証要素抽出部102は、すべてのオブジェクト間の要求データとエラー応答データの対を抽出する。
図12は、検証要素抽出部102が図11のシーケンス記述情報から抽出した要素を示している。
そして、検証要素抽出部102は、要求仕様出力部103に、抽出結果を示す図12のテーブルを出力するとともに、図13のテンプレートを使用する旨を指示するコマンドを出力する。
並行して、検証要素抽出部102は、検証式生成部104に、抽出結果を示す図12のテーブルを出力するとともに、図15のテンプレートを使用する旨を指示するコマンドを出力する。
要求仕様出力部103は、エラー応答データに関する自然言語の要求仕様情報を生成する(S103)。
図13は、エラー応答データの送信が含まれるデータ送受信シーケンスに対する自然言語の構文を示している。
図14は、図12で示す検証要素を図13で示す構文に適用して生成した自然言語の要求仕様情報を示している。
また、検証式生成部104は、エラー応答データの送信が含まれるデータ送受信シーケンスに対する検証式を生成する(S104)。
図15は、エラー応答データの送信が含まれるデータ送受信シーケンスに対するLTL検証式のテンプレートを示している。
図16は、図12で示す検証要素を図15で示すテンプレートに適用して作成したLTL検証式を示している。
制御モデル入力部105、検証部106、出力部107の動作(S105〜S107)は、実施の形態1と同様であり、説明を省略する。
以上、本実施の形態では、
エラー応答を含む通信仕様を表すシーケンス記述の入力を受け付けると、
シーケンス記述からエラー応答に関する要素を抽出し、
エラー応答が必ず発生する性質を表す自然言語の記述を書き出し、
エラー応答が必ず発生する性質を表す検証式を生成して制御モデルの検証を行うようにした
制御ソフトウェアの仕様整合性検証手法および装置を説明した。
実施の形態3.
以上の実施の形態1および実施の形態2では、要求データに対して応答データまたはエラー応答データが必ず発生することを検証するものであるが、次に要求データと応答データが正しい順序で発生することを検証する実施形態を示す。
本実施の形態でも、仕様検証装置100の構成は、図1に示す通りである。
シーケンス記述情報入力部101の機能は、実施の形態1と同様である。
つまり、シーケンス記述情報入力部101は図2のデータ送受信シーケンスが記述されているシーケンス記述情報を入力するものとする。
また、検証要素抽出部102は、シーケンス記述情報から、要求データと応答データの順序性に関する情報を抽出する。
サンプルモデル記憶部108は、図21に示すサンプルモデルを記憶しており、図21のサンプルモデルに対して、検証要素抽出部102が解釈可能なデータ形式で、図18と同じ内容が条件として記憶されている。
図18は、要求データと応答データの順序性に対する自然言語の構文を示している。
図17は、検証要素抽出部102が図2のシーケンス記述情報から抽出した要素を示している。
要求仕様出力部103は、図18の構文と図17の検証要素に従って、要求データと応答データの順序性に関する自然言語の要求仕様情報を生成する。
図19は、図17で示す検証要素を図18で示す構文に適用して生成した自然言語の要求仕様情報を示している。
検証式生成部104は、要求データと応答データの順序性に関する検証式を生成する。
検証式生成部104は、要求データと応答データの組合せを先頭から1組ごと選択し、図6で示した検証式の構成に当てはめる。
そして、検証式生成部104は、末尾の要求データと応答データの組合せが選択されるまで、これを繰り返す。
図20は、図17で示す検証要素を図6で示す構成に適用して作成した検証式を示している。
制御モデル入力部105、検証部106、出力部107の動作は、実施の形態1と同様であり、説明を省略する。
以上、本実施の形態では、
シーケンス記述からシステム構成要素間の要求と応答の順序性に関する要素を抽出し、
要求と応答に関する順序性を表す自然言語の記述を書き出し、
要求と応答に関する順序性を表す検証式を生成して制御モデルの検証を行うようにした
制御ソフトウェアの仕様整合性検証手法および装置を説明した。
最後に、実施の形態1〜3に示した仕様検証装置100のハードウェア構成例について説明する。
図23は、実施の形態1〜3に示す仕様検証装置100のハードウェア資源の一例を示す図である。
なお、図23の構成は、あくまでも仕様検証装置100のハードウェア構成の一例を示すものであり、仕様検証装置100のハードウェア構成は図23に記載の構成に限らず、他の構成であってもよい。
図23において、仕様検証装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜3で説明した「サンプルモデル記憶部」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、ネットワークに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
仕様検証装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1〜3の説明において「〜部」(「サンプルモデル記憶部」以外、以下同様)として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1〜3の説明において、「〜の判断」、「〜の抽出」、「〜の生成」、「〜の解析」、「〜の検出」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が、ディスクやメモリなどの記憶媒体にファイルとして記憶されている。
また、暗号鍵・復号鍵や乱数値やパラメータが、ディスクやメモリなどの記憶媒体にファイルとして記憶されてもよい。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記憶媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ブルーレイ(登録商標)ディスク、DVD等の記憶媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1〜3の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1〜3で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「情報処理方法」を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の記憶媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1〜3に示す仕様検証装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
100 仕様検証装置、101 シーケンス記述情報入力部、102 検証要素抽出部、103 要求仕様出力部、104 検証式生成部、105 制御モデル入力部、106 検証部、107 出力部、108 サンプルモデル記憶部、110 要求仕様ファイル、111 制御モデルファイル、112 検証結果ファイル。

Claims (9)

  1. 開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力部と、
    前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出部と、
    前記検証対象処理抽出部により抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を、生成する検証式生成部とを有することを特徴とする情報処理装置。
  2. 前記シーケンス記述情報入力部は、
    システム構成要素間で送受信される要求データと応答データのデータ送受信シーケンスが記述されているシーケンス記述情報を入力し、
    前記検証対象処理抽出部は、
    要求データを受信したシステム構成要素が、要求データの送信元のシステム構成要素に応答データを送信する処理を、検証対象処理として抽出することを特徴とする請求項1に記載の情報処理装置。
  3. 前記シーケンス記述情報入力部は、
    システム構成要素間で送受信される要求データと応答データとエラー応答データのデータ送受信シーケンスが記述されているシーケンス記述情報を入力し、
    前記検証対象処理抽出部は、
    要求データの送信元のシステム構成要素が要求データの送信を所定回繰り返しても応答データを受信しない場合に、前記要求データの送信元のシステム構成要素が他のシステム構成要素にエラー応答データを送信する処理を、検証対象処理として抽出することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記シーケンス記述情報入力部は、
    システム構成要素間で送受信される要求データと応答データのデータ送受信シーケンスが記述されているシーケンス記述情報を入力し、
    前記検証対象処理抽出部は、
    要求データと応答データの送信を所定の順序に従って行う処理を、検証対象処理として抽出することを特徴とする請求項1〜3のいずれかに記載の情報処理装置。
  5. 前記情報処理装置は、更に、
    データ送受信シーケンスのサンプルモデルを複数記憶し、サンプルモデルごとに、前記検証対象処理抽出部が検証対象処理として抽出する処理の条件を記憶するサンプルモデル記憶部を有し、
    前記検証対象処理抽出部は、
    前記シーケンス記述情報に記述されているデータ送受信シーケンスが前記サンプルモデル記憶部に記憶されている複数のサンプルモデルのうちのいずれのサンプルモデルに対応するかを判別し、前記データ送受信シーケンスで行われる処理のうち、判別したサンプルモデルについての条件に合致する処理を検証対象処理として抽出することを特徴とする請求項1〜4のいずれかに記載の情報処理装置。
  6. 前記情報処理装置は、更に、
    前記情報システムの制御仕様に基づいて生成された、前記情報システムの制御モデルを入力する制御モデル入力部と、
    前記検証式生成部により生成された検証式を用いて前記制御モデルを解析して、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かを検証する検証部とを有することを特徴とする請求項1〜5のいずれかに記載の情報処理装置。
  7. 前記情報処理装置は、更に、
    前記検証対象処理抽出部により抽出された検証対象処理を自然言語で記述する検証対象処理情報を生成し、生成した検証対象処理情報を出力する検証対象処理情報出力部を有することを特徴とする請求項1〜6のいずれかに記載の情報処理装置。
  8. コンピュータが、開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力ステップと、
    前記コンピュータが、前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出ステップと、
    前記コンピュータが、前記検証対象処理抽出ステップにより抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を、生成する検証式生成ステップとを有することを特徴とする情報処理方法。
  9. 開発対象の情報システムの通信に関する要求仕様として、前記情報システムに含まれるシステム構成要素間のデータ送受信シーケンスが記述されているシーケンス記述情報を、入力するシーケンス記述情報入力ステップと、
    前記シーケンス記述情報に記述されているデータ送受信シーケンスを解析し、前記データ送受信シーケンスで行われる処理を検証対象処理として抽出する検証対象処理抽出ステップと、
    前記検証対象処理抽出ステップにより抽出された検証対象処理が表され、前記検証対象処理が前記情報システムの制御仕様に反映されているか否かの検証に用いられる検証式を生成する検証式生成ステップとをコンピュータに実行させることを特徴とするプログラム。
JP2012098518A 2012-04-24 2012-04-24 情報処理装置及び情報処理方法及びプログラム Pending JP2013228780A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012098518A JP2013228780A (ja) 2012-04-24 2012-04-24 情報処理装置及び情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012098518A JP2013228780A (ja) 2012-04-24 2012-04-24 情報処理装置及び情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2013228780A true JP2013228780A (ja) 2013-11-07

Family

ID=49676374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012098518A Pending JP2013228780A (ja) 2012-04-24 2012-04-24 情報処理装置及び情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2013228780A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111931488A (zh) * 2020-09-24 2020-11-13 北京百度网讯科技有限公司 用于验证判断结果准确性的方法、装置、电子设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111931488A (zh) * 2020-09-24 2020-11-13 北京百度网讯科技有限公司 用于验证判断结果准确性的方法、装置、电子设备及介质
CN111931488B (zh) * 2020-09-24 2024-04-05 北京百度网讯科技有限公司 用于验证判断结果准确性的方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
US9594672B1 (en) Test case generation
JP6621204B2 (ja) 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法
US7908518B2 (en) Method, system and computer program product for failure analysis implementing automated comparison of multiple reference models
US9208451B2 (en) Automatic identification of information useful for generation-based functional verification
US20150094997A1 (en) Explaining partially illegal combinations in combinatorial models
US10019337B2 (en) Class object handle tracking
US9703683B2 (en) Software testing coverage
US20140214396A1 (en) Specification properties creation for a visual model of a system
US20150143342A1 (en) Functional validation of software
US8560991B1 (en) Automatic debugging using automatic input data mutation
US10635767B2 (en) Glitch detection at clock domain crossing
US10592623B2 (en) Assertion statement check and debug
US8589734B2 (en) Verifying correctness of processor transactions
JP5672165B2 (ja) テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
US10481969B2 (en) Configurable system wide tests
JP2013228780A (ja) 情報処理装置及び情報処理方法及びプログラム
KR101251792B1 (ko) 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법
JP6644188B2 (ja) 影響抽出装置、影響抽出プログラム及び影響抽出方法
JP2016126700A (ja) プログラム検証装置、プログラム検証方法及びプログラム検証プログラム
JP6818568B2 (ja) 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム
Rane et al. Designing White Box Test Cases for Online Food Delivery System
Cheng et al. KORAT—A platform independent test automation tool by emulating keyboard/mouse hardware signals
WO2018122990A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2011048412A (ja) 情報処理装置及び情報処理方法及びプログラム
JP5228794B2 (ja) モデル検査実施のための環境生成支援装置、環境生成支援方法、環境生成支援プログラム