(57)【要約】論理式生成装置は、システムの性質を検証するときに用いられる時相論理式を生成するものであって、シーケンス図解析手段と、論理式構成手段と、を具備している。シーケンス図解析手段は、システムを構成する複数のオブジェクトのやりとりが座標領域に記述されたシーケンス図を参照して、複数のオブジェクトのやりとりの順序関係を表す順序情報を生成する。論理式構成手段は、順序情報に基づいて、システムの性質を表す時相論理式を生成する。【特許請求の範囲】
【請求項１】
システムの性質を検証するときに用いられる時相論理式を生成する論理式生成装置であって、
前記システムを構成する複数のオブジェクトのやりとりが座標領域に記述されたシーケンス図を参照して、前記複数のオブジェクトのやりとりの順序関係を表す順序情報を生成するシーケンス図解析手段と、
前記順序情報に基づいて、前記システムの性質を表す前記時相論理式を生成する論理式構成手段と、
を具備する論理式生成装置。
【請求項２】
順序情報格納手段
を更に具備し、
前記シーケンス図解析手段は、前記順序情報を前記順序情報格納手段に格納し、
前記論理式構成手段は、前記順序情報格納手段に格納された前記順序情報に基づいて、前記時相論理式を生成し、出力装置に出力する、
請求の範囲１に記載の論理式生成装置。
【請求項３】
前記システムに対応する検証モデルが与えられる検証モデル修飾手段
を更に具備し、
前記検証モデル修飾手段は、前記順序情報に基づいて、前記検証モデルに対して、前記時相論理式が参照する述語を扱えるように修飾を施した修飾後検証モデルを生成する、
請求の範囲２に記載の論理式生成装置。
【請求項４】
順序情報格納手段
を更に具備し、
前記シーケンス図解析手段は、前記順序情報を前記順序情報格納手段に格納し、
前記検証モデル修飾手段は、前記順序情報格納手段に格納された前記順序情報に基づいて、前記検証モデルに対して修飾を施した修飾後検証モデルを生成し、出力装置に出力する、
請求の範囲３に記載の論理式生成装置。
【請求項５】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求の範囲１に記載の論理式生成装置。
【請求項６】
システムの性質を検証するときに用いられる時相論理式をコンピュータにより生成する論理式生成方法であって、
前記システムを構成する複数のオブジェクトのやりとりが座標領域に記述されたシーケンス図を参照して、前記複数のオブジェクトのやりとりの順序関係を表す順序情報を生成する第１ステップと、
前記順序情報に基づいて、前記システムの性質を表す前記時相論理式を生成する第２ステップと、
を具備する論理式生成方法。
【請求項７】
前記第１ステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記第２ステップは、前記順序情報格納手段に格納された前記順序情報に基づいて、前記時相論理式を生成し、出力装置に出力するステップを含む、
請求の範囲６に記載の論理式生成方法。
【請求項８】
前記システムに対応する検証モデルが与えられる第３ステップ
を更に具備し、
前記第３ステップは、前記順序情報に基づいて、前記検証モデルに対して、前記時相論理式が参照する述語を扱えるように修飾を施した修飾後検証モデルを生成するステップを含む、
請求の範囲７に記載の論理式生成方法。
【請求項９】
前記第１ステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記第３ステップは、前記順序情報格納手段に格納された前記順序情報に基づいて、前記検証モデルに対して修飾を施した修飾後検証モデルを生成し、出力装置に出力するステップを含む、
請求の範囲８に記載の論理式生成方法。
【請求項１０】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求の範囲６に記載の論理式生成方法。
【請求項１１】
システムの性質を検証するときに用いられる時相論理式をコンピュータに生成させるための記録媒体であって、
前記システムを構成する複数のオブジェクトのやりとりが座標領域に記述されたシーケンス図を参照して、前記複数のオブジェクトのやりとりの順序関係を表す順序情報を生成する第１ステップと、
前記順序情報に基づいて、前記システムの性質を表す前記時相論理式を生成する第２ステップと、
の各ステップを前記コンピュータに実行させるコンピュータプログラムが記憶され、前記コンピュータプログラムを前記コンピュータが読み取り可能な記録媒体。
【請求項１２】
前記第１ステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記第２ステップは、前記順序情報格納手段に格納された前記順序情報に基づいて、前記時相論理式を生成し、出力装置に出力するステップを含む、
請求の範囲１１に記載の記録媒体。
【請求項１３】
前記システムに対応する検証モデルが与えられる第３ステップ
を更に前記コンピュータに実行させるための前記コンピュータプログラムが記憶され、
前記第３ステップは、前記順序情報に基づいて、前記検証モデルに対して、前記時相論理式が参照する述語を扱えるように修飾を施した修飾後検証モデルを生成するステップを含む、
請求の範囲１２に記載の記録媒体。
【請求項１４】
前記第１ステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記第３ステップは、前記順序情報格納手段に格納された前記順序情報に基づいて、前記検証モデルに対して修飾を施した修飾後検証モデルを生成し、出力装置に出力するステップを含む、
請求の範囲１３に記載の記録媒体。
【請求項１５】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求の範囲１１に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデル検査で使用する時相論理式を生成する論理式生成装置、及び論理式生成方法に関する。この出願は、２００７年３月６日に出願された特許出願番号２００７−０５５６３２号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。
【背景技術】
【０００２】
モデル検査を用いてシステムを検証する方法が提案されている。【０００３】
モデル検査技術を用いる際にはシステムに対応した検証モデルを作成する。検証モデルはモデル検査専用言語を用いて作成する。検証モデルはモデル検査器によって検証される。【０００４】
モデル検査器とは、検証モデルと検査項目とを入力したときに計算機（コンピュータ）上でモデル検査を自動的に行うソフトウェアツールである。【０００５】
検査項目とは、システムに関して検証したい性質を記述するものである。この検査項目は、時相論理式を用いて記述される。【０００６】
時相論理式とは、述語論理式に時間の概念を取り入れた論理式であり、システムの時系列に関わる性質を表すことができるものである。【０００７】
従来では、モデル検査技術を用いてシステムを検証するためには、検証するシステムの性質を示す時相論理式を検証モデルの記述方法に依存して記述しなければならなかった。その方法として、例えば、“Ｇｅｒａｒｄ  Ｊ．Ｈｏｌｚｍａｎｎ著「Ｔｈｅ  Ｓｐｉｎ  Ｍｏｄｅｌ  Ｃｈｅｃｋｅｒ：：  Ｐｒｉｍｅｒ  ａｎｄ  ｒｅｆｅｒｅｎｃｅ  Ｍａｎｕａｌ」Ａｄｄｉｓｏｎ  Ｗｅｓｌｅｙ、２００３年９月”には、このような検証モデルの記述言語Ｐｒｏｍｅｌａと、Ｐｒｏｍｅｌａで記述した検証モデルの性質と、をＬＴＬ（Ｌｉｎｅａｒ  Ｔｅｍｐｏｒａｌ  Ｌｏｇｉｃ；ＬＴＬは、時相論理式に対応する複数のクラスのうちのひとつのクラス）で記述することが記載されている。しかし、このような方法では、検証する性質の記述が特定の論理式のクラスに依存した複雑なものとなり、検証したい性質を適切に記述するのが難しいという問題がある。【０００８】
また、従来から、検証する性質を図式で表現する方法も提案されている。その方法として、例えば、“Ｇｅｒａｒｄ  Ｊ．Ｈｏｌｚｍａｎｎ  ａｎｄ  Ｍａｒｇａｒｅｔ  Ｈ．Ｓｍｉｔｈ，Ａｕｔｏｍａｔｉｎｇ  Ｓｏｆｔｗａｒｅ  Ｆｅａｔｕｒｅ  Ｖｅｒｉｆｉｃａｔｉｏｎ，ｐ７２−８７，Ｂｅｌｌ  Ｌａｂｓ  Ｔｅｃｈｎｉｃａｌ  Ｊｏｕｒｎａｌ，Ｖｏｌ．５，Ｉｓｓｕｅ２，Ａｐｒｉｌ／Ｊｕｎｅ２０００”に記載されている。しかし、この方法では、特定のモデル検査ツールに依存したものであり、表現できる性質も限定的であるという問題がある。
【発明の開示】
【０００９】
本発明の課題は、検証したいシステムの性質を適切に記述した時相論理式を生成することができる論理式生成装置、及び論理式生成方法を提供することにある。
【００１０】
本発明の論理式生成装置は、システムの性質を検証するときに用いられる時相論理式を生成するものであって、シーケンス図解析手段と、論理式構成手段と、を具備している。シーケンス図解析手段は、システムを構成する複数のオブジェクトのやりとりが座標領域に記述されたシーケンス図を参照して、複数のオブジェクトのやりとりの順序関係を表す順序情報を生成する。論理式構成手段は、順序情報に基づいて、システムの性質を表す時相論理式を生成する。
【図面の簡単な説明】
【００１１】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。【００１２】
【図１】図１は、本発明の第１実施形態による論理式生成装置１の構成を示している。
【図２】図２は、本発明の第１実施形態による論理式生成装置１の動作として、シーケンス図解析部１１の動作を示すフローチャートである。
【図３】図３は、本発明の第１実施形態による論理式生成装置１の動作として、論理式構成部１３の動作を示すフローチャートである。
【図４】図４は、本発明の第２実施形態による論理式生成装置１の構成を示している。
【図５】図５は、本発明の第２実施形態による論理式生成装置１の動作として、検証モデル修飾部２６の動作を示すフローチャートである。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、本発明の論理式生成装置について詳細に説明する。【００１４】
（第１実施形態）
図１は、本発明の第１実施形態による論理式生成装置１の構成を示している。論理式生成装置１は、コンピュータ２を具備している。コンピュータ２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である実行手段（実行部）４と、記録媒体である記憶手段（記憶部）３と、を具備している。記憶部３には、コンピュータ２に実行させるためのコンピュータプログラムが記憶されている。実行部４は、コンピュータ２の起動時などにコンピュータプログラムを記憶部３から読み取って実行する。【００１５】
論理式生成装置１は、更に、ソフトウェアである検証支援ツール５を具備している。検証支援ツール５は、記憶部３にインストールされる。この検証支援ツール５は、コンピュータプログラム６を備えている。実行部４は、コンピュータプログラム６を記憶部３から読み取り可能であり、コンピュータプログラム６は、実行部４によって実行される。【００１６】
コンピュータプログラム６は、システムの性質をモデル検査技術によって検証するときに用いられる時相論理式１４を生成するものであり、シーケンス図解析手段（シーケンス図解析部）１１と、順序情報格納手段（順序情報格納部）１２と、論理式構成手段（論理式構成部）１３とを含んでいる。【００１７】
シーケンス図解析部１１には、シーケンス図１０が入力される（与えられる）。シーケンス図１０は、オブジェクト指向技術の標準化団体であるＯＭＧ（Ｏｂｊｅｃｔ  Ｍａｎａｇｅｍｅｎｔ  Ｇｒｏｕｐ）によって標準化されたＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される。従って、シーケンス図１０は、ソフトウェア開発者にとって理解しやすい上に記述しやすい。【００１８】
ＵＭＬは、言語と言ってもＪａｖａ（登録商標）などのプログラミング言語のような文字による表現形式を表すものではない。ＵＭＬとは、矩形や楕円など複数の図形を組み合わせて、システムの構成や動き方などを表現するダイヤグラムによる表現形式を表すものである。このため、ソフトウェア開発者は、表現形式を容易に把握することができ、ＵＭＬ仕様に基づいてシーケンス図１０を作成することができる。【００１９】
上記のシーケンス図１０はＵＭＬのダイヤグラムのひとつである。シーケンス図１０は、システムを構成する複数のオブジェクトのやりとりが、直交する２軸で定められる座標領域に記述されている。【００２０】
このシーケンス図１０は、複数のフラグメント、複数のライフライン、複数のメッセージ送受信端を含んでいる。複数のフラグメント、複数のライフライン、複数のメッセージ送受信端は、それぞれ、以下の要件を満たすものとする。
・複数のライフラインは、座標の水平方向に伸びる軸（ｘ軸）に沿って、並行に並んでいる。複数のライフラインの各々は、垂直方向（ｙ軸方向）に延びている。
・ライフラインは、ライフライン名（＝オブジェクト名）を含んでいる。
・複数のメッセージ送受信端の各々は、メッセージ名、送受信区別、絶対位置（＝ｙ座標）を含んでいる。メッセージ送受信端は、複数のライフラインのうちの１つのライフラインのある点上に置かれるので、その点のｙ座標がそのメッセージ送受信端の絶対位置となる。また、メッセージ送受信端は、そのメッセージ送受信端を識別するためのメッセージ送受信端名を更に含んでいる。
・複数のフラグメントの各々は、フラグメント種類（ｓｄ／ｓｔｒｉｃｔ、ａｌｔ、ｓｅｑ）、フラグメント名、絶対位置（＝ｙ座標）を含んでいる。フラグメントは、メッセージ送受信端を含んでいる。
・シーケンス図１０全体は、それがフラグメントで囲まれていなかった場合、フラグメント種類ｓｄのフラグメントで囲まれていると解釈される。ここで、フラグメント、ライフライン、メッセージ送受信端の個数は、０以上任意個を表している。例えば、フラグメントはなくてもよいし、１個でもよい。フラグメントが０個の場合、即ち、シーケンス図１０全体がフラグメントで囲まれていなかった場合、フラグメント種類ｓｄのフラグメントで囲まれていると解釈されることにより、フラグメントの個数は１個と同等になる。【００２１】
シーケンス図解析部１１は、入力されたシーケンス図１０に含まれる複数のフラグメントを参照して、それぞれ、複数のフラグメントに含まれるフラグメント名もしくはメッセージ送受信端名を絶対位置の小さいものから順に取り出し、フラグメント種類に従って必要な文字列を追加しながら、順序情報を生成する。即ち、シーケンス図解析部１１は、シーケンス図１０を参照して、複数のオブジェクトのやりとりの順序関係を表す順序情報を生成する。この順序情報は、複数のオブジェクトのやりとりをそれぞれ時系列で表す複数の基本順序情報を含んでいる。【００２２】
順序情報は、以下のように構成される。
・順序情報＝フラグメント順序情報＊（＊は複数を表す）、
・フラグメント順序情報＝フラグメント名＋（基本順序情報＋デリミタ）＊、
・基本順序情報＝メッセージ送受信端名あるいはフラグメント名の正規表現列の集合、
なお、デリミタ（ｄｅｌｉｍｉｔｅｒ）は、基本順序情報に含まれる要素を他の基本順序情報に含まれる要素と区別するために用いられる区切りを表し、以下“￥ｎ”で記述する。【００２３】
順序情報格納部１２は、シーケンス図解析部１１により生成された順序情報を保存（格納）する。【００２４】
論理式構成部１３は、順序情報格納部１２に格納された順序情報を参照し、順序情報に含まれる複数の基本順序情報のそれぞれに対して、その要素種類（メッセージ送受信端名、“｜”、フラグメント名、“￥ｎ”）毎に要素や論理記号を追加し、時相論理式１４を構成する。即ち、論理式構成部１３は、順序情報格納部１２に格納された順序情報に基づいて、システムの性質を表す時相論理式１４を生成する。【００２５】
図２、図３は、本発明の第１実施形態による論理式生成装置１の動作として、それぞれ、シーケンス図解析部１１、論理式構成部１３の動作を示すフローチャートである。【００２６】
まず、シーケンス図解析部１１の動作について説明する。【００２７】
シーケンス図解析部１１は、入力されたシーケンス図１０を参照して、複数のフラグメントに対する処理が全て終了するまで（図２のステップＡ１）、フラグメント毎に以下の処理を繰り返して、複数の基本順序情報を含むフラグメント順序情報を生成する。【００２８】
まず、シーケンス図解析部１１は、複数のフラグメントのうちの、あるフラグメント（例えば１番目のフラグメント）のフラグメント名を該当フラグメント名とし、上記フラグメントに対する基本順序情報をＮＵＬＬとする（ステップＡ２）。フラグメント種類を調べ（ステップＡ３）、フラグメント種類に従って以下の処理をする。【００２９】
フラグメント種類がｓｄもしくはｓｔｒｉｃｔである。この場合、シーケンス図解析部１１は、フラグメント中のメッセージ送受信端名又はフラグメント名を、座標の小さなものから順に取り出し、オブジェクト間のメッセージ送受信に関する要素として、上記基本順序情報にアペンドする（ステップＡ４）。これにより、フラグメント種類に従った処理を終了する。【００３０】
フラグメント種類がａｌｔである。この場合、シーケンス図解析部１１は、まず、第１オペランド中のメッセージ送受信端名、あるいはフラグメント名を、座標の小さなものから順に取り出し、オブジェクト間のメッセージ送受信に関する要素として、上記基本順序情報にアペンドする（ステップＡ５）。その後、オブジェクト間のメッセージ送受信に関する要素として、“｜”を上記基本順序情報にアペンドする（ステップＡ６）。更に、第２オペランド中のメッセージ送受信端名、あるいはフラグメント名を、座標の小さなものから順に取り出し、オブジェクト間のメッセージ送受信に関する要素として、上記基本順序情報にアペンドする（ステップＡ７）。これにより、フラグメント種類に従った処理を終了する。【００３１】
フラグメント種類がｓｅｑである。この場合、シーケンス図解析部１１は、第１オペランド中のメッセージ送受信端名、あるいはフラグメント名を、座標の小さなものから順に取り出し、オブジェクト間のメッセージ送受信に関する要素として、上記基本順序情報にアペンドし（ステップＡ８）、その後、上記基本順序情報に含まれる要素を他の基本順序情報に含まれる要素と区別するために、オブジェクト間のメッセージ送受信に関する要素として、“￥ｎ”を上記基本順序情報にアペンドする（ステップＡ９）。更に、第２オペランド中のメッセージ送受信端名、あるいはフラグメント名を、座標の小さなものから順に取り出し、オブジェクト間のメッセージ送受信に関する要素として、上記基本順序情報にアペンドする（ステップＡ１０）。更に、フラグメントに含まれるライフラインに対する処理が終了するまで（ステップＡ１１−ＮＯ）、ライフライン毎に、上記基本順序情報に含まれる要素を他の基本順序情報に含まれる要素と区別するために、“￥ｎ”を上記基本順序情報にアペンドし（ステップＡ１２）、ライフライン上のメッセージ送受信端名あるいはフラグメント名を順に取り出し、オブジェクト間のメッセージ送受信に関する要素として、上記基本順序情報にアペンドする（ステップＡ１３）。フラグメントに含まれるライフラインに対する処理が終了した場合（ステップＳ１１−ＹＥＳ）、フラグメント種類に従った処理を終了する。【００３２】
シーケンス図解析部１１は、フラグメント種類に従った処理の終了後、順序情報にフラグメント名と上記基本順序情報をアペンドする（ステップＡ１４）。【００３３】
ここで、複数のフラグメントに対する処理が全て終了してない（ステップＡ１−ＮＯ）。この場合、シーケンス図解析部１１は、シーケンス図１０を参照して、複数のフラグメントのうちの、上記フラグメントの次のフラグメントのフラグメント名と、次のフラグメントに対する基本順序情報とについて、上述のステップＡ２と、ステップＡ３と、ステップＡ４、Ａ５〜Ａ７、Ａ８〜Ａ１３のいずれかと、ステップＡ１４と、を実行する。【００３４】
複数のフラグメントに対する処理が全て終了した場合（ステップＡ１−ＹＥＳ）、シーケンス図解析部１１は、複数のフラグメント順序情報を含む順序情報を順序情報格納部１２に格納する。【００３５】
次に、論理式構成部１３の動作について説明する。【００３６】
論理式構成部１３は、順序情報格納部１２に格納された順序情報（フラグメント順序情報）を参照して、複数の基本順序情報に対する処理が全て終了するまで（図３のステップＢ１）、基本順序情報毎に以下を繰り返して、時相論理式１４を生成する。【００３７】
まず、論理式構成部１３は、複数の基本順序情報のうちの、ある基本順序情報（例えば１番目の基本順序情報）に対する論理式をＮＵＬＬとする（ステップＢ２）。その後、上記基本順序情報に含まれる全ての要素に対する処理が終了するまで（ステップＢ３）、要素種類を調べ（ステップＢ４）、要素種類に従って以下の処理をする。【００３８】
要素種類がメッセージ送受信端名である。この場合、論理式構成部１３は、メッセージ送受信端名を表す要素を上記論理式にアペンドし（ステップＢ５）、“ならいつかは”に相当する論理表現（→＜＞等）を上記論理式にアペンドする（ステップＢ６）。【００３９】
要素種類が“｜”である。この場合、論理式構成部１３は、“｜”を表す要素を上記論理式にアペンドする（ステップＢ７）。【００４０】
要素種類がフラグメント名である。この場合、論理式構成部１３は、本処理を再帰的に呼び、得られた論理式を（）で囲む。即ち、次のフラグメントから続く基本順序情報に対してステップＢ１から始まる処理を行い、処理が終わりまで行き着けば、得られた論理式を（）で囲む。その後、（）で囲まれた論理式を上記論理式にアペンドし（ステップＢ８）、“ならいつかは”に相当する論理表現（→＜＞等）を上記論理式にアペンドする（ステップＢ９）。【００４１】
要素種類が“￥ｎ”の場合、論理式構成部１３は、上記論理式を（）で囲み、“＆＆”を上記論理式にアペンドする（ステップＢ１０）。【００４２】
ここで、上記基本順序情報に含まれる全ての要素に対する処理が終了してない（ステップＢ３−ＮＯ）。この場合、論理式構成部１３は、上記基本順序情報に含まれる残りの要素に対して、上述のステップＢ４と、ステップＢ５〜Ｂ６、Ｂ７、Ｂ８〜Ｂ９、Ｂ１０のいずれかと、を実行する。【００４３】
上記基本順序情報に含まれる全ての要素に対する処理が終了したが（ステップＢ３−ＹＥＳ）、複数の基本順序情報に対する処理が全て終了してない（ステップＢ１−ＮＯ）。この場合、論理式構成部１３は、複数の基本順序情報のうちの、上記基本順序情報の次の基本順序情報に対する論理式について、上述のステップＢ２〜Ｂ１０を実行する。【００４４】
複数の基本順序情報に対する処理が全て終了した場合（ステップＢ１−ＹＥＳ）、論理式構成部１３は、時相論理式１４を出力装置に出力する。【００４５】
本発明の第１実施形態による論理式生成装置１によれば、上述のように、ソフトウェア開発者にとって理解しやすく記述しやすいシーケンス図１０を使用している。シーケンス図１０には、システムを構成する複数のオブジェクトのやりとりが座標領域に記述されている。そこで、シーケンス図解析部１１は、シーケンス図１０を参照して、順序情報を生成する。順序情報は、複数のオブジェクトのやりとりをそれぞれ表す複数の基本順序情報を含み、複数の基本順序情報は、それぞれ、複数のオブジェクト間のメッセージ送受信に関する要素を含んでいる。論理式構成部１３は、順序情報に基づいて、時相論理式１４を生成する。このように、本発明の第１実施形態による論理式生成装置１によれば、シーケンス図１０を用いることにより、検証したいシステムの性質を適切に記述した時相論理式１４を生成することができる。【００４６】
また、本発明の第１実施形態による論理式生成装置１によれば、シーケンス図１０を解析して順序情報を生成するシーケンス図解析部１１と、順序情報を格納する順序情報格納部１２とを、論理式構成部１３から分離した構成としている。このため、生成すべき時相論理式のクラス｛ＬＴＬ（Ｌｉｎｅａｒ  Ｔｅｍｐｏｒａｌ  Ｌｏｇｉｃ）、ＣＴＬ（Ｃｏｍｐｕｔａｔｉｏｎ  Ｔｒｅｅ  Ｌｏｇｉｃ）等｝に応じた論理式構成部を上記の論理式構成部１３として用意することにより、特定の時相論理式のクラスに依存せず、同様の処理で各々のクラスの時相論理式１４を生成することができる。【００４７】
また、本発明の第１実施形態による論理式生成装置１によれば、各々のクラスに対応した時相論理式１４を生成するとき、シーケンス図解析部１１、順序情報格納部１２には手を加えることなく再利用できる。
更に、論理式構成部１３は、直接シーケンス図１０を入力とするのではなく、順序情報格納部１２を参照して論理式を生成するため、入力されるシーケンス図１０の形式がカスタマイズされたり、シーケンス図１０と類似ではあるが異なる形式で性質を与えたりする場合にも、性質に含まれる順序情報を順序情報格納部１２に格納すれば、論理式構成部１３に手を加えることなく再利用できる。【００４８】
（第２実施形態）
第２実施形態では、第１実施形態と重複する説明を省略する。【００４９】
図４は、本発明の第２実施形態による論理式生成装置１の構成を示している。論理式生成装置１内の検証支援ツール５のコンピュータプログラム６は、更に、検証モデル修飾手段（検証モデル修飾部）２６を含んでいる。【００５０】
検証モデル修飾部２６には、システムに対応する検証モデル２５が与えられる。検証モデル修飾部２６は、順序情報格納部１２に格納された順序情報を参照し、順序情報に含まれるメッセージ送受信端名を取り出し、検証モデル２５に対して、メッセージ送受信端名に対応するメッセージ送受信端におけるメッセージにラベルを付与する等の修飾を行い、修飾後検証モデル２７として出力する。即ち、検証モデル修飾部２６は、順序情報格納部１２に格納された順序情報に基づいて、検証モデル２５に対して、時相論理式１４が参照する述語を扱えるように修飾を施した修飾後検証モデル２７を出力する。【００５１】
図５は、本発明の第２実施形態による論理式生成装置１の動作として、検証モデル修飾部２６の動作を示すフローチャートである。検証モデル修飾部２６は、記憶部を備えているものとする。【００５２】
まず、検証モデル修飾部２６は、順序情報格納部１２から順序情報を読み込み（図５のステップＣ１）、順序情報に含まれる全てのメッセージ送受信端名を自身の記憶部に記録する（ステップＣ２）。この時、重複したものは省き、メッセージ送受信端名はユニークになるようにする。次に、検証モデル２５を読み込み（ステップＣ３）、検証モデル２５中のステートメントに対する処理（メッセージにラベルを付与する修飾処理）が終了するまで（ステップＣ４−ＮＯ）、各ステートメントについて、自身で記録したメッセージ送受信端名に対応するメッセージ送受信端におけるメッセージであるか調べ（ステップＣ５）、そうであれば、そのメッセージにラベルを追加する。検証モデル２５中のステートメントに対する処理（修飾処理）が終了した場合（ステップＣ４−ＹＥＳ）、検証モデル２５に対して修飾を施した修飾後検証モデル２７を出力装置に出力する。【００５３】
本発明の第２実施形態による論理式生成装置１によれば、検証モデル修飾部２６は、システムに対応する検証モデル２５を入力し、順序情報に基づいて、検証モデル２５に対して、時相論理式１４が参照する述語を扱えるように修飾を施した修飾後検証モデル２７を生成する。このため、検証モデル２５の書き方に依存した複雑な時相論理式を記述したり、開発者が検証モデル２５自身を修正したりする必要がない。【００５４】
なお、本発明の論理式生成装置及び方法は、例えば、ソフトウェア開発における設計の妥当性を検証するツールにおける検証性質の記述ツールといった用途に適用できる。
【図１】
2008123021.tif 000002
【図２】
2008123021.tif 000003
【図３】
2008123021.tif 000004
【図４】
2008123021.tif 000005
【図５】
2008123021.tif 000006
【手続補正書】
【提出日】平成20年12月26日(2008.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成する論理式生成装置であって、
前記システムを構成する複数のオブジェクト間のメッセージの送受信が記述されたシーケンス図で表現された情報を参照して、前記複数のオブジェクト間のメッセージの送受信の順序を表す順序情報を求めるシーケンス図解析手段と、
前記複数のオブジェクト間のメッセージの送受信に関わるシステムの振舞いを論理式で表現した情報を前記順序に並べ、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成する論理式構成手段と、
を具備する論理式生成装置。
【請求項２】
順序情報格納手段、
を更に具備し、
前記シーケンス図解析手段は、前記順序情報を前記順序情報格納手段に格納し、
前記論理式構成手段は、前記順序情報格納手段に格納された前記順序情報を参照して、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成する、
請求の範囲１に記載の論理式生成装置。
【請求項３】
前記システムに対する検証モデルが与えられる検証モデル修飾手段、
を更に具備し、
前記検証モデル修飾手段は、前記順序情報を参照して、前記複数のオブジェクト間のメッセージの送受信の中から、前記検証モデルに対応するメッセージの送受信を選択し、前記検証モデルに対して、前記対応するメッセージの送受信を捕捉するための修飾を施し、前記時相論理式が参照する述語を扱えるようにした修飾後検証モデルを生成する、
請求の範囲１に記載の論理式生成装置。
【請求項４】
順序情報格納手段、
を更に具備し、
前記シーケンス図解析手段は、前記順序情報を前記順序情報格納手段に格納し、
前記検証モデル修飾手段は、前記順序情報格納手段に格納された前記順序情報を参照して、前記検証モデルに対して前記修飾後検証モデルを生成する、
請求の範囲３に記載の論理式生成装置。
【請求項５】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求の範囲１に記載の論理式生成装置。
【請求項６】
時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成する論理式生成方法であって、
前記システムを構成する複数のオブジェクト間のメッセージの送受信が記述されたシーケンス図で表現された情報を参照して、前記複数のオブジェクト間のメッセージの送受信の順序を表す順序情報を求めるステップと、
前記複数のオブジェクト間のメッセージの送受信に関わるシステムの振舞いを論理式で表現した情報を前記順序に並べ、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成するステップと、
を具備する論理式生成方法。
【請求項７】
前記求めるステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記生成するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成するステップを含む、
請求の範囲６に記載の論理式生成方法。
【請求項８】
前記生成するステップは、
前記順序情報が表す前記複数のオブジェクト間のメッセージの送受信の中から、前記検証モデルに対応するメッセージの送受信を選択するステップと、
与えられる検証モデルに対して、前記対応するメッセージの送受信を捕捉するための修飾を施し、前記時相論理式が参照する述語を扱えるようにした修飾後検証モデルを生成するステップと、を含む、
請求の範囲６に記載の論理式生成方法。
【請求項９】
前記求めるステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記生成するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記検証モデルに対して前記修飾後検証モデルを生成するステップを含む、
請求の範囲８に記載の論理式生成方法。
【請求項１０】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求の範囲６に記載の論理式生成方法。
【請求項１１】
時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報をコンピュータに生成させるための記録媒体であって、
前記システムを構成する複数のオブジェクト間のメッセージの送受信が記述されたシーケンス図で表現された情報を参照して、前記複数のオブジェクト間のメッセージの送受信の順序を表す順序情報を求めるステップと、
前記複数のオブジェクト間のメッセージの送受信に関わるシステムの振舞いを論理式で表現した情報を前記順序に並べ、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成するステップと、
の各ステップを前記コンピュータに実行させるコンピュータプログラムが記憶され、前記コンピュータプログラムを前記コンピュータが読み取り可能な記録媒体。
【請求項１２】
前記求めるステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記生成するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を生成するステップを含む、
請求の範囲１１に記載の記録媒体。
【請求項１３】
前記生成するステップは、
前記順序情報が表す前記複数のオブジェクト間のメッセージの送受信の中から、前記検証モデルに対応するメッセージの送受信を選択するステップと、
与えられる検証モデルに対して、前記対応するメッセージの送受信を捕捉するための修飾を施し、前記時相論理式が参照する述語を扱えるようにした修飾後検証モデルを生成するステップと、を含む、
請求の範囲１２に記載の記録媒体。
【請求項１４】
前記求めるステップは、前記順序情報を順序情報格納手段に格納するステップを含み、
前記生成するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記検証モデルに対して前記修飾後検証モデルを生成するステップを含む、
請求の範囲１３に記載の記録媒体。
【請求項１５】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求の範囲１１に記載の記録媒体。
【手続補正書】
【提出日】平成21年9月4日(2009.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理装置と記憶装置とを有するコンピュータを用いて論理式を構成する論理式生成装置であって、
前記記憶装置は、時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報と、前記システムを構成する複数のオブジェクト間のメッセージの送受信が記述されたシーケンス図とを記憶し、
前記処理装置は、
前記シーケンス図を前記記憶装置から読み込み、前記複数のオブジェクト間のメッセージの送受信の順序を表す順序情報を求めるシーケンス図解析手段と、
前記複数のオブジェクト間のメッセージの送受信に関わるシステムの振舞いを論理式で表現した情報を前記順序に並べ、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を前記記憶装置に格納する論理式構成手段と、
を具備する論理式生成装置。
【請求項２】
前記記憶装置は順序情報格納手段を具備し、
前記シーケンス図解析手段は、前記順序情報を前記順序情報格納手段に格納し、
前記論理式構成手段は、前記順序情報格納手段に格納された前記順序情報を参照して、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を前記記憶装置に格納する、
請求項１に記載の論理式生成装置。
【請求項３】
前記処理装置は、
前記システムに対応する検証モデルが与えられる検証モデル修飾手段、
を更に具備し、
前記検証モデル修飾手段は、前記順序情報を参照して、前記複数のオブジェクト間のメッセージの送受信の中から、前記検証モデルに対応するメッセージの送受信を選択し、前記検証モデルに対して、前記対応するメッセージの送受信を捕捉するための修飾を施し、前記時相論理式が参照する述語を扱えるようにした修飾後検証モデルを生成する、
請求項１に記載の論理式生成装置。
【請求項４】
前記記憶装置は順序情報格納手段を具備し、
前記シーケンス図解析手段は、前記順序情報を前記順序情報格納手段に格納し、
前記検証モデル修飾手段は、前記順序情報格納手段に格納された前記順序情報を参照して、前記検証モデルに対して前記修飾後検証モデルを生成する、
請求項３に記載の論理式生成装置。
【請求項５】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求項１〜４のいずれかに記載の論理式生成装置。
【請求項６】
処理装置と記憶装置とを有するコンピュータを用いて論理式を構成する論理式生成方法であって、
前記記憶装置は、時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報と、前記システムを構成する複数のオブジェクト間のメッセージの送受信が記述されたシーケンス図とを記憶し、
前記処理装置が、
前記シーケンス図を前記記憶装置から読み込み、前記複数のオブジェクト間のメッセージの送受信の順序を表す順序情報を求めるステップと、
前記複数のオブジェクト間のメッセージの送受信に関わるシステムの振舞いを論理式で表現した情報を前記順序に並べ、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を前記記憶装置に格納するステップと、
を具備する論理式生成方法。
【請求項７】
前記記憶装置は順序情報格納手段を具備し、
前記求めるステップは、前記順序情報を前記順序情報格納手段に格納するステップを含み、
前記記憶装置に格納するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を前記記憶装置に格納するステップを含む、
請求項６に記載の論理式生成方法。
【請求項８】
前記記憶装置に格納するステップは、
前記順序情報が表す前記複数のオブジェクト間のメッセージの送受信の中から、前記検証モデルに対応するメッセージの送受信を選択するステップと、
与えられる検証モデルに対して、前記対応するメッセージの送受信を捕捉するための修飾を施し、前記時相論理式が参照する述語を扱えるようにした修飾後検証モデルを生成するステップと、を含む、
請求項６に記載の論理式生成方法。
【請求項９】
前記記憶装置は順序情報格納手段を具備し、
前記求めるステップは、前記順序情報を前記順序情報格納手段に格納するステップを含み、
前記記憶装置に格納生成するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記検証モデルに対して前記修飾後検証モデルを生成するステップを含む、
請求項８に記載の論理式生成方法。
【請求項１０】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求項６〜９のいずれかに記載の論理式生成方法。
【請求項１１】
処理装置と記憶装置とを有するコンピュータを用いて論理式を構成する論理式生成方法を前記コンピュータに実行させるコンピュータプログラムであって、
前記記憶装置は、時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報と、前記システムを構成する複数のオブジェクト間のメッセージの送受信が記述されたシーケンス図とを記憶し、
前記処理装置が、
前記シーケンス図を前記記憶装置から読み込み、前記複数のオブジェクト間のメッセージの送受信の順序を表す順序情報を求めるステップと、
前記複数のオブジェクト間のメッセージの送受信に関わるシステムの振舞いを論理式で表現した情報を前記順序に並べ、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を前記記憶装置に格納［生成］するステップと、
の各ステップを前記コンピュータに実行させるコンピュータプログラム［が記憶され、前記コンピュータプログラムを前記コンピュータが読み取り可能な記録媒体］。
【請求項１２】
前記記憶装置は順序情報格納手段を具備し、
前記求めるステップは、前記順序情報を前記順序情報格納手段に格納するステップを含み、
前記記憶装置に格納するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記時相論理式の形式で表現されるシステムの振舞いの時系列に関する情報を前記記憶装置に格納するステップを含む、
請求項１１に記載のコンピュータプログラム。
【請求項１３】
前記記憶装置に格納するステップは、
前記順序情報が表す前記複数のオブジェクト間のメッセージの送受信の中から、前記検証モデルに対応するメッセージの送受信を選択するステップと、
与えられる検証モデルに対して、前記対応するメッセージの送受信を捕捉するための修飾を施し、前記時相論理式が参照する述語を扱えるようにした修飾後検証モデルを生成するステップと、を含む、
請求項１１に記載のコンピュータプログラム。
【請求項１４】
前記記憶装置は順序情報格納手段を具備し、
前記求めるステップは、前記順序情報を前記順序情報格納手段に格納するステップを含み、
前記記憶装置に格納生成するステップは、前記順序情報格納手段に格納された前記順序情報を参照して、前記検証モデルに対して前記修飾後検証モデルを生成するステップを含む、
請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記シーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）仕様に基づいて作成される、
請求項１１〜１４のいずれかに記載のコンピュータプログラム。