JP2014160435A - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

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

Info

Publication number
JP2014160435A
JP2014160435A JP2013031588A JP2013031588A JP2014160435A JP 2014160435 A JP2014160435 A JP 2014160435A JP 2013031588 A JP2013031588 A JP 2013031588A JP 2013031588 A JP2013031588 A JP 2013031588A JP 2014160435 A JP2014160435 A JP 2014160435A
Authority
JP
Japan
Prior art keywords
violation
condition
precondition
constraint
processing
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
JP2013031588A
Other languages
English (en)
Inventor
Yusuke Hashimoto
祐介 橋本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2013031588A priority Critical patent/JP2014160435A/ja
Publication of JP2014160435A publication Critical patent/JP2014160435A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を簡単に行うこと。
【解決手段】複数の処理に含まれるそれぞれの処理の処理内容の記述を含む形式仕様データの検査結果として、複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成し、形式仕様データと違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する。
【選択図】 図1

Description

本発明は、モデル検査手法における形式仕様データを生成するための技術に関する。
上記技術分野においては、処理の仕様を、不変条件と、事前条件と、その処理が行う実行内容と、事後条件として記述する。不変条件とは、システムによって常に満たされるべき制約すなわち複数の処理に課される共通の制約である。事前条件とは、システムが行う処理について、その処理の実行前に満たされているべき制約である。事後条件とは、その処理が実行後に満たすべき制約である。このように記述された仕様では、システムの分析設計段階で仕様を仮想的に動作させることができ、モデル検査法といった既存の検証手法を用いて、制約が守られているかどうかを検証できる。制約違反があれば仕様を修正する。
特許文献1には、モデル検査法で得られる反例(制約違反の起こる例)と、反例に対応する正例(制約違反の起こらない例)との双方の情報を用いて、事前条件を修正する技術が開示されている。ここで、特許文献1においては、事前条件が真で事後条件が偽となったイベントに係るプロパティの、初期状態から修正対象プロパティに係るイベントに到るまでに駆動された全イベントを特定する情報を含む状態遷移列を、反例とする。一方、修正対象プロパティに係るイベントと同一のイベントのうち、事前条件と事後条件とが共に真となったイベントを特定し、初期状態から特定されたイベントに到るまでに駆動された全イベントを特定する情報を含む状態遷移列を、反例に対する正例とする。
特開2010−282257号公報
しかしながら、上記文献に記載の技術は、容易に得られる反例に対応する正例を得て使用する技術であり、制約が成り立たないような状態遷移列が1つもないといった、制約に違反しない正例を使用するものではない。なぜなら、一般に形式手法による仕様では、成立すべきこととして事前条件、事後条件、不変条件といった制約を記述するので、制約が成り立たないような状態遷移列が1つもないといった、制約に違反しない正例を得るための特別な条件を記述しない。そのため、モデル検査を用いたシステムの検証においては、システムの振る舞いが制約に違反する反例は容易に得ることできるが、制約に違反しない正例を得ることは、一般に難しいからである。このように、正例を得るための特別な条件の記述を含まない形式手法による仕様では、上記文献に記載の技術のように、制約違反の起こった反例に対応する正例からでは事前条件の修正を簡単に行うことができなかった。
本発明の目的は、上述の課題を解決する技術を提供することにある。
上記目的を達成するため、本発明に係る情報処理装置は、
複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成手段と、
前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成手段と、
を備える。
上記目的を達成するため、本発明に係る情報処理方法は、
複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成ステップと、
前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成ステップと、
を含む。
上記目的を達成するため、本発明に係る情報処理プログラムは、
複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成ステップと、
前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成ステップと、
をコンピュータに実行させる。
本発明によれば、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を簡単に行うことができる。
本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る形式仕様データとモデル検査法の反例とから違反条件を生成する方法を模式化した模式図である。 本発明の第2実施形態に係る違反条件から制約への違反を起こさないようにするための違反防止事前条件を生成する際に用いる規則を例示する図である。 本発明の第2実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。 本発明の第3実施形態に係る処理における遷移を示す遷移図である。 本発明の第3実施形態に係る処理における形式仕様データを例示する図である。 本発明の第3実施形態に係る処理におけるモデル検査による反例を例示する図である。 本発明の第3実施形態に係る処理における形式仕様データとモデル検査法の反例とから違反条件を生成する手順を例示する図である。 本発明の第3実施形態に係る処理における違反条件から違反発生最弱事前条件と違反防止事前条件とを生成する手順を例示する図である。 本発明の第3実施形態に係る処理における違反防止事前条件を用いて修正された形式仕様データを例示する図である。 本発明の第4実施形態に係る処理における遷移を示す遷移図である。 本発明の第4実施形態に係る処理における形式仕様データを例示する図である。 本発明の第4実施形態に係る処理におけるモデル検査による反例を例示する図である。 本発明の第4実施形態に係る処理における形式仕様データとモデル検査法の反例とから違反条件を生成する手順を例示する図である。 本発明の第4実施形態に係る処理における違反条件から違反発生最弱事前条件と違反防止事前条件とを生成する手順を例示する図である。 本発明の第4実施形態に係る処理における違反防止事前条件を用いて修正された形式仕様データを例示する図である。 本発明の第5実施形態に係る処理における遷移を示す遷移図である。 本発明の第5実施形態に係る処理における形式仕様データを例示する図である。 本発明の第5実施形態に係る処理におけるモデル検査による反例を例示する図である。 本発明の第5実施形態に係る処理における形式仕様データとモデル検査法の反例とから違反条件を生成する手順を例示する図である。 本発明の第5実施形態に係る処理における違反条件から違反発生最弱事前条件と違反防止事前条件とを生成する手順を例示する図である。 本発明の第5実施形態に係る処理における違反防止事前条件を用いて修正された形式仕様データを例示する図である。 本発明の第6実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第6実施形態に係る情報処理装置の処理手順を示すフローチャートである。
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、モデル検査手法における形式仕様データを生成する装置である。
図1に示すように、情報処理装置100は、違反条件生成部110と、事前条件生成部120と、を含む。違反条件生成部110は、複数の処理に含まれるそれぞれの処理の処理内容の記述を含む形式仕様データの検査結果として、複数の処理に課される制約への違反を見つけた場合に、次の処理をする。すなわち、処理の開始状態から制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、制約に違反する状態において制約への違反が起きた条件である違反条件111を生成する。事前条件生成部120は、形式仕様データと違反条件111とに基づいて、処理の開始状態における、処理の実行後に制約への違反が起こる条件としての違反発生最弱事前条件121と、処理の実行後に制約への違反が起きない条件としての違反防止事前条件122とを生成する。
本発明によれば、モデル検査法により得られる反例だけから、制約への違反が起きたことを示す違反条件を生成し、違反条件から制約への違反を起こさないようにするための事前条件を生成する。したがって、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を簡単に行うことができる。
[第2実施形態]
次に、本発明の第2実施形態に係る情報処理装置について説明する。本実施形態の事前条件生成装置としての情報処理装置は、システムを記述した形式仕様データに基づいてモデル検査を実行し、制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例を得る。この反例と形式仕様データとに基づいて、制約に違反する状態において制約への違反が起きた条件である違反条件を生成する。次に、処理の実行後に制約への違反が起こる条件としての違反発生最弱事前条件と、処理の実行後に制約への違反が起きない条件としての違反防止事前条件とを生成する。そして、違反防止事前条件により形式仕様データの事前条件を更新する。
本実施形態によれば、モデル検査法により得られる反例だけから、制約への違反が起きたことを示す違反条件を生成し、違反条件から制約への違反を起こさないようにするための違反防止事前条件を生成する。したがって、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を容易に行うことができる。
《本実施形態の基礎技術》
近年、システム開発に、いわゆる形式手法を採用することが多くなってきている。形式手法とは、数学的な概念に基づき、対象システムを正確で曖昧さのない記法で表現する手法である。具体的には、主に集合と集合や集合の要素同士の関係とを用いて対象システムが扱うデータを表現する。対象システムが行う処理は、複数の集合や関係に要素を追加したり削除したりする代入文の列として表現する。そして、処理の前後で成り立つべき、または成り立つべきではないという制約を論理命題の形で表明する。制約には不変条件と事前条件と事後条件がある。不変条件はシステムにおいて常に成り立つべき条件である。全ての処理には、その処理の実行後に不変条件を成立させることが課される。事前条件と事後条件はシステムが行う処理ごとの表明である。ある処理に着目すると、その処理を実行する側の処理には、着目した処理の実行直前に不変条件と着目した処理の事前条件を成立させることが課される。また、着目した処理には処理の実行後にその処理の事後条件を成立させることが課される。モデル検査法を用いると、形式手法による仕様を読み込んで、システムに仕様に相当する有限状態遷移グラフ上の状態遷移列を網羅的に探索して制約への違反を検出できる。
ここで、モデル検査法は、与えられた有限状態遷移グラフと検証したい条件(プロパティ)について、有限状態遷移グラフ上の状態遷移列(経路、パス)を網羅的に探索して、プロパティが成立するかどうかを調べる手法である。モデル検査法では、プロパティが成立しない(プロパティ違反)場合には探索の開始状態からプロパティ違反となった状態までの状態遷移列とこの状態遷移列上の各状態の情報の集まりである反例が出力される。
システムの状態はシステムのもつデータすなわちシステム内の変数の値の組合せで決まる。システムの処理が変数の値を変更することは、その変数について変更前の値の状態から変更後の値の状態へと遷移が起こることであると考えて、システムの仕様に相当する有限状態遷移グラフを作ることができる。検証したい条件としては、各処理の実行前に不変条件とその処理の事前条件が成立することと各処理の実行後に不変条件とその処理の事後条件が成立することが上げられる。この考え方に則ってモデル検査法を適用すると、システムに相当する有限状態遷移グラフ上で不変条件が成立する状態から網羅探索を開始して処理の実行内容に相当する状態遷移を辿ることができる。そして、各処理の実行前後の状態において不変条件、事前条件、事後条件といった制約が守られているかどうかを調べることができる。制約が守られていないという制約違反が起きた場合には、探索の開始状態から制約違反の発生した状態までの状態遷移列とその状態遷移列上の各状態における変数およびその値の集まりである反例を得ることができる。
制約違反が検出された場合、違反を起こさないように仕様を修正する必要がある。多くの場合、事前条件を修正することが多い。なぜなら、不変条件は個々の処理とは独立であることから処理に関する修正の対象とはなりにくいからである。また、事後条件は設計者が仕様として記述している処理の実行内容と密接に関係しており、設計者にとって考えつきやすいからである。これに対して、事前条件は設計中の処理とは直接には関係していない他の処理の実行結果として得られるデータベースの状態や内部メモリの状態などが関係することがあり、設計者にとって考え付きにくいからである。
《情報処理装置の機能構成》
図2は、本実施形態に係る情報処理装置210の機能構成を示すブロック図である。
図2を参照すると、本実施形態の事前条件生成装置としての情報処理装置210は、機能的には、例えば、読込処理部211と、モデル検査実行部212と、違反条件生成部213と、事前条件生成部214と、出力処理部215と、を有する。
ここで、情報処理装置210は、物理的には、例えばCPU(Central Processing Unit)と、記憶部と、入出力インタフェースとを含む。記憶部は、例えば、CPUで処理されるプログラムおよびデータを記憶するROM(Read Only Memory)やHDD(Hard Disk Drive)、主として制御処理のための各種作業領域として使用するRAM(Random Access Memory)等を含む。これらの要素は、互いにバスを介して接続される。CPUが、ROMやHDDに記憶されたプログラムを実行し、入出力インタフェースを介して受信されるメッセージや、入力部から入力されるデータ、RAMに展開されるデータ等を処理することで、図2に示す情報処理装置210の各機能部を実現する(図6参照)。
図2に示す読込処理部211は、形式仕様データDB(Data Base)220から形式仕様データを読み込む。形式仕様データは、形式手法における形式記述言語を用いてシステムの仕様を表現することで生成される。この形式仕様データは、不変条件および処理内容を含む。不変条件は、複数の処理に課される共通の制約を記述したデータである。処理内容は、処理する内容を処理ごとに記述したデータであり、その処理を実行する処理に課される制約である事前条件と、その処理の実行内容である実行文の列と、その処理に課される制約である事後条件と、をデータとして含む。これらの制約には、不変条件および事前条件の成立を前提として、全ての実行文を実行した後に、不変条件および事後条件が成立すべき、という関係がある。
図2に示すモデル検査実行部212は、読込処理部211により読み込まれた形式仕様データに含まれる処理にもとづいて、有限状態遷移グラフを作成し、不変条件などの制約が成立するようにグラフ上を網羅探索する。そして、制約が成立しない状態に到達することがあれば、制約への反例として、探索の開始状態から制約が成立しない状態までの状態遷移列および各状態における変数の値を出力する。
図2に示す違反条件生成部213は、読込処理部211により読み込んだ形式仕様データとモデル検査実行部212により出力された反例とを用いて違反条件を生成する。ここで、違反条件は、ある処理が他の処理を呼び出す際に不変条件または他の処理の事前条件が成立しないこと、あるいは、ある処理の実行後に不変条件またはその処理の事後条件が成立しないことを示す十分条件である。
図2に示す事前条件生成部214は、読込処理部211により読み込んだ形式仕様データと違反条件生成部213とにより生成された違反条件とを用いて、ある処理の事前条件として、違反発生最弱事前条件と違反防止事前条件とを生成する。ここで、違反発生最弱事前条件とは、その処理の実行後に違反条件が真となるような条件である。また、違反防止事前条件とは、処理の実行後に違反条件が偽となる条件である。
図2に示す出力処理部215は、事前条件生成部214により生成された違反防止事前条件を違反防止事前条件DB230に出力する。なお、出力処理部215は、違反防止事前条件を、プリンタに出力して印刷させてもよいし、表示装置に出力して表示させてもよい。また、出力処理部215は、違反防止事前条件の代わりに違反発生最弱事前条件を出力してもよいし、違反発生最弱事前条件と違反防止事前条件との区別がつくような情報を付加して、双方を出力してもよい。
《情報処理装置の処理手順》
図3は、本実施形態に係る情報処理装置210の処理手順を示すフローチャートである。
最初に、読込処理部211は、形式仕様データDB220から形式仕様データを読み込む(ステップS301)。続いて、モデル検査実行部212は、ステップS301において読み込まれた形式仕様データを有限状態遷移グラフに変換する。そして、不変条件とある処理の事前条件とが成立する状態を起点として、その処理の実行文に応じた状態遷移を選択して次の状態に移る。選択しうる状態遷移がなければ、状態遷移を戻って前の状態において別の状態に遷移するという探索手続きを繰り返し行う。この探索の過程で制約が成立しない状態に到達すれば、反例として開始状態から制約違反の状態までの状態遷移列と各状態における変数の値とを出力する(ステップS303)。
違反条件生成部213は、ステップS303の処理の結果、反例があるか否かで分岐する(ステップS305)。出力された反例があれば、次のステップS307に進み、なければ動作全体を終了する。続いて、違反条件生成部213は、ステップS301において読み込まれた形式仕様データと、ステップS303において出力された反例とを基に、図4で例示した手順に沿って、違反条件を生成する(ステップS307)。
事前条件生成部214は、図5に示した規則を用いて、ステップS301において読み込まれた形式仕様データと、ステップS307において生成された違反条件とを基に、処理の事前条件として違反発生最弱事前条件を生成する(S309)。また、事前条件生成部214は、違反発生最弱事前条件の否定形である違反防止事前条件を生成する(ステップS311)。
出力処理部215は、ステップS311で生成された違反防止事前条件を出力する(ステップS313)。
(違反条件を生成する模式図)
図4は、本実施形態に係る形式仕様データとモデル検査法の反例とから違反条件を生成する手順400を模式化した模式図である。図4においては、論理式「(A AND B)OR(C AND D)」がAおよびCが偽であるために成立しない場合について、違反条件を生成する手順を説明する。なお、図4の手順は、他の論理式から違反条件を生成するために適用可能であり、以下の第3実施形態乃至第5実施形態に示す具体例からも明白である。
(1:S401)まず、違反条件生成部213は、論理式全体からAND/ORグラフを作成する。AND/ORグラフは積を表す論理演算子ANDおよび和を表す論理演算子ORをそれぞれAND分岐およびOR分岐として、論理式を木構造で表現した図式である。木構造のある分岐に着目したときに分岐元と分岐先とをそれぞれ上位ノードと下位ノードと呼ぶ。AND分岐をもつ上位ノードの値は全ての下位ノードの値について論理積をとった値であり、OR分岐をもつ上位ノードの値は全ての下位ノードの値について論理和をとった値である。また、上位ノードをもたないノードと下位ノードをもたないノードをそれぞれルートノードとリーフノードと呼ぶ。ルートノードは論理式全体にあたり、リーフノードは論理式のうちANDおよびOR演算子を含まない部分論理式にあたる。論理式(A AND B)OR(C AND D)は、OR分岐をもつルートノードと、ルートノードからの分岐先でありAND分岐をもつ2つのノードと、それらのAND分岐の先として部分論理式A、B、C、Dにあたる4つのリーフノードからなるAND/ORグラフとなる。
(2)次に、違反条件生成部213は、部分論理式の値が偽であるリーフノードを特定し、偽であることをノードに印づける。
(3)さらに、違反条件生成部213は、下位ノードの値から上位ノードの値を計算し、値が偽となるノードを印づける。
(4)全てのノードについて値の計算が終えると、違反条件生成部213は、値が真であるノードとそのノードが接続している分岐と分岐先のノード群をAND/ORグラフから削除する。
(5)最後に、違反条件生成部213は、削除を行った後のAND/ORグラフにおいて、下位ノードが1つだけのノードをその下位ノードで置き換える。そして、置換を行った後のAND/ORグラフを論理式「A OR C」として表現し、その否定形である「NOT(A OR C)」を違反条件とする。違反条件「NOT(A OR C)」の値は、部分論理式AとCがそれぞれ偽である場合にのみ真となり、それ以外の場合には偽となる。
(違反防止事前条件を生成する際に用いる規則)
図5は、本実施形態に係る違反条件から、制約への違反を起こさないようにするための違反防止事前条件を生成する際に用いる規則を例示する図である。図5は、規則510と、その規則510に出現する記号の表わす内容一覧520と、を示す。なお、図5は、本実施形態における基本的な規則であり、広く処理システムのモデル検査手法に対して汎用的に使用できる。
図5の規則510を参照して、違反防止事前条件を生成する手順を説明する。まず、事前条件生成部214は、規則aを用いて、ある処理の事前条件としてその処理の実行後に違反条件とが真となるような、最も弱い条件である違反発生最弱事前条件を表す論理式を作る。
そして、最弱事前条件を得るための述語変換子wpについて、第1引数を規則bからdまでを用いてANDおよびOR演算子を含まない部分論理式になるまで分解する。次に、第2引数を規則eとfとを用いて代入文になるまで分解し、規則gを用いてwpを含まない論理式に変換して、違反発生最弱事前条件を得る。
そして、事前条件生成部214は、規則hを用いて、違反発生最弱事前条件から違反防止事前条件を得る。違反発生最弱事前条件が成り立つ場合に、処理を実行すると違反条件に関連する制約は必ず成立しなくなる。違反発生最弱事前条件の否定である違反防止事前条件が成り立つ場合には、処理を実行すると違反条件は成立せず、この違反条件に起因する制約違反は起きない。
《情報処理装置のハードウェア構成》
図6は、本実施形態に係る情報処理装置210のハードウェア構成を示すブロック図である。
図6で、CPU610は演算制御用のプロセッサであり、CPU610がRAM640を使用しながらストレージ650に格納されたプログラムおよびモジュールを実行することで、図2に示された情報処理装置210の各機能構成部の機能が実現される。ROM620は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部630は、ネットワークを介して外部装置と通信する。なお、CPU610は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。
RAM640は、CPU610が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM640には、本実施形態の実現に必要なデータを記憶する領域が確保されている。形式仕様データ641は、形式仕様データDB220から読み込まれたシミュレーション対象の形式仕様データである。反例データ642は、形式仕様データ641に基づいてモデル検査を実行して得られた反例データである。違反条件643は、形式仕様データ641と反例データ642とから、図4の違反条件を得る方法に従って生成された違反条件である。違反発生最弱事前条件644は、形式仕様データ641と違反条件643とに基づいて、図5の違反防止事前条件を生成する規則に従って生成された違反発生最弱事前条件である。違反防止事前条件645は、違反発生最弱事前条件644の否定形として生成した違反防止事前条件である。入出力データ646は、入出力インタフェース660を介して入出力される入出力データを示す。送受信データ647は、通信制御部630を介して送受信される送受信データを示す。
ストレージ650には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。形式仕様データ651は、形式仕様データDB220から読み込まれた形式仕様データである。モデル検査パラメータ652は、本実施形態のモデル検査を実行するために使用される変数を含むパラメータである。状態遷移グラフ653は、モデル検査を実行する処理システムにおける状態遷移を表わすグラフである。違反条件生成アルゴリズム654は、図4の違反条件を得る方法を記述している。事前条件生成アルゴリズム655は、図5の違反発生最弱事前条件と違反防止事前条件とを生成する規則を記述している。
ストレージ650には、以下のプログラムが格納される。情報処理装置制御プログラム656は、本情報処理装置210の全体を制御する制御プログラムである。モデル検査実行モジュール657は、情報処理装置制御プログラム656において、形式仕様データ641とモデル検査パラメータ652とを使用してモデル検査を実行し、反例データ642を生成するモジュールである。違反条件生成モジュール658は、情報処理装置制御プログラム656において、違反条件生成アルゴリズム654に従い、形式仕様データ641と反例データ642とから違反条件643を生成するモジュールである。事前条件生成モジュール659は、情報処理装置制御プログラム656において、事前条件生成アルゴリズム655に従い、形式仕様データ641と違反条件643とから違反発生最弱事前条件と違反防止事前条件とを生成するモジュールである。
入出力インタフェース660は、入出力機器との入出力データをインタフェースする。入出力インタフェース660には、表示部661、キーボード、タッチパネル、ポインティンデバイスなどの操作部662が接続される。また、スピーカやマイクなどの音声入出力部663が接続される。さらに、形式仕様データDB220や違反防止事前条件DB230が接続される。なお、形式仕様データDB220や違反防止事前条件DB230は、通信制御部630によりネットワークを介して接続されていてもよい。
なお、図6のRAM640やストレージ650には、情報処理装置210が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
本実施形態によれば、モデル検査法により得られる反例だけから、制約への違反が起きたことを示す違反条件を生成し、違反条件から制約への違反を起こさないようにするための違反防止事前条件を生成する。したがって、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を容易に行うことができる。すなわち、本実施形態における情報処理装置210によれば、読込処理部211が形式仕様データを読み込み、その形式仕様データとモデル検査実行部212がモデル検査法を行って出力した反例とから、形式仕様データを修正するのに必要となる事前条件(違反防止事前条件)を生成することができる。それゆえに、事後条件あるいは不変条件が成り立たないような状態遷移列が1つもないことといった、制約に違反しないという正例を得るための特別な表明を記述しない形式手法による仕様であっても、仕様の検証を簡単に行うことが可能となる。
[第3実施形態]
次に、本発明の第3実施形態に係る情報処理装置の処理について説明する。本実施形態に係る事前条件生成装置としての情報処理装置の処理は、上記第2実施形態の処理を具体的なスピーカの音量制御処理に適用した例である。本実施形態では、スピーカの音量制御処理において、形式仕様データとモデル検査法の反例とから生成した違反条件から、違反発生最弱事前条件と違反防止事前条件とを生成し、違反防止事前条件を用いて修正された形式仕様データを生成する。その他の構成および動作は、第2実施形態と同様であるため、その詳しい説明を省略する。
《処理の遷移図》
図7Aは、本実施形態に係る処理における遷移700を示す遷移図である。なお、図7Aは、単純なスピーカの音量制御処理を示すが、さらに複雑な処理であっても本実施形態を適用できる。
図7Aの遷移図には、スピーカ音量を1ステップ上げる処理701(v:=v+1)と、スピーカ音量を1ステップ下げる処理702(v:=v−1)との間で、処理が遷移する様子が示されている。なお、vは音量に対応するパラメータであるが、vが何であるか、また、1ステップの単位などは本質的でないので、ここでは詳説しない。そして、本例のスピーカの音量制御処理における不変条件703は、“0≦v≦10”と設定するが、これも特殊な条件ではなく他の処理にも汎用的に使用できる。
以下、本実施形態においては、図7Aの処理の中から、スピーカ音量を1ステップ上げる処理701(v:=v+1)の事前条件に対して、本実施形態による違反防止事前条件を用いた修正を説明する。
(形式仕様データ)
図7Bは、本実施形態に係る処理における形式仕様データ720を例示する図である。図7Bを参照して、形式仕様データに含まれる不変条件および処理内容について具体的に説明する。
図7Bの上部は、不変条件703を例示するものであり、スピーカのボリュームの値“v”は0以上かつ10以下の値であることを不変条件としている。
図7Bの下部は、処理内容710を例示するものである。処理内容710は、次のデータを含む。“スピーカの音量を上げる”という処理に関するデータ711、利用者が操作し音量を上げるボタンの状態を示す引数“b”712と、“b”の値が“ON”であるという命題の事前条件713と、“v”の値を1だけ加算し、“b”の値を“OFF”を代入することを示す実行内容714とである。なお、事後条件715は設定されていない。また、不変条件、事前条件および事後条件といった制約は命題が設定されていなければ真(True)であるものとして扱う。
(モデル検査による反例)
図8は、本実施形態に係る処理におけるモデル検査による反例800を例示する図である。なお、モデル検査による反例は無数存在するが、図8には、その中で最も弱い反例(条件が真から偽に移る境界の反例)が、状態遷移および変数とその値で示されている。
図8は、図7Aの処理701を行う前の状態(事前状態801)において、vの値は10でbの値は“ON”であり、図7Aの処理701を行った後の状態(事後状態802)においてvの値は11でbの値は“OFF”であることを、例示的に示している。事後状態802ではvの値が11であるために、命題v≦10は偽となり、図7Aおよび図7Bに示した不変条件703は成立しない。すなわち、図8は図7Aおよび図7Bに示した不変条件703への反例である。
(違反条件の生成)
図9は、本実施形態に係る処理における形式仕様データとモデル検査法の反例とから違反条件を生成する手順900を例示する図である。図9を参照して、図8に例示した反例800から違反条件を生成する具体的を説明する。
図9の(1:S901)は、不変条件“0≦v AND v≦10”を、部分論理式“0≦v”と“v≦10”のそれぞれにあたるリーフノードと、これらのリーフノードをAND分岐で束ねたルートノードからなるAND/ORグラフとして表現した例である。
図9の(2:S902)は、各リーフノードについて、その対応する部分論理式がvの値11によって偽になる右側のリーフノードを黒塗りで印づけた例である。
図9の(3:S903)は、下位ノードの値から上位ノードの値を計算し、偽になるノードを黒塗りで印づけた例である。左側のリーフノードの値は真であり、右側のリーフノードの値は偽であり、これらをAND分岐で束ねたルートノードの値は下位ノードの値の論理積であることから偽であり、黒塗りで印づけられている。
図9の(4:S904)は、値が真となるノードを削除した例であり、図9の(3)におけるルートノードと右側のリーフノードだけがグラフとして残っている。
図9の(5:S905)は、図9の(4)において下位ノードが1つだけのノードをその下位ノードと置換した例であるが(図4参照)、相当するノードがないため、図9の(4)と同じグラフとなっている。図9の(5)のAND/ORグラフに相当とする論理式の否定形が、求める違反条件“NOT v≦10”となる。
(違反発生最弱事前条件と違反防止事前条件との生成)
図10は、本実施形態に係る処理における違反条件から違反発生最弱事前条件と違反防止事前条件とを生成する手順1000を例示する図である。図10の手順1000は、違反条件発生最弱事前条件を生成する手順1010と、違反防止事前条件を生成する手順1020とを有する。
違反条件発生最弱事前条件を生成する手順1010においては、まず、図5の規則aにより、違反条件発生最弱事前条件を表す式“wp(v:=v+1;b:=OFF,NOT v≦10)”を立てる。次に、第1引数が実行文の列になっているので、列を分解する図5の規則fを用いて式“wp(v:=v+1,wp(b:=OFF,NOT v≦10))”を得る。次に、第2引数から図5の規則gを用いてに述語変換子wpを取り除き、式“wp(v:=v+1,NOT v≦10)”を得る。さらに、図5の規則gを用いてwpを取り除くと、違反条件最弱事前条件として“NOT v+1≦10”を得る。
違反防止事前条件を生成する手順1020においては、図5の規則hを用いて、事前記違反条件最弱事前条件の否定形として違反防止事前条件“v≦9”を得る。
(修正された形式仕様データ)
図11は、本実施形態に係る処理における違反防止事前条件を用いて修正された形式仕様データ1100を例示する図である。
図11においては、図7Bの処理内容710について、処理後に不変条件を成立させるために、元の事前条件“b=ON”に、図10で得た違反防止事前条件“v≦9”を論理積として追加する修正を行って、事前条件1113を有する形式仕様データ1100を得る。
本実施形態によれば、スピーカ音量制御において、モデル検査法により得られる反例だけから、制約への違反が起きたことを示す違反条件を生成し、違反条件から制約への違反を起こさないようにするための違反防止事前条件を生成する。したがって、スピーカ音量制御において、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を簡単に行うことができる。
[第4実施形態]
次に、本発明の第4実施形態に係る情報処理装置の処理について説明する。本実施形態に係る事前条件生成装置としての情報処理装置の処理は、上記第2実施形態の処理を具体的な複数の処理を含むスピーカの音量制御処理に適用した例を示す。本実施形態では、複数の処理を含むスピーカの音量制御処理において、形式仕様データとモデル検査法の反例とから生成した違反条件から、違反発生最弱事前条件と違反防止事前条件とを生成し、違反防止事前条件を用いて修正された形式仕様データを生成する。なお、本実施形態においては、2つの処理を含むスピーカの音量制御を説明するが、かかる処理は複数の処理を含むスピーカの音量制御に汎用的に使用できる。その他の構成および動作は、第2実施形態と同様であるため、その詳しい説明を省略する。
《処理の遷移図》
図12は、本実施形態に係る処理における遷移1200を示す遷移図である。図12は、図7のスピーカの音量制御処理の遷移図に、さらにノイズ抑圧の処理を加えた処理を示している。なお、図12において、図7と同様の処理および不変条件には同じ参照番号を付して、説明は省略する。
ノイズ抑圧の処理1204は、音量に対応するパラメータであるvから、ノイズ抑圧に対応するパラメータである“w”が、w:=v+1として算出される。そして、ノイズ抑圧に対応するパラメータであるwの不変条件1205は、“0≦w≦10”とする。wが何であるかや単位などは本質的でないので、ここでは詳説しない。
(形式仕様データ)
図13は、本実施形態に係る処理における形式仕様データ1300を例示する図である。以下、図13を参照して、形式仕様データに含まれる不変条件および処理内容について具体的に説明する。なお、図13において、図7Bと同様の要素には同じ参照番号を付して、説明は省略する。また、図13においては、以下の説明を複雑としないため、図7Bの音量を上げるボタンの状態を示す引数“b”712については削除している。
図13の上部は、不変条件1301を例示するものであり、図12の2つの不変条件703と1205とが含まれている。すなわち、スピーカのボリュームの値vが0以上かつ10以下の値であり、同時に、ノイズ抑圧の値wが0以上かつ10以下の値ことを不変条件としている。
図13の下部は、2つの処理内容1310と1320とを例示するものである。ここで、処理内容1310は、第3実施形態により生成された違反防止事前条件“v≦9”を含む図11の事前条件1113を有している。また、処理内容1320は、次のデータを含む。“ノイズ抑圧を上げる”という処理に関するデータ1321、“w”の値をv+1とする実行内容1324とである。なお、事前条件1323および事後条件1325は設定されていない。
以下、本実施形態においては、複雑化を避けるため、2つの処理内容1310と1320とを1つの処理内容1330に併合して説明する。しかしながら、2つの処理内容1310と1320とを別個の連続する処理として扱っても、以下の例と同じ結果が得られることは明らかである。
処理内容1330は、次のデータを含む。“スピーカの音量を上げて、ノイズ抑圧を上げる”という処理に関するデータ1331、第3実施形態により生成された違反防止事前条件“v≦9”を含む事前条件1333、“v”の値を1だけ加算した後“w”の値をv+1とする実行内容1334とである。なお、事後条件1335は設定されていない。
なお、また、不変条件、事前条件および事後条件といった制約は命題が設定されていなければ真(True)であるものとして扱う。
(モデル検査による反例)
図14は、本実施形態に係る処理におけるモデル検査による反例1400を例示する図である。なお、モデル検査による反例は無数存在するが、図14には、その中で最も弱い反例(条件が真から偽に移る境界の反例)が、状態遷移および変数とその値で示されている。
図14は、図12の処理701および1204を行う前の状態(事前状態1401)において、vの値は9であり、図12の処理701および1204を行った後の状態(事後状態1402)においてvの値は10でwは11であることを、例示的に示している。事後状態1402ではwの値が11であるために、命題w≦10は偽となり、図13に示した不変条件1301は成立しない。すなわち、図14は図13に示した不変条件1301への反例である。
(違反条件の生成)
図15は、本実施形態に係る処理における形式仕様データとモデル検査法の反例とから違反条件を生成する手順1500を例示する図である。図15を参照して、図14に例示した反例1400から違反条件を生成する具体的を説明する。
図15の(1:S1501)は、不変条件“0≦v AND v≦10”と“0≦w AND w≦10”とを、部分論理式“0≦v”、“v≦10”、“0≦w”、および、“w≦10”のそれぞれにあたるリーフノードと、これらのリーフノードをAND分岐で束ねたルートノードからなるAND/ORグラフとして表現した例である。
図15の(2:S1502)は、各リーフノードについて、その対応する部分論理式がwの値11によって偽になる最右側のリーフノードを黒塗りで印づけた例である。
図15の(3:S1503)は、下位ノードの値から上位ノードの値を計算し、偽になるノードを黒塗りで印づけた例である。左側の3つのリーフノードの値は真であり、最右側のリーフノードの値は偽であり、これらをAND分岐で束ねたルートノードの値は下位ノードの値の論理積であることから偽であり、黒塗りで印づけられている。
図15の(4:S1504)は、値が真となるノードを削除した例であり、図15の(3)における2つのルートノードと最右側のリーフノードだけがグラフとして残っている。
図15の(5:S1505)は、図15の(4)において下位ノードが1つだけのノードをその下位ノードと置換した例である。図15の(5)のAND/ORグラフに相当とする論理式の否定形が、求める違反条件“NOT w≦10”となる。
(違反発生最弱事前条件と違反防止事前条件との生成)
図16は、本実施形態に係る処理における違反条件から違反発生最弱事前条件と違反防止事前条件とを生成する手順1600を例示する図である。図16の手順1600は、違反条件発生最弱事前条件を生成する手順1610と、違反防止事前条件を生成する手順1620とを有する。
違反条件発生最弱事前条件を生成する手順1610においては、まず、図5の規則aにより、違反条件発生最弱事前条件を表す式“wp(v:=v+1;w:=v+1,NOT w≦10)”を立てる。次に、第1引数が実行文の列になっているので、列を分解する図5の規則fを用いて式“wp(v:=v+1,wp(w:=v+1,NOT w≦10)”を得る。次に、第2引数から図5の規則gを用いて述語変換子wpを取り除き、式“wp(v:=v+1,NOT v+1≦10)”を得る。さらに、図5の規則gを用いてwpを取り除くと、違反条件最弱事前条件として“NOT v+1+1=v+2≦10”を得る。
違反防止事前条件を生成する手順1620においては、図5の規則hを用いて、事前記違反条件最弱事前条件の否定形として違反防止事前条件“v≦8”を得る。
(修正された形式仕様データ)
図17は、本実施形態に係る処理における違反防止事前条件を用いて修正された形式仕様データ1700を例示する図である。
図17においては、図13の処理内容1330について、処理後に不変条件を成立させるために、元の事前条件“v≦9”を、図16で得た違反防止事前条件“v≦8”と修正を行って、事前条件1713を有する形式仕様データ1700を得る。
本実施形態によれば、複数の処理を含むスピーカ音量制御において、モデル検査法により得られる反例だけから、制約への違反が起きたことを示す違反条件を生成し、違反条件から制約への違反を起こさないようにするための違反防止事前条件を生成する。したがって、スピーカ音量制御において、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を簡単に行うことができる。
[第5実施形態]
次に、本発明の第5実施形態に係る情報処理装置の処理について説明する。本実施形態に係る事前条件生成装置としての情報処理装置の処理は、上記第2実施形態の処理を具体的な図書館の図書管理処理に適用した例を示す。本実施形態では、図書館の図書管理処理において、形式仕様データとモデル検査法の反例とから生成した違反条件から、違反発生最弱事前条件と違反防止事前条件とを生成し、違反防止事前条件を用いて修正された形式仕様データを生成する。その他の構成および動作は、第2実施形態と同様であるため、その詳しい説明を省略する。
《処理の遷移図》
図18は、本実施形態に係る処理における遷移1800を示す遷移図である。図18は、図書館における図書管理の処理を示している。本実施形態においては、第3実施形態や第4実施形態のような数値条件ではなく、論理条件により処理が制御される。
図18の遷移図の状態は、ユーザの未登録1801と、登録済み1802と、本の貸出予約1803と、本の貸出1804と、ユーザの登録抹消1805と、を含む。各状態間の遷移は矢印で示されている。
以下、本実施例では、登録済み1802から登録抹消1805へと遷移する、登録抹消処理における違反防止事前条件の生成について説明するが、これに限定されず本実施形態は適用可能である。
(形式仕様データ)
図19は、本実施形態に係る処理における形式仕様データ1900を例示する図である。以下、図19を参照して、形式仕様データに含まれる不変条件および処理内容について具体的に説明する。
図19の上部は、不変条件1901を例示するものであり、“会員のみに本を貸し出す(逆に言えば、非会員には本を貸出しない)”を不変条件としている。
図19の下部は、処理内容1910を例示するものである。ここで、処理内容1910は、“会員登録の抹消”という処理に関するデータ1911と、“会員IDが登録済み"という事前条件1913と、“会員IDの抹消処理”をする実行内容1914と、“会員抹消”という事後条件1325を有している。
(モデル検査による反例)
図20は、本実施形態に係る処理におけるモデル検査による反例2000を例示する図である。なお、モデル検査による反例は無数存在するが、図20には、その中で最も弱い反例(条件が真から偽に移る境界の反例)が、状態遷移および変数とその値で示されている。
図20は、図18の登録抹消を行う前の状態(事前状態2001)において、抹消する会員の会員IDが登録されていて、本の貸出や予約が有ることを、例示的に示している。また、図20は、図18の抹消処理を行った後の状態(事後状態2002)において登録抹消されて非会員になったにも関わらず、その会員に本が貸し出されている、あるいは貸出が予約されていることを、例示的に示している。事後状態2002では非会員が本を貸出または予約しているために、図19に示した不変条件1901は成立しない。すなわち、図20は図19に示した不変条件1901への反例である。
(違反条件の生成)
図21は、本実施形態に係る処理における形式仕様データとモデル検査法の反例とから違反条件を生成する手順2100を例示する図である。図21を参照して、図20に例示した反例2000から違反条件を生成する具体的を説明する。
図21の(1:S2101)は、不変条件“貸出無し AND 抹消”と“予約無し AND 抹消”とを、部分論理式“貸出無し”、“抹消”、“予約無し”、および、“抹消”のそれぞれにあたるリーフノードと、これらのリーフノードをAND分岐で束ねたルートノードからなるAND/ORグラフとして表現した例である。
図21の(2:S2102)は、各リーフノードについて、その対応する部分論理式が貸出有りや予約有りによって偽になるリーフノードを黒塗りで印づけた例である。
図21の(3:S2103)は、下位ノードの値から上位ノードの値を計算し、偽になるノードを黒塗りで印づけた例である。抹消のリーフノードの値は真であり、貸出有りと予約有りのリーフノードの値は偽であり、これらをAND分岐で束ねたルートノードの値は下位ノードの値の論理積であることから偽であり、黒塗りで印づけられている。
図21の(4:S2104)は、値が真となるノードを削除した例であり、図21の(3)における3つのルートノードと貸出無しおよび予約無しのリーフノードとがグラフとして残っている。
図21の(5:S2105)は、図21の(4)において下位ノードが1つだけのノードをその下位ノードと置換した例である。図21の(5)のAND/ORグラフに相当とする論理式の否定形が、求める違反条件“NOT (貸出無し AND 予約無し)”となる。
(違反発生最弱事前条件と違反防止事前条件との生成)
図22は、本実施形態に係る処理における違反条件から違反発生最弱事前条件と違反防止事前条件とを生成する手順2200を例示する図である。図22の手順2200は、違反条件発生最弱事前条件を生成する手順2210と、違反防止事前条件を生成する手順2220とを有する。
違反条件発生最弱事前条件を生成する手順2210においては、まず、図5の規則aにより、違反条件発生最弱事前条件を表す式“wp(抹消,NOT (貸出無し AND 予約無し))”を立てる。次に、図5の規則gを用いてwpを取り除くと、違反条件最弱事前条件として“NOT (貸出無し AND 予約無し)”を得る。
違反防止事前条件を生成する手順2220においては、図5の規則hを用いて、事前記違反条件最弱事前条件の否定形として違反防止事前条件“貸出無し AND 予約無し”を得る。
(修正された形式仕様データ)
図23は、本実施形態に係る処理における違反防止事前条件を用いて修正された形式仕様データ2300を例示する図である。
図23においては、図19の処理内容1910について、処理後に不変条件を成立させるために、元の事前条件“会員IDが登録済み”に、図22で得た違反防止事前条件“貸出無し AND 予約無し”を論理積として追加する修正を行う。そして、新たな事前条件2313を有する形式仕様データ2300を得る。
本実施形態によれば、数値条件ではない図書館の図書管理処理において、モデル検査法により得られる反例だけから、制約への違反が起きたことを示す違反条件を生成し、違反条件から制約への違反を起こさないようにするための違反防止事前条件を生成する。したがって、図書管理処理において、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を簡単に行うことができる。
[第6実施形態]
次に、本発明の第6実施形態に係る情報処理装置について説明する。本実施形態に係る事前条件生成装置としての情報処理装置は、上記第2実施形態と比べると、モデル検査実行部や出力処理部を情報処理装置の外部に有する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、その詳しい説明を省略する。
《情報処理装置の機能構成》
図24は、本実施形態に係る情報処理装置2410の機能構成を示すブロック図である。なお、図24において、第2実施形態の図2と同様の機能要素には同じ参照番号を付して、詳細な説明は省略する。
図24の情報処理装置2410は、読込処理部2411と、違反条件生成部213と、事前条件生成部214とを備え、図2に示す情報処理装置210が有する機能のうち、モデル検査実行部212と出力処理部215を外部に配置したものである。
なお、図24においては、モデル検査実行部212と出力処理部215、および、形式仕様データDB220と違反防止事前条件DB230は、ネットワーク2420を介して情報処理装置2410に接続する構成を示している。これら外部機能要素は、1つの装置に含まれていてもそれぞれ別個の複数装置に分散されていてもよい。また、ネットワーク2420を介した接続ではなく、専用回線あるいは有線接続されていてもよい。
《情報処理装置の処理手順》
図25は、本実施形態に係る情報処理装置2410の処理手順を示すフローチャートである。なお、図25において、第2実施形態の図3と同様のステップには同じステップ番号を付して、説明は省略する。
読込処理部2411は形式仕様データDB220から形式仕様データを読み込み、モデル検査実行部212からモデル検査による反例も読み込む(ステップS2501)。以下、図3と同様の、違反条件の生成(S307)と違反発生最弱事前条件の生成(S309)と違反防止事前条件の生成(S311)とを行なう。
本実施形態によれば、最小の構成により、モデル検査法により得られる反例だけから、制約への違反が起きたことを示す違反条件を生成し、違反条件から制約への違反を起こさないようにするための違反防止事前条件を生成する。したがって、簡単な構成により、モデル検査法により正例を得るための特別な条件の記述がない形式手法による仕様であっても、事前条件の修正を容易に行うことができる。
[他の実施形態]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
[実施形態の他の表現]
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成手段と、
前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成手段と、
を備える情報処理装置。
(付記2)
前記違反条件生成手段は、前記形式仕様データの制約のうち前記反例において偽となった制約をAND/ORグラフとして表現し、前記反例において制約への違反を起こした状態における変数を用いて、前記AND/ORグラフで偽となるノードを計算し、偽となるノードだけで構成される新たなAND/ORグラフを生成し、生成された前記新たなAND/ORグラフを論理式として表現した論理式の否定形として、違反条件を生成する付記1に記載の情報処理装置。
(付記3)
前記事前条件生成手段は、前記違反条件と、前記形式仕様データに含まれる処理の実行内容のうち、処理の開始状態から違反を起こした状態までの実行内容とから、処理の開始状態においてその処理の実行後に前記制約への違反が起こるならば真となる条件である違反発生最弱事前条件を生成する付記1または2に記載の情報処理装置。
(付記4)
前記事前条件生成手段は、前記処理の実行後に前記制約への違反が起きないならば真となる条件である違反防止事前条件を、前記違反発生最弱事前条件の否定形として生成する付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記形式仕様データを読み込む読込処理手段と、
読み込んだ前記形式仕様を入力としてモデル検査を行い制約への前記反例を出力するモデル検査実行手段と、
をさらに備え、
前記違反条件生成手段は、前記形式仕様データの検査結果の前記反例に基づいて、前記違反条件を生成する付記1乃至4のいずれか1項に記載の情報処理装置。
(付記6)
前記形式仕様データは、さらに、前記処理の開始状態の制約を記述した事前条件と前記処理の実行後の制約を記述した事後条件とを含む付記1乃至5のいずれか1項に記載の情報処理装置。
(付記7)
前記事前条件生成手段により生成された前記違反防止事前条件あるいは前記違反発生最弱事前条件を出力する出力処理手段を、さらに備える付記1乃至6のいずれか1項に記載の情報処理装置。
(付記8)
複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成ステップと、
前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成ステップと、
を含む情報処理方法。
(付記9)
複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成ステップと、
前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成ステップと、
をコンピュータに実行させる情報処理プログラム。

Claims (9)

  1. 複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成手段と、
    前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成手段と、
    を備える情報処理装置。
  2. 前記違反条件生成手段は、前記形式仕様データの制約のうち前記反例において偽となった制約をAND/ORグラフとして表現し、前記反例において制約への違反を起こした状態における変数を用いて、前記AND/ORグラフで偽となるノードを計算し、偽となるノードだけで構成される新たなAND/ORグラフを生成し、生成された前記新たなAND/ORグラフを論理式として表現した論理式の否定形として、違反条件を生成する請求項1に記載の情報処理装置。
  3. 前記事前条件生成手段は、前記違反条件と、前記形式仕様データに含まれる処理の実行内容のうち、処理の開始状態から違反を起こした状態までの実行内容とから、処理の開始状態においてその処理の実行後に前記制約への違反が起こるならば真となる条件である違反発生最弱事前条件を生成する請求項1または2に記載の情報処理装置。
  4. 前記事前条件生成手段は、前記処理の実行後に前記制約への違反が起きないならば真となる条件である違反防止事前条件を、前記違反発生最弱事前条件の否定形として生成する請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記形式仕様データを読み込む読込処理手段と、
    読み込んだ前記形式仕様を入力としてモデル検査を行い制約への前記反例を出力するモデル検査実行手段と、
    をさらに備え、
    前記違反条件生成手段は、前記形式仕様データの検査結果の前記反例に基づいて、前記違反条件を生成する請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記形式仕様データは、さらに、前記処理の開始状態の制約を記述した事前条件と前記処理の実行後の制約を記述した事後条件とを含む請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記事前条件生成手段により生成された前記違反防止事前条件あるいは前記違反発生最弱事前条件を出力する出力処理手段を、さらに備える請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成ステップと、
    前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成ステップと、
    を含む情報処理方法。
  9. 複数の処理に含まれるそれぞれの前記処理の処理内容の記述を含む形式仕様データの検査結果として、前記複数の処理に課される制約への違反を見つけた場合に、処理の開始状態から前記制約に違反する状態までの遷移列と各状態における変数の値との集まりである反例に基づいて、前記制約に違反する状態において前記制約への違反が起きた条件である違反条件を生成する違反条件生成ステップと、
    前記形式仕様データと前記違反条件とに基づいて、処理の開始状態における、処理の実行後に前記制約への違反が起こる条件としての違反発生最弱事前条件と、当該処理の実行後に前記制約への違反が起きない条件としての違反防止事前条件とを生成する事前条件生成ステップと、
    をコンピュータに実行させる情報処理プログラム。
JP2013031588A 2013-02-20 2013-02-20 情報処理装置、情報処理方法および情報処理プログラム Pending JP2014160435A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013031588A JP2014160435A (ja) 2013-02-20 2013-02-20 情報処理装置、情報処理方法および情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013031588A JP2014160435A (ja) 2013-02-20 2013-02-20 情報処理装置、情報処理方法および情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2014160435A true JP2014160435A (ja) 2014-09-04

Family

ID=51612069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013031588A Pending JP2014160435A (ja) 2013-02-20 2013-02-20 情報処理装置、情報処理方法および情報処理プログラム

Country Status (1)

Country Link
JP (1) JP2014160435A (ja)

Similar Documents

Publication Publication Date Title
Campos et al. Model checking interactor specifications
Haber et al. Engineering delta modeling languages
US8719770B2 (en) Verifying programming artifacts generated from ontology artifacts or models
Jörges et al. A constraint-based variability modeling framework
JP5005510B2 (ja) ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム
Pandit et al. Using Ontology Design Patterns To Define SHACL Shapes.
Megha et al. Method to resolve software product line errors
Grønmo et al. Comparison of three model transformation languages
Bender et al. Signature required: Making Simulink data flow and interfaces explicit
Chen et al. Optimizing the product derivation process
Scandurra et al. Functional requirements validation by transforming use case models into Abstract State Machines
AU2016201776A1 (en) Functional use-case generation
Rutle et al. A user-friendly tool for model checking healthcare workflows
Mäder et al. Ready-to-use traceability on evolving projects
Reger Better Proof Output for Vampire.
Reynolds A tableau for bundled CTL
JP2014160435A (ja) 情報処理装置、情報処理方法および情報処理プログラム
Srivastava et al. Cause effect graph to decision table generation
Vandevelde et al. Interactive feature modeling with background knowledge for validation and configuration
JP2010238057A (ja) テスト制約抽出装置、方法およびプログラム
Sheng et al. Mechanized semantics and refinement of UML-Statecharts
Roldán et al. An ontology for specifying and tracing requirements engineering artifacts and Test Artifacts
Pandit et al. An Argument for Generating SHACL Shapes from ODPs
Nguyen et al. On analyzing rule-dependencies to generate test cases for model transformations
Büttner et al. Realizing graph transformations by pre-and postconditions and command sequences