JP2009157661A - モデル検査支援装置 - Google Patents

モデル検査支援装置 Download PDF

Info

Publication number
JP2009157661A
JP2009157661A JP2007335314A JP2007335314A JP2009157661A JP 2009157661 A JP2009157661 A JP 2009157661A JP 2007335314 A JP2007335314 A JP 2007335314A JP 2007335314 A JP2007335314 A JP 2007335314A JP 2009157661 A JP2009157661 A JP 2009157661A
Authority
JP
Japan
Prior art keywords
action
state
model
condition
column
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.)
Granted
Application number
JP2007335314A
Other languages
English (en)
Other versions
JP4864867B2 (ja
Inventor
Takashi Koike
隆 小池
Masataka Ieda
正孝 家田
Hiroaki Suda
浩章 須田
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.)
Fuji Soft Inc
Original Assignee
Fuji Soft Inc
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 Fuji Soft Inc filed Critical Fuji Soft Inc
Priority to JP2007335314A priority Critical patent/JP4864867B2/ja
Publication of JP2009157661A publication Critical patent/JP2009157661A/ja
Application granted granted Critical
Publication of JP4864867B2 publication Critical patent/JP4864867B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】 モデル検査のためのモデル作成に特別のモデル記述言語の習得を要せず、動作仕様だけでなく制約条件も含んだモデルを作成することのできるモデル検査支援装置を提供する。
【解決手段】 システムの動作に関する仕様とシステムに求める性質である制約条件とを表形式の情報として受け取る仕様入力部(1a)と、この表(2,3,4)から抽出した記述に基づいて検証すべきシステムの動作と制約条件とを含んだモデル検査プログラム(6)を生成するモデル生成部(1b,1c)とを備え、表は、システムの状態遷移を記述する状態遷移表(2)と、システムの状態毎に、システム内の構成要素の取り得る値を記述する制約条件表(4)と、状態遷移表に記述したアクションの内容を記述するアクション表(3)とを有するモデル検査支援装置(1)である。
【選択図】 図1

Description

本発明は、モデル検査のためのモデル作成に特別のモデル記述言語の習得を要せず、動作仕様だけでなく制約条件も含んだモデルを作成することのできるモデル検査支援装置に関する。
現在では、ソフトウエアは日常の生活を取り巻く様々な装置やシステムに組み込まれ複雑化・大規模化しており、自動車など交通機関等の生命の安全に関わる場合をはじめとしてその信頼性を確保することの重要性が声高く要求されている。
システム開発においては、まずソフトウエアの動作に関する設計が行われ、その後、その設計に基づくソフトウエアの作成及び検査が実行される。そのため、検査段階においてソフトウエアの設計段階で不具合が生じていたことが明らかになった場合は、ソフトウエアの設計にまで遡る修正作業、その修正作業に伴う開発工程の遅延、システム信頼性の低下などの問題が発生する。また人手による検査によってはこれらの設計時の検討の漏れ・設計書記載ミス・仕様の勘違いなどによる設計上の過ちを完全に検出することは困難で ある。
そこでソフトウエアシステム開発において、設計段階におけるシステムを検証する形式手法のひとつとしてモデル検査技術が知られている。
このモデル検査技術は、状態遷移系としてモデル化されたシステムについて可能な全ての動作シーケンスを生成し、それぞれの動作シーケンスにおいて制約条件が満たされているかどうかを検証して、その結果を出力するものである。
ソフトウエアの作成後の検査工程において不具合が発見されたことによる設計にまで遡る修正作業が発生し、その修正作業に伴う開発工程の遅延が生じることを、未然に防ぐことができる。
また、このように設計段階において自動的・網羅的にモデル検査をすることによってシステムの信頼性を高め、システムの不具合、異常時や想定外の事態によって惹き起こされる不安定な挙動等を未然に防止することが出来る。
ところで、このモデル検査技術を適用するためには、特別のモデル記述言語(例えば、Promela言語)を用いてシステムのモデルを作成する必要があった。そこで、システムの動作に関する設計書からモデル記述言語で書かれたモデルを作成することができるモデル検査支援装置が開示されている(例えば、特許文献1参照)
特開2007−11605号公報
しかし、特許文献1に記載の技術では、モデルを作成するための設計書は、図形形式の「変数の状態遷移関係で表した論理記述」で表現されていなければならず、一般的に作成されている設計書とは異なり、必ずしも使い易いものであるとは言えなかった。さらに、特許文献1に記載のモデル検査支援装置では検査のための制約条件を生成できないため、別途手作業で制約条件を作成することが必要であった。
本発明は、かかる事情に鑑みてなされたものであり、モデル検査のためのモデル作成に特別のモデル記述言語の習得を要せず、動作仕様だけでなく制約条件も含んだモデルを作成することのできるモデル検査支援装置を提供することを目的とする。
上記課題を解決するための、本発明に係るモデル検査支援装置は、システムの動作に関する仕様とシステムに求める性質である制約条件とを表形式の情報として受け取る仕様入力部と、この表から抽出した記述に基づいて検証すべきシステムの動作と制約条件とを含んだモデル検査プログラムを生成するモデル生成部とを備え、前記表は、システムの状態遷移を記述する状態遷移表と、システムの状態毎に、システム内の構成要素の取り得る値を記述する制約条件表と、前記状態遷移表に記述したアクションの内容を記述するアクション表とを有する。
本発明によれば、特別のモデル記述言語の習得を要せずに、動作仕様だけでなく制約条件も含んだモデル検査のためのモデルを作成することができる。
[第1の実施の形態]
図1は、本発明の実施の形態に係るモデル検査支援装置を用いたモデル検査の流れを示す図である。
ユーザは、システムの設計書に相当する状態遷移表2、アクション表3、制約条件表4、及び条件判定表5を作成し、これらをモデル検査支援装置1に入力する。
本実施の形態に係るモデル検査支援装置1には、仕様入力部1a、検査項目生成部1b、及びモデル記述生成部1cが設けられている。そして、モデル検査支援装置1には、更に状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1g、及びモデル記述言語辞書1hが設けられている。
仕様入力部1aは、入力されたこれらの表から所要の情報を抽出して、それぞれ状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1gに格納する。検査項目生成部1b及びモデル記述生成部1cは、状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1gに格納された情報に基づいて、特別のモデル記述言語で書かれたモデル(以下、「モデル検査プログラム」という。)を生成する。
モデル記述言語辞書1hは、モデル検査プログラムを生成する際に参照される辞書であり、これらの表に記載される自然言語で使用される演算子とモデル記述言語で使用される演算子との対応関係を格納している。
なお、検査項目生成部1bは主として動作に関する仕様を取扱い、モデル記述生成部1cは主として制約条件に関する仕様を取扱うが、実際の動作ではこれらが協働してモデル検査プログラム6を生成する。
生成されたモデル検査プログラム6は、モデル検査器7において検証が行われ、検査結果8として出力される。検査結果8には、モデル検査プログラム6が制約条件を満たしているかどうか、設計内容に矛盾点、不足点が存在するかどうかについての検査結果が記載される。
なお、モデル検査支援装置1、モデル検査器7は、ハードウエアに限られず、ソフトウエアで構成しても良い。また、モデル検査支援装置1に入力される各表2〜5は、本実施の形態ではExcel(登録商標)を用いて作成しているが、これに限られずWord(登録商標)、Visio(登録商標)等の他の言語処理手段、ツールを用いて作成しても良い。
続いて、モデル検査支援装置1に入力される上述の各表2〜5について説明する。
図2は、状態遷移表2の記述例を示す図である。状態遷移表2は、システムの状態遷移を記述した表である。
状態遷移表2には、状態遷移表名欄2a、状態名欄2b、入退場アクション欄2c、イベント名欄2d、及びアクション欄2eが設けられている。
状態遷移表名欄2aには、この状態遷移表の名称が日本語または英数字等による表記で入力される。状態名欄2bは、このシステムが取り得る状態毎に分類され、その状態名が日本語または英数字等による表記で入力される。入退場アクション欄2cには、上述の状態に入退場する際の動作を規定し、入場アクションと退場アクションとが日本語または英数字等による表記で入力される。イベント名欄2dには、このシステムで発生するイベント毎に分類され、そのイベント名が日本語または英数字等による表記で入力される。アクション欄2eには、イベントと状態の組合せにおいて実行されるアクションと遷移先の状態名が入力される。
次に、アクション欄2eの内容について説明する。アクション欄2eは、基本構成として、上段と下段を備えている。
図3は、アクション欄2eの下段の内容を説明する図である。
下段には、所定のイベントと状態の組合せの場合に実行するアクションのアクション名を記載する。このアクション名の処理内容は、後述するアクション表3に規定されている。
複数のアクションを実行する場合は、このアクション欄2eの下段に複数のアクション名を改行して記述すれば良い。さらに、そのアクションを実行するか否かに条件が必要な場合は、その条件(以下、「ガード条件」という)を括弧([ ])で囲んで記述し、その後にアクション名を記載すれば良い。
図3に示すアクションでは、「電源OFF」の状態で「電源ボタン押下」によるイベントが発生したときは、電源ON処理を実行するとともに、ガード条件である「ディスク有」が成立している場合は再生初期化処理を実行することが規定されている。
図4は、アクション欄2eの上段の内容を説明する図である。
上段には、下段のアクションを実行した後、次にどの状態に遷移するのかを状態名で記述する。条件によって遷移先が異なる場合は、異なる遷移先毎に改行して記述する。遷移に条件が必要な場合は、ガード条件を括弧([ ])で囲んで記述し、その後に遷移先を記載すれば良い。
図4に示す遷移では、図3に示すアクションが実行された後は、ガード条件「ディスク有」が成立している場合は「停止」状態に遷移し、ガード条件「ディスク無」が成立している場合は「ディスクなし」状態に遷移することが規定されている。
なお、アクション欄2eに「/」が記入されている場合は、「無視」として扱われる。「無視」は、所定のイベントと組合せは有り得るが、何も処理をしないことを表す。アクション欄2eに「×」が記入されている場合は、「不可」として扱われる。「不可」は、所定のイベントと状態の組合せはありえないことを示している。
図5は、入場アクション、退場アクションの内容を説明する図である。
入場アクションは、この状態に遷移した際に実行されるアクションであり、退場アクションは次の状態へ遷移する前に実行されるアクションである。
ここで、複数のアクションを実行する場合は、それらのアクション毎に改行して記述すれば良い。さらに、そのアクションを実行するか否かに条件が必要な場合は、ガード条件を括弧([ ])で囲んで記述し、その後にアクション名を記載すれば良い。
アクションの実行は、アクション欄2e下段のアクション→退場アクション→入場アクションの順番で実行される。図5に示す例では、状態1でイベント1が発生した場合、アクション3→アクション2→アクション4の順序で実行される。
なお、アクション欄2eの上段に現在の状態名を記述した場合を、「自己遷移」と呼ぶ。自己遷移の場合は状態自体は変化しないものの遷移の処理は行われ、かつ入場アクションと退場アクションが実行される。アクション欄2eの上段に「−(ハイフン)」が記述されあるいは空白である場合を、「内部遷移」と呼ぶ。内部遷移の場合は、アクション欄2e下段のアクションは実行されるが、退場アクション、入場アクションは実行されない。
図6は、アクション表3の記述例を示す図である。アクション表3には状態遷移表2のアクション欄2eの下段および入退場アクション欄2cに記述した「アクション」の内容を「事前条件」、「処理内容」、「事後条件」に分類して、システム内の構成要素の状態を記述する。
アクション表3には、アクション名欄3a、事前条件欄3b、処理内容欄3c、及び事後条件欄3dが設けられている。
アクション名欄3aには、状態遷移表2のアクション欄2eの下段および入退場アクション欄2cに記載したアクション名と同一の名称が日本語または英数字等による表記で入力される。
事前条件欄3bには、アクションの処理内容を実行するために成立していなければならない構成要素の値の条件を記載する。処理内容欄3cには、アクションの実行によって構成要素の値をどのように変化させるかを記載する。事後条件欄3dには、アクションの内容が実行された後に成立すべき構成要素の値の条件を記載する。
これら、それぞれの欄内の条件または内容は自然言語、式などで記述することができる。また、それぞれの欄内に複数の条件または内容がある場合には、改行して記述すれば良い。条件または内容がない場合は、その欄には「−(ハイフン)」あるいは空白を記述する。
図6に示すアクションでは、次のことが規定されている。「ディスク回転開始処理」を実行するためには、事前条件として、構成要素である「ディスク」の値が「あり」でかつ「ディスク回転」の値が「停止」にあることが必要である。そして、処理内容は、「ディスク回転」の値を「回転中」とすることであり、その処理の結果である事後条件は、「ディスク回転」の値が「回転中」となっていることが必要である。
図7は、条件判定表5の記述例を示す図である。条件判定表5には、状態遷移表2の各欄の括弧内に記載したガード条件の内容を記述する。
条件判定表5は、条件判定名欄5a及び条件内容欄5bを備えている。
条件判定名欄5aには、状態遷移表2の各欄の括弧内に記載したガード条件の名称が日本語または英数字等による表記で入力される。
条件内容欄5bには、条件判定名の条件判定内容を記載する。これは、具体的な値、数式などの他、自然言語を用いて内容を記述しても良い。内容がない場合は、その欄には「−(ハイフン)」あるいは空白を記述する。
例えば、図7では、「開始トラックである」という条件は、構成要素「トラック番号」の値が「1」となっていることであり、「開始トラックでない」という条件は、構成要素「トラック番号」の値が「1より大きい」ことであることが規定されている。
図8は、制約条件表4の記述例を示す図である。制約条件表4には、検証対象のシステムの各状態における構成要素が取り得る値を記述する。
制約条件表4には、構成要素名欄4a、状態名欄4b、及び制約条件内容欄4cが設けられている。
構成要素名欄4aには、各構成要素の名称が日本語または英数字等による表記で入力される。状態名欄4bには、状態遷移表2の状態名と同じ名称を記載する。制約条件内容欄4cには、ある構成要素がある状態でどのような値になっていなければないかという制約条件を記述する。これは、具体的な値や名称などの他に自然言語で記述しても良い。
例えば、図8では、状態「電源OFF」では、構成要素「電源」の値は「OFF」、構成要素「音声出力」の値は「なし」、構成要素「ディスク回転」の値は「停止」となっていなければならず、構成要素「ディスク」、「トラック番号」、「総トラック数」の値には制約がないことが規定されている。
次に、本発明の実施の形態に係るモデル検査支援装置を用いてモデル検査プログラムを生成する動作について説明する。
図9は、モデル検査プログラムの生成手順を示すフロー図である。
ステップS01において、ユーザは状態遷移表2、アクション表3、制約条件表4をモデル検査支援装置1に入力する。
図10は、モデル検査支援装置1に入力される各表の記載例を示す図である。本フローでは電源ボタンのON・OFF、ディスクの挿入、次トラックボタン押下による動作について説明するが、説明の簡略化のため条件判定表5を用いない状態での動作について記載している。
なお、本実施の形態では、状態遷移表2、アクション表3、制約条件表4は、上述のようにExcel(登録商標)等の他の言語処理手段やツールを用いて生成するが、入力方法については種々の形態をとる事ができる。例えば、ユーザが不図示の入力装置からデータを入力しても良く、作成済みの各表を不図示の記憶媒体を介して入力しても良く、外部の他システムから不図示の通信回線を介して作成済みの各表をモデル検査支援装置1に伝送しても良い。また、状態遷移表2以外は、必要なデータが入力されれば、必ずしも表形式で作成されなくても良い。
モデル検査支援装置1では、仕様入力部1aが起動して、入力された各表からデータを抽出して、それぞれ状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1gに格納する。この際に、状態遷移表2のアクション欄2eの上段に記述された遷移先の状態名が状態名欄2bに記述されているかを確認する。アクション欄2eの上段に記述された遷移先の状態名が状態名欄2bに存在しない場合には、仕様入力部1aがエラーを報告する。同様に、状態遷移表2のアクション欄2eの下段に記述されたアクション名がアクション表3のアクション表名欄3aに記述されているか、状態遷移表2のアクション欄2eの上段及び下段に括弧([ ])で囲んで記述されたガード条件が条件判定表5の条件判定名欄5aに記述されているか、アクション表3の事前条件欄3b、処理内容欄3c、事後条件欄3d及び条件判定表5の条件内容欄5bに記述された構成要素名が制約条件表4の構成要素名欄4aに記述されているかを確認し、存在しない場合には仕様入力部1aがエラーを報告する。
検査項目生成部1b及びモデル記述生成部1cは、状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1gに格納された各表のデータに基づいて、モデル検査プログラム6を生成する。アクションや制約条件、条件判定の記述において自然言語が用いられている場合には、適宜、モデル記述言語辞書1hを参照し、対応するモデル記述言語に変換する。
なお、以下特に明示しない場合は、検査項目生成部1b及びモデル記述生成部1cが協働してモデル検査プログラムの各部を生成するものとする。
ステップS02において、モデル検査プログラム6の内、状態遷移部6cの作成を開始する。先ず、状態遷移記憶部1dに格納された状態遷移表2のイベント名欄2dに記載されているイベント名毎に、そのイベントを処理するブロックをモデル検査プログラム6に生成する。
図11では、イベント「電源ボタンON」、「電源ボタンOFF」、「ディスク挿入」、「次トラックボタン押下」の異なるブロックが生成されている。即ち、発生したイベントを表す変数eventの値によってブロックが分けられている。
ステップS03において、生成したそれぞれのブロックの内部に、状態遷移記憶部1dに格納された状態遷移表2の状態名欄2bにある状態ごとのブロックを生成する。
図12では、状態名である「電源OFF状態」、「待機状態」、「ディスクあり状態」のブロックが生成されている。即ち、現在の状態を表す変数stateによって、さらに3つのブロックに分けられている。
ステップS04において、生成した状態の各ブロックに、状態遷移記憶部1dに格納された状態遷移表2のアクション欄2eにある各欄の内容を記載する。
図13では、イベントが「電源ボタンON」で状態が「電源OFF状態」のブロックに、処理内容「ランプ点灯処理」の呼出しと遷移先「待機状態」が記載されている。また、イベントが「電源ボタンOFF」で状態が「待機状態」のブロックに、処理内容「ランプ消灯処理」の呼出しと遷移先「電源OFF状態」が記載されている。さらに、イベントが「電源ボタンOFF」で状態が「ディスクあり状態」のブロックに、処理内容「ディスク排出処理」、「ランプ消灯処理」の呼出しと遷移先「電源OFF状態」が記載されている。
ステップS05において、状態遷移記憶部1dに格納された状態遷移表2の状態名欄2bにある状態ごとのブロックを新たに生成する。そして、生成した状態のブロックに、ステップS07で作成する制約条件検査部6bの呼出処理を生成する。即ち、生成した状態毎に制約条件の良否が検査される。
図14では、状態名である「電源OFF状態」、「待機状態」「ディスクあり状態」のブロックが生成されている。即ち、遷移先を表す変数nextstateによって場合わけがなされ、遷移先の状態ごとにブロックが生成されている。そして、そのブロック毎に状態名が制約条件を検査するための呼出名として作成されている。
ステップS06において、モデル検査プログラム6の内、アクション部6aの作成を開始する。アクション記憶部1eに格納されたアクション表3のアクション名欄3aに記載されたアクション名でブロックを分けて作成する。そして、生成したブロックにアクション記憶部1eに格納されたアクション表3の記述に従って、内部の処理を生成する。
図15では、アクション名の「次トラック処理」、「ディスク受入処理」に対応してブロックが作成されている。そして、「次トラック処理」のブロックに、アクション記憶部1eに格納された事前条件欄3bの内容がモデル記述言語であるPromela言語を用いてassert文として生成される。処理内容欄3cの内容がPromela言語を用いて変換して生成される。事後条件欄3dの内容がPromela言語を用いてassert文として生成される。「ディスク受入処理」のブロックについても、同様に処理される。
なお、assert文として生成される内容は、例えば、事前条件であれば、処理を実施する前には「トラック番号は総トラック数より少なくなければならない」と解釈される。
ここまでの処理によって、モデル検査プログラムの内、アクション部6aが作成された。
ステップS07において、モデル検査プログラム6の内、制約条件検査部6bの作成を開始する。制約条件記憶部1fに格納された制約条件表4の状態名欄4bに記載された状態名でブロックを分けて作成する。
図16では、状態名の「電源OFF状態」、「待機状態」、「ディスクあり状態」に対応してブロックが作成されている。
ステップS08において、生成したブロックに制約条件検査のために制約条件記憶部1fに格納された制約条件内容欄4cの記述を用いたブロックを生成する。
図17では、「電源OFF状態」のブロックに、制約条件である「ランプ」が「消灯」、「ディスク」が「なし」、「トラック番号」が「0」を表明するassert文が生成される。また、「待機状態」のブロックに、制約条件である「ランプ」が「点灯」、「ディスク」が「なし」、「トラック番号」が「0」を表明するassert文として生成される。
このように、状態毎に複数の構成要素を制約条件として記述することになる。
ここまでの処理によって、モデル検査プログラム6の内、制約条件検査部6bが作成された。
ステップS09において、モデル検査プログラムの内、イベントを非決定的に発生させるイベント発生部6dを、状態遷移記憶部1dに格納された状態遷移表2のイベント名欄2dを用いて生成する。
図26は、イベントを表す変数eventの値に「電源ボタンON」「電源ボタンOFF」「ディスク挿入」「次トラックボタン押下」のいずれかを非決定的に設定している。
図18は、上述の手順によって作成されたモデル検査プログラム6の基本構成を示す図である。
状態遷移表2、アクション表3、制約条件表4に基づいて、それらのデータ間の対応付けがなされたアクション部6a、制約条件検査部6b、状態遷移部6c、イベント発生部6dが生成されている。
なお、状態遷移部6c、アクション部6a、制約条件検査部6b、イベント発生部6dを生成する順序については、本実施の形態に限られない。
なお、モデル検査プログラムの生成にあたり、変数や定数、プロセス等の宣言については、それを使用するモデル記述言語の規約に基づいて適宜行うものとする。
[第2の実施の形態]
第2の実施の形態では、モデル検査プログラムの生成において、条件判定表5、状態遷移表2の入退場アクションなどを処理する動作について説明する。従って、第1の実施の形態と同一の部位には同一の符号を付してその詳細の説明は省略する。
図19は、モデル検査支援装置1に入力される各表の記載例を示す図である。図10に示す第1の実施の形態と比して、条件判定表5が読み込まれる点と、状態遷移表2には「電源OFF状態」のアクション欄2eにガード条件として[ディスク無]、[ディスク有]が記載されている点が異なっている。
図9に示すモデル検査プログラム生成フローのステップS04において、生成した状態の各ブロックに、状態遷移記憶部1dに格納されている状態遷移表2のアクション欄2eにある各欄の内容を記載する。
図20では、イベントが「電源ボタンON」で状態が「電源OFF状態」のブロックに、処理内容「ランプ点灯処理」、遷移先「[ディスク無]待機状態」と「[ディスク有]ディスクあり状態」が記載されている。
先ず、状態遷移表2の状態名欄2bにある状態ごとのブロックを新たに生成する。そして、生成した状態のブロックにアクション欄2e下段にある「ランプ点灯処理」の呼出処理を記載する。
次に、アクション欄2e上段の条件を判定する条件判定部6eの呼出処理を生成し、その判定結果によって遷移先を変化させる処理を記載する。図20では、「ディスク無」が成立する場合には遷移先は「待機状態」となり、「ディスク有」が成立する場合には遷移先は「ディスクあり状態」であることが規定されている。
図21では、イベントが「ディスク挿入」で状態が「電源OFF状態」のブロックに、処理内容「[ディスク無]ディスク受入処理」と「ランプ点灯処理」、遷移先「ディスクあり状態」が記載されている。
状態遷移表2のアクション欄2e下段で条件判定が使用されている場合は、その条件を判定する条件判定部6eの呼出処理を生成し、その判定結果によって対応するアクションを実行するか否かを変化させる処理を記載する。図21では、「ディスク無」が成立する場合にのみ「ディスク受入処理」が実行されることが規定されている。
次に条件判定表5の処理について説明する。
図9に示すモデル検査プログラム生成フローのステップS08が終了した後に、条件判定表5の処理を実行する。
条件判定表処理では、条件判定記憶部1gに格納されている条件判定表5の条件判定名でブロックを生成し、生成したブロック内部に条件判定表5の内容に従って処理名を記載する。
図22では、条件判定名の「ディスク有」、「ディスク無」に対応してブロックが作成され、それぞれのブロックに、条件判定表5の内容が規定されている。
なお、この条件判定表5に基づいて生成されたプログラムの部分は、図18に示すモデル検査プログラム6に条件判定部6eとして追加される。この条件判定部6eは、状態遷移部6cの前に生成される。
次に、「不可」と「無視」について説明する。
「不可」は、アクション欄2eに「×」が記入されている場合であり、この「不可」となっているイベントと状態の組合せはありえないことを示している。
図23では、「待機状態」と「ディスクあり状態」とでは、イベント「電源ボタンON」が発生してはならず、「電源OFF状態」では、イベント「電源ボタンOFF」が発生してはならないことが記載されている。
アクション欄2eが「不可」となっている場合は、ステップS04において生成した状態の各ブロックにはassert文が挿入される。これによって、このブロックが実行されてはならないことが表される。
「無視」は、アクション欄2eに「/」が記入されている場合であり、この「無視」となっているイベントと状態の組合せはあり得るが、何も処理をしないことを示している。
この場合には、そのアクション欄2eに対応するブロックには何も書き込まれない。
次に入退場アクションについて説明する。
入場アクションはこの状態に遷移した際に実行されるアクションであり、退場アクションは次の状態へ遷移する前に実行されるアクションである。
図24に示す状態遷移表2では、「電源OFF状態」へ遷移する際には、入場アクションとして「ランプ消灯処理」が実行され、「電源OFF状態」から他の状態へ遷移する際には、退場アクションとして「ランプ点灯処理」が実行されることが規定されている。
この入退場アクションが状態遷移表2に記載されていた場合、図18に示すモデル検査プログラム6の状態遷移部の最後に入退場アクションを処理するブロックが生成される。入場アクションの処理ブロック、退場アクションの処理ブロックの内部には、状態遷移表2の状態に対応するブロックが生成され、その中に入場アクション欄、退場アクション欄に記述された内容がモデル記述言語を用いて生成される。
[実施の形態の効果]
本実施の形態のモデル検査支援装置では、以下に示す特徴的な機能を備えている。
モデル検査プログラムの生成に必要なデータは、設計書の形式で作成されている。例えば、状態遷移表のフォーマットは、組込み系の開発において一般的に使用されている設計書の書き方に対応している。
このように、ドキュメントからモデル検査プログラムを自動生成できるためモデル記述言語の習得が不要となっている。
また、設計書からモデル検査プログラムを自動生成することにより、設計書の作成後に、人手によるモデル検査プログラムの作成を経ることなく、直ちにモデル検査を実施することができる。
また、独自のアクション表と制約条件表とを導入し、モデル検査プログラムの生成に必要なデータとして制約条件の記載を可能としている。この結果、検証すべき制約条件をモデル検査プログラムの中に自動で生成することができる。
制約条件表では、システムに求められる性質が、システムの状態と構成要素の値の組合せによって明確に示される。そのため、制約条件の記載漏れによって、仕様があいまいになることを防ぐことができる。
アクション表では、アクションの内容だけではなく、事前条件と事後条件について記述することにより、動作仕様だけではなく制約条件についても簡潔に漏れなく記述し、モデル検査によって確認することができる。
本実施の形態に係るモデル支援装置はこのような特徴を有しているが、もちろんモデル記述言語を習得している人も有効に利用することが可能である。例えば、モデル検査プログラムの生成に必要なデータは、モデル記述言語(例えば、Promela言語)で記載しても良い。図25には、アクション表の、「事前条件」、「処理内容」、「事後条件」をモデル記述言語で作成した例を示している。モデル記述言語を使うことで、自然言語よりも単純で厳密な記述をすることができる。
なお、上述の実施の形態で説明した各機能は、ハードウエアを用いて構成しても良く、また、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現しても良い。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
更に、各機能は図示しない記録媒体に格納したプログラムをコンピュータに読み込ませることで実現させることもできる。ここで本実施の形態における記録媒体は、プログラムを記録でき、かつコンピュータが読み取り可能な記録媒体であれば、その記録形式は何れの形態であってもよい。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
本発明の実施の形態に係るモデル検査支援装置を用いたモデル検査の流れを示す図。 状態遷移表の記述例を示す図。 アクション欄の下段の内容を説明する図。 アクション欄の上段の内容を説明する図。 入場アクション、退場アクションの内容を説明する図。 アクション表の記述例を示す図。 条件判定表の記述例を示す図。 制約条件表の記述例を示す図。 モデル検査プログラムの生成手順を示すフロー図。 モデル検査支援装置に入力される各表の記載例を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの基本構成を示す図。 モデル検査支援装置に入力される各表の記載例を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの作成状況を示す図。 モデル検査プログラムの基本構成を示す図。 モデル検査プログラムの基本構成を示す図。 アクション表をモデル記述言語で作成した例を示す図。 モデル検査プログラムの作成状況を示す図。
符号の説明
1…モデル検査支援装置、1a…仕様入力部、1b…検査項目生成部、1c…モデル記述生成部、状態遷移記憶部1d、アクション記憶部1e、制約条件記憶部1f、条件判定記憶部1g、モデル記述言語辞書1h、2…状態遷移表、2a…状態遷移表名欄、2b…状態名欄、2c…入退場アクション欄、2d…イベント名欄、2e…アクション欄、3…アクション表、3a…アクション名欄、3b…事前条件欄、3c…処理内容欄、3d…事後条件欄、4…制約条件表、4a…構成要素名欄、4b…状態名欄、4c…制約条件内容欄、5…条件判定表、5a…条件判定名欄、5b…条件内容欄、6…モデル検査プログラム、6a…アクション部、6b…制約条件検査部、6c…状態遷移部、6d…イベント発生部、6e…条件判定部、7…モデル検査器、8…検査結果。

Claims (5)

  1. システムの動作に関する仕様とシステムに求める性質である制約条件とを表形式の情報として受け取る仕様入力部と、
    この表から抽出した記述に基づいて検証すべきシステムの動作と制約条件とを含んだモデル検査プログラムを生成するモデル生成部とを備え、
    前記表は、
    システムの状態遷移を記述する状態遷移表と、
    システムの状態毎に、システム内の構成要素の取り得る値を記述する制約条件表と、
    前記状態遷移表に記述したアクションの内容を記述するアクション表とを有すること
    を特徴とするモデル検査支援装置。
  2. 前記各表の記述に使用する言語に自然言語を含むことを特徴とする請求項1に記載のモデル検査支援装置。
  3. 前記状態遷移表は、システムで発生するイベントとシステムの各状態に対応して、実行するアクション名と次に遷移する状態とを規定し、
    前記制約条件表は、システムの各状態に対応して、システム内の構成要素がとるべき値を規定し、
    前記アクション表は、前記アクション名に対応して、当該アクションの実行前後で成立していなければならない条件と当該アクションの内容とを、前記構成要素の値として規定すること
    を特徴とする請求項2に記載のモデル検査支援装置。
  4. 前記状態遷移表は、アクションあるいは遷移を実行するための判定条件を記述可能になされ、
    前記判定条件の内容を前記構成要素の値として記述した条件判定表を更に備え、
    前記モデル生成部は、更に前記条件判定表から抽出した記述に基づいて前記モデル検査プログラムを生成することを特徴とする請求項3に記載のモデル検査支援装置。
  5. 前記各表は、記録媒体または通信手段を介して入力されることを特徴とする請求項2に記載のモデル検査支援装置。
JP2007335314A 2007-12-26 2007-12-26 モデル検査支援装置及びプログラム Expired - Fee Related JP4864867B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007335314A JP4864867B2 (ja) 2007-12-26 2007-12-26 モデル検査支援装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007335314A JP4864867B2 (ja) 2007-12-26 2007-12-26 モデル検査支援装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2009157661A true JP2009157661A (ja) 2009-07-16
JP4864867B2 JP4864867B2 (ja) 2012-02-01

Family

ID=40961615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007335314A Expired - Fee Related JP4864867B2 (ja) 2007-12-26 2007-12-26 モデル検査支援装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4864867B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014086022A (ja) * 2012-10-26 2014-05-12 Toshiba Corp 制約充足解生成装置
JP7085777B1 (ja) * 2021-03-02 2022-06-17 株式会社Team F 情報処理システム、表示装置、情報処理方法およびプログラム
JP7101934B1 (ja) * 2021-03-02 2022-07-19 株式会社Team F 情報処理装置およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325952A (ja) * 1996-06-05 1997-12-16 Mitsubishi Electric Corp オブジェクト指向仕様の実行検証装置
JPH10207727A (ja) * 1997-01-23 1998-08-07 Hitachi Ltd テストプログラム自動生成システム
JP2001256078A (ja) * 2001-01-31 2001-09-21 Mitsubishi Electric Corp テスト支援装置
JP2003050904A (ja) * 2001-08-07 2003-02-21 Ns Solutions Corp 情報処理装置、情報処理システム、業務フロー支援方法、記憶媒体、及びプログラム
JP2007011605A (ja) * 2005-06-29 2007-01-18 Kansai Electric Power Co Inc:The ソフトウェア動作仕様のモデル検査支援装置およびこれを備えたモデル検査システム並びにモデル検査支援プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325952A (ja) * 1996-06-05 1997-12-16 Mitsubishi Electric Corp オブジェクト指向仕様の実行検証装置
JPH10207727A (ja) * 1997-01-23 1998-08-07 Hitachi Ltd テストプログラム自動生成システム
JP2001256078A (ja) * 2001-01-31 2001-09-21 Mitsubishi Electric Corp テスト支援装置
JP2003050904A (ja) * 2001-08-07 2003-02-21 Ns Solutions Corp 情報処理装置、情報処理システム、業務フロー支援方法、記憶媒体、及びプログラム
JP2007011605A (ja) * 2005-06-29 2007-01-18 Kansai Electric Power Co Inc:The ソフトウェア動作仕様のモデル検査支援装置およびこれを備えたモデル検査システム並びにモデル検査支援プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014086022A (ja) * 2012-10-26 2014-05-12 Toshiba Corp 制約充足解生成装置
JP7085777B1 (ja) * 2021-03-02 2022-06-17 株式会社Team F 情報処理システム、表示装置、情報処理方法およびプログラム
JP7101934B1 (ja) * 2021-03-02 2022-07-19 株式会社Team F 情報処理装置およびプログラム

Also Published As

Publication number Publication date
JP4864867B2 (ja) 2012-02-01

Similar Documents

Publication Publication Date Title
US10409564B2 (en) Recording and playback of development sessions
Agerholm et al. A lightweight approach to formal methods
CN102184138A (zh) 一种软件错误自动重现和定位的方法及系统
TW200417920A (en) Firmware structuring method and related apparatus for unifying handling of execution responses of subroutines
JP4864867B2 (ja) モデル検査支援装置及びプログラム
JP2011108116A (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP2007323219A (ja) Fmea支援装置、その装置、そのプログラム及びその媒体
JP2007011605A (ja) ソフトウェア動作仕様のモデル検査支援装置およびこれを備えたモデル検査システム並びにモデル検査支援プログラム
Bogdanov Automated testing of Harel's statecharts
CN115904480B (zh) 代码重构方法、装置、电子设备及存储介质
KR20130020970A (ko) 코딩 시스템
Yue et al. Bridging the gap between requirements and aspect state machines to support non-functional testing: industrial case studies
CN115904989A (zh) 一种接口测试方法、装置、设备及可读存储介质
JP2020052747A (ja) 情報生成装置、情報生成システム及びプログラム
JP4959640B2 (ja) モデル検査支援装置及びプログラム
WO2012049816A1 (ja) モデル検査装置、方法及びプログラム
JP2011034274A (ja) テスト自動実行システム
JP2007079906A (ja) ソースコード生成装置
JP2008052359A (ja) テストケース生成装置、テストケース生成方法及びテストケース生成プログラム
JP2006277180A (ja) Rtl入力プログラムの不具合解析支援装置及びその方法ならびに部分rtl生成装置
JP2012523640A (ja) 複合システムの開発または使用を支援するための方法
JP2011204069A (ja) テスト方法およびテスト仕様書テストデータ自動生成装置
Hwang et al. Safety-Critical Software Quality Improvement Using Requirement Analysis
JP6148449B2 (ja) 仕様検証装置およびその方法、プログラム
JP2008129844A (ja) ストアドプロシージャジェネレート装置、方法、プログラム、及びシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111011

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111109

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4864867

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees