JP4946651B2 - 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法 - Google Patents

仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法 Download PDF

Info

Publication number
JP4946651B2
JP4946651B2 JP2007159004A JP2007159004A JP4946651B2 JP 4946651 B2 JP4946651 B2 JP 4946651B2 JP 2007159004 A JP2007159004 A JP 2007159004A JP 2007159004 A JP2007159004 A JP 2007159004A JP 4946651 B2 JP4946651 B2 JP 4946651B2
Authority
JP
Japan
Prior art keywords
state
transition
detected
use case
design
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.)
Expired - Fee Related
Application number
JP2007159004A
Other languages
English (en)
Other versions
JP2008310663A (ja
Inventor
強 朱
洋哲 岩下
浩一郎 高山
恒夫 中田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007159004A priority Critical patent/JP4946651B2/ja
Priority to US12/136,378 priority patent/US8079001B2/en
Publication of JP2008310663A publication Critical patent/JP2008310663A/ja
Application granted granted Critical
Publication of JP4946651B2 publication Critical patent/JP4946651B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Description

この発明は、ソフトウェアやハードウェアなどの設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証する仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法に関する。
現在、ソフトウェアやハードウェアの大規模化、多機能化により、システムの品質を保証するための検証作業がますます困難になってきている。一般に、システムの品質を保証するためには、2つの作業が必要とされている。その一つは設計の正しさの保証であり、もう一つは実装の正しさの保証である。
現状の検証・テストの技術は、基本的に後者の『実装の正しさの保証』に着目している。たとえば、実装レベルにおける、設計対象が仕様通りに動作しているかを検証するテストケースの網羅度(カバレッジ)を評価することにより、網羅的な論理検証をおこなう手法が提供されている(たとえば、下記特許文献1および2参照。)。
また、実装レベルにおける、設計対象の検証プロパティを抽出し、設計対象の設計仕様に対する検証プロパティの網羅度を評価することにより、網羅的な論理検証をおこなう手法が提供されている(たとえば、下記非特許文献1および2参照。)。
特開平03−99228号公報 特開2001−14365号公報 Y.Hoskote,T.Kam,P.H.Ho,andX.Zao,"Coverage Estimation for Symbolic Model Checking,"in Proc.of ACM/IEEE DAC,1999,pp.300−305. X.Xu,S.Kimura,K.Horikawa,and T .Tsuchiya,"Transition−based coverage estimation for symbolic model checking,"in Proc.of ACM/IEEE
しかしながら、上述した特許文献1および2に記載の従来技術によれば、システムの品質を保証するための作業の一つである『設計の正しさの保証』については、特に考慮されていなかった。多くの場合、仕様書が自然言語で記述されているため、設計の正しさの保証は、デザインレビュー、つまり目視でチェックすることとなる。
このため、仕様書の曖昧さ、矛盾、漏れ、ミスを完全に取り除くことができず、誤った設計になってしまうケースが多くなっていた。これにより、検証の手戻り作業が多発してしまい、検証作業の長期化、ひいては設計作業の長期化を招くという問題があった。
また、上述した非特許文献1および2に記載の従来技術によれば、仕様の要求を検証プロパティとして抽出して、各出力に対する網羅度を評価することとなる。したがって、検証プロパティおよび観測信号を定義する作業が必要となり、該作業に多大な時間や手間がかかってしまい、検証作業の長期化、ひいては設計作業の長期化を招くという問題があった。
この発明は、上述した従来技術による問題点を解消するため、実装の前段階において、設計仕様に対する要求仕様の整合性をチェックすることにより、効率的かつ網羅的な論理検証を実現し、設計者の負担軽減および設計期間の短縮化を図ることができる仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかる仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法は、設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証する仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法であって、前記設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得し、前記設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、取得された条件を満たす状態を検出し、前記状態集合のうち検出されなかった非検出の状態が存在するか否かを判定して、その判定結果を出力することを特徴とする。
この発明によれば、設計対象の設計仕様モデルに表現されている状態集合に対する、該設計対象の要求仕様モデルに表現されている状態集合の網羅性を検証することにより、設計仕様と要求仕様との整合性を確認することができる。
また、上記発明において、前記有限状態機械モデルに表現されている状態間の遷移集合の中から、取得された条件を満たす遷移を検出させ、前記遷移集合のうち検出されなかった非検出の遷移が存在するか否かを判定することとしてもよい。
この発明によれば、設計仕様モデルに表現されている遷移集合に対する、要求仕様モデルに表現されている遷移集合の網羅性を検証することにより、設計仕様と要求仕様との整合性を確認することができる。
また、上記発明において、前記ユースケースごとに、前記ユースケースの実行前に満たすべき事前条件と、前記ユースケースの実行後に満たすべき事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件と、を取得し、前記有限状態機械モデルの初期状態から前記事後条件を満たす状態に辿り着くまでの間に、前記事前条件を満たす状態を経由し、かつ、前記不変条件を満たす状態遷移パス内の状態を検出することとしてもよい。
また、上記発明において、前記状態遷移パス内の状態間の遷移を検出することとしてもよい。
これらの発明によれば、ユースケースを実行するために満たすべき事前条件、事後条件および不変条件を用いて、ユースケース記述に定義されているユースケースの動作を実現する状態遷移パスを探索し、該状態遷移パス内の状態または/および遷移を検出することができる。
また、上記発明において、前記有限状態機械モデルに表現されている状態集合の状態数に対する、検出された状態の状態数の割合(以下、「状態カバレッジ」という)を算出し、該状態カバレッジに基づいて、前記非検出の状態の存否を判定することとしてもよい。
この発明によれば、設計対象が取ることのできる有限の状態集合に対して、検出された状態がどの程度網羅しているのかをあらわす指標を用いて、非検出の状態の存否を判定することができる。
また、上記発明において、前記有限状態機械モデルに表現されている遷移集合の遷移数に対する、検出された遷移の遷移数の割合(以下、「遷移カバレッジ」という)を算出し、該遷移カバレッジに基づいて、前記非検出の遷移の存否を判定することとしてもよい。
この発明によれば、ある状態から他の状態への可能な有限の遷移集合に対して、検出された遷移がどの程度網羅しているのかをあらわす指標を用いて、非検出の遷移の存否を判定することができる。
また、上記発明において、前記判定結果は、前記非検出の状態または/および遷移の存否を示すこととしてもよい。
また、上記発明において、前記判定結果は、前記非検出の状態または/および遷移を特定するメッセージ情報を含むこととしてもよい。
また、上記発明において、前記判定結果は、前記有限状態機械モデルの初期状態から前記非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定するメッセージ情報を含むこととしてもよい。
これらの発明によれば、非検出の状態または/および遷移が存在する場合、非検出の状態または/および遷移を特定することができるとともに、該非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定することができる。
本発明にかかる仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法によれば、実装の前段階において、設計仕様に対する要求仕様の整合性をチェックすることにより、効率的かつ網羅的な論理検証を実現し、設計者の負担軽減および設計期間の短縮化を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法の好適な実施の形態を詳細に説明する。
(仕様検証の概要)
まず、この発明の実施の形態にかかる仕様検証の概要について説明する。図1は、この発明の実施の形態にかかる仕様検証の概要を示す説明図である。図1において、設計対象の仕様を検証する際の概要が示されている。
一般に、ソフトウェアやハードウェアなどの設計対象の仕様を定義する仕様書は、自然言語を用いて人手によって作成されている。そして、この仕様書を分析して、何をつくるべきかを定義する要求仕様と、どのように設計するのかを定義する設計仕様とが人手によって作成されている。
しかし、自然言語によって記述された仕様書の曖昧さから、分析が不十分なものとなってしまい、要求仕様に定義すべきユースケースに漏れが発生してしまう場合がある。このため、要求仕様をもとに生成されるテストケース(設計対象が仕様通りに動作するかを確認するテスト)に漏れが発生し、検証の手戻り作業が多発して論理検証の品質が低下してしまうという問題があった。
本実施の形態では、設計対象の要求仕様および設計仕様をモデル化して、要求仕様モデル(ユースケース記述)と設計仕様モデル(有限状態機械モデル)との整合性をチェックすることにより、設計仕様モデルに対する要求仕様モデルの網羅性を確保する。これにより、設計仕様に対してユースケース漏れのない要求仕様の作成を実現し、論理検証の品質を向上させる。
(仕様検証装置200のハードウェア構成)
つぎに、この発明の実施の形態にかかる仕様検証装置200のハードウェア構成について説明する。図2は、この発明の実施の形態にかかる仕様検証装置200のハードウェア構成を示す説明図である。
図2において、仕様検証装置200は、コンピュータ本体210と、入力装置220と、出力装置230と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク240に接続可能である。
コンピュータ本体210は、CPU,メモリ,インターフェースを有する。CPUは、仕様検証装置200の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク211,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク211はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク211およびフラッシュメモリはコンピュータ本体210に対し着脱自在である。インターフェースは、入力装置220からの入力、出力装置230への出力、ネットワーク240に対する送受信の制御をおこなう。
また、入力装置220としては、キーボード221、マウス222、スキャナ223などがある。キーボード221は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス222は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ223は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体210内のメモリに格納される。なお、スキャナ223にOCR機能を持たせてもよい。
また、出力装置230としては、ディスプレイ231、スピーカ232、プリンタ233などがある。ディスプレイ231は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ232は、効果音や読み上げ音などの音声を出力する。また、プリンタ233は、画像データや文書データを印刷する。
(仕様検証装置200の機能的構成)
つぎに、この発明の実施の形態にかかる仕様検証装置200の機能的構成について説明する。図3は、この発明の実施の形態にかかる仕様検証装置200の機能的構成を示すブロック図である。図3において、仕様検証装置200は、取得部301と、検出部302と、判定部303と、算出部304と、出力部305と、選択部306と、作成部307と、から構成されている。
仕様検証装置200は、ソフトウェアやハードウェアなど設計対象の設計仕様に対する設計対象の要求仕様の網羅性を検証するコンピュータ装置である。また、仕様検証装置200の各機能301〜307は、記憶領域に格納された当該機能に関するプログラムをCPUに実行させることにより、当該機能を実現することができる。また、各機能301〜307からの出力データは記憶領域に保持される。また、図3中矢印で示した接続先の機能的構成は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをCPUに実行させる。
まず、取得部301は、設計対象の要求仕様を示すユースケース記述の中から各ユースケースを実行するために満たすべき条件を取得する機能を有する。具体的には、ユースケースごとに、該ユースケースの実行前に満たすべき事前条件と、該ユースケースの実行後に満たすべき事後条件と、事後条件が発生するまでの間に該ユースケースに要求される不変条件とを取得する。
ユースケース記述とは、設計対象の要求仕様を示すコンピュータに読み取り可能な電子情報である。ユースケース記述には、設計対象の機能をあらわすユースケース図内の各ユースケースを実行するために満たすべき条件が定義されている。具体的には、ユースケースごとに、事前条件、事後条件および不変条件が定義されている。
事前条件とは、ユースケースの実行前に満たすべき(真となる)条件である。事後条件とは、ユースケースの実行後に満たすべき条件である。不変条件とは、ユースケースに関する事後条件が発生するまでの間(ユースケースの実行中)にユースケースに要求される不変の条件である。
ここで、ユースケース記述のデータ構造について説明する。図4は、ユースケース記述のデータ構造を示す説明図である。図4において、ユースケース記述には、ユースケースごとに、該ユースケースを実行するために満たすべき事前条件、事後条件および不変条件が定義されている。また、各ユースケースに対応するパス(シナリオ)を実行するために満たすべき事前条件、事後条件および不変条件が定義されている。
具体的には、最終的に目的は同じであっても目的を達成するための手続きが異なるパスについて、該パスを実行するために満たすべき事前条件、事後条件および不変条件が定義されている。ここで、銀行のATMシステムを利用して預金を引き出す場合を例に挙げると、目的(預金を引き出す)が同じであっても目的を達成するための手段(パス)が複数存在する。
たとえば、キャッシュカードを使って預金を引き出すパスと、預金通帳を使って預金を引き出すパスとが存在する。この場合、ユースケース記述には、キャッシュカードを使って預金を引き出すパスおよび預金通帳を使って預金を引き出すパスについて、該各パスを実行するために満たすべき事前条件、事後条件および不変条件を定義する。
取得部301は、パスを実行するために満たすべき条件が定義されている場合、各ユースケースを実行するために満たすべき事前条件、事後条件および不変条件とともに、各ユースケースに対応するパスを実行するために満たすべき事前条件、事後条件および不変条件を取得することとなる。
検出部302は、設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、取得部301によって取得された条件を満たす状態を検出する機能を有する。具体的には、有限状態機械モデルの初期状態から事後条件を満たす状態に辿り着くまでの間に、事前条件を満たす状態を経由し、かつ、不変条件を満たす状態遷移パス内の状態を検出することとしてもよい。
ここで、有限状態機械モデルとは、設計対象の設計仕様を示すコンピュータに読み取り可能な電子情報である。具体的には、設計対象が取ることのできる有限の状態集合およびある状態から他の状態への可能な有限の遷移集合を用いて記述された動作(動的)モデルである。この検出処理は、ユースケースごとに、取得部301によって取得された各ユースケースを実行するために満たすべき条件を用いて実行される。
また、検出処理の具体例としては、電子情報である有限状態機械モデルを読み込んで、各ユースケースを実行するために満たすべき条件を示す記述を検出することとしてもよい。また、有限状態機械モデルを実際に起動させて、該有限状態機械モデルの動作を確認することにより、上記条件を満たす状態を検出することとしてもよい。
なお、上述した設計対象の要求仕様を示すユースケース記述および該設計対象の設計仕様を示す有限状態機械モデルは、仕様検証装置200に直接入力することとしてもよく、また、ネットワーク240を介して外部のコンピュータ装置から取得することとしてもよい。
判定部303は、検出部302によって検出された検出結果に基づいて、有限状態機械モデルに表現されている状態集合のうち非検出の状態が存在するか否かを判定する機能を有する。すなわち、ユースケース記述に定義されている条件を用いて、有限状態機械モデルに表現されているすべての状態を検出したか否かを判定する。具体的には、算出部304によって算出された算出結果に基づいて、非検出の状態の存否を判定することとしてもよい。
算出部304は、有限状態機械モデルに表現されている状態集合の状態数に対する、検出部302によって検出された状態の状態数の割合(以下、「状態カバレッジ」という)を算出する機能を有する。具体的には、設計対象が取ることのできる有限の状態集合に対して、検出部302によって検出された状態がどの程度網羅しているのかをあらわす指標を算出する。
たとえば、有限状態機械モデルに表現されている状態集合の状態数を「10」とする。このとき、検出部302によって検出された状態数が「8」であった場合、状態カバレッジは『8/10=4/5→80%』となる。また、検出部302によって検出された状態数が「10」であった場合、状態カバレッジは『10/10=1→100%』となる。
判定部303は、算出部304によって算出された状態カバレッジに基づいて、非検出の状態の存否を判定する。たとえば、状態カバレッジが100%未満であった場合、非検出の状態が存在すると判定し、一方で、状態カバレッジが100%であった場合、非検出の状態が存在しないと判定することとしてもよい。
また、算出部304は、有限状態機械モデルに表現されている遷移集合の遷移数に対する、検出部302によって検出された遷移の遷移数の割合(以下、「遷移カバレッジ」という)を算出する機能を有する。具体的には、ある状態から他の状態への可能な有限の遷移集合に対して、検出部302によって検出された遷移がどの程度網羅しているのかをあらわす指標を算出する。
たとえば、有限状態機械モデルに表現されている状態間の遷移集合の遷移数を「10」とする。このとき、検出部302によって検出された遷移数が「8」であった場合、遷移カバレッジは『8/10=4/5→80%』となる。また、検出部302によって検出された遷移数が「10」であった場合、遷移カバレッジは『10/10=1→100%』となる。
判定部303は、算出部304によって算出された遷移カバレッジに基づいて、非検出の遷移の存否を判定する。たとえば、遷移カバレッジが100%であった場合、非検出の遷移が存在すると判定し、一方で、遷移カバレッジが100%であった場合、非検出の遷移が存在しないと判定することとしてもよい。また、判定部303の判定基準となるカバレッジ基準(状態カバレッジ、遷移カバレッジ)は、任意に選択可能としてもよい。
選択部306は、カバレッジ基準の選択を受け付ける機能を有する。具体的には、「状態カバレッジ」、「遷移カバレッジ」、「状態カバレッジおよび遷移カバレッジ」のいずれかをカバレッジ基準として選択することができる。カバレッジ基準の選択は、図2に示したキーボード221やマウス222などの入力装置220をユーザが操作することによりおこなうこととしてもよい。
また、算出部304は、選択部306によってカバレッジ基準が選択された場合、選択されたカバレッジ基準に応じて、状態カバレッジまたは/および遷移カバレッジを算出することとしてもよい。そして、判定部303は、選択部306によって選択されたカバレッジ基準に基づいて、非検出の状態または/および遷移の存否を判定することとなる。
また、算出部304は、ユースケースごとに、状態カバレッジ(または遷移カバレッジ)を算出することとしてもよい。具体的には、ユースケースごとに、各ユースケースの動作を実現する状態遷移パス内の状態数(または遷移数)に対する、取得部301によって取得された各ユースケースの条件を満たす状態数(または遷移数)の割合を算出する。これにより、ユースケースごとに、検出部302によって検出された状態(または遷移)がどの程度網羅しているのかをあらわす指標を算出することができる。
そして、判定部303は、各ユースケースの動作を実現する状態遷移パスごとに、非検出の状態または/および遷移の存否を判定することとしてもよい。具体的には、算出部304によって算出されたユースケースごとの状態カバレッジまたは/および遷移カバレッジに基づいて、各ユースケースの動作を実現する状態遷移パスごとの非検出の状態または/および遷移の存否を判定する。
出力部305は、判定部303によって判定された判定結果を出力する機能を有する。具体的には、非検出の状態または/および遷移の存否を示す判定結果を出力する。このとき、各ユースケースの動作を実現する状態遷移パスごとの非検出の状態または/および遷移の存否を示す判定結果を出力することとしてもよい。
また、この判定結果には、非検出の状態または/および遷移を特定する情報(たとえば、図9に示すメッセージ情報910,920)が含まれていてもよく、さらに、非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定する情報(たとえば、図9に示すメッセージ情報930)が含まれていてもよい。
作成部307は、非検出の状態または/および遷移を特定するメッセージ情報を作成する機能を有する。具体的には、たとえば、ROMやRAMなどの記憶領域に予め保持されているテンプレートを読み出して、該テンプレートの所定位置に非検出の状態または/および遷移を特定するための文字列を埋め込むことによりメッセージ情報を作成する。
また、作成部307は、非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定するメッセージ情報を作成することとしてもよい。具体的には、たとえば、記憶領域からテンプレートを読み出して、該テンプレートの所定位置に有限状態機械モデルの初期状態から非検出の状態または/および遷移に辿り着くまでの状態遷移を特定するための文字列を埋め込むことによりメッセージ情報を作成する。
出力部305は、作成部307によって作成されたメッセージ情報を含む判定結果を出力することとしてもよい。なお、出力部305による出力形式は、ディスプレイ231での画面表示、プリンタ233での印刷出力、記憶領域へのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。
(仕様検証の具体例)
つぎに、この発明の実施の形態にかかる仕様検証の具体例として、演算器の設計仕様に対する要求仕様の網羅性を検証する場合を例に挙げて説明する。まず、演算器の要求仕様を示すユースケース図およびユースケース記述について説明する。
図5は、演算器500のユースケース図である。図5において、符号500は、設計対象の演算器である。符号501は、演算器500の制御を司るCPUをあらわすアクターである。符号502は、『加算する』という演算器500の一機能を示すユースケースである。符号503は、『減算する』という演算器500の一機能を示すユースケースである。
図6は、演算器500のユースケース記述を示す説明図である。図6において、ユースケース記述610には、ユースケース502を機能させるための条件(事前条件、事後条件、不変条件)が定義されている。また、ユースケース記述620には、ユースケース503を機能させるための条件(事前条件、事後条件、不変条件)が定義されている。
つぎに、演算器500の設計仕様を示す有限状態機械モデルについて説明する。有限状態機械モデルは、たとえば、演算器500が有するレジスタの機能を定義するレジスタ・ポート情報および各レジスタの動作仕様を示すレジスタ動作仕様情報に基づいて生成される。なお、有限状態機械モデルの生成手法については公知技術のため説明を省略する。
この有限状態機械モデルは、状態遷移グラフを用いてグラフィカルに表現することができる。図7は、演算器500の状態遷移グラフを示す説明図(その1)である。図7において、状態遷移グラフ700は、演算器500の設計仕様が取ることのできる任意の遷移元と遷移元に対する遷移先の状態との間の遷移条件が各遷移枝に関連付けられたグラフである。
また、有限状態機械モデルをKripkeモデルに変換することにより、状態遷移グラフ700を細分化して表現することができる。図8は、演算器500の状態遷移グラフを示す説明図(その2)である。図8において、状態遷移グラフ800には、演算器500の取ることのできる有限の状態集合(状態S0〜状態S6)およびある状態から他の状態への可能な遷移集合(遷移T1〜遷移T9)が表現されている。
具体的には、各レジスタの動作仕様に基づく状態間の状態遷移がグラフィカルに表現されている。たとえば、初期状態である状態S0において、リセットが解除され加算モード(ADD)がセットされると、状態S0から状態S1に遷移する(遷移T1)。このあと、加算が終了すると、状態S1から状態S4に遷移し(遷移T2)、このあと、リセットされると、状態S4から状態S0に遷移する(遷移T3)。
以下、状態遷移グラフ800を用いて、演算器500の仕様検証の具体的手順を説明する。まず、上記取得部301により、ユースケース記述610,620の中からユースケース502,503を実行するために満たすべき条件を取得する。具体的には、ユースケース記述610の中からユースケース502を実行するために満たすべき事前条件、事後条件および不変条件を取得し、ユースケース記述620の中からユースケース503を実行するために満たすべき事前条件、事後条件および不変条件を取得する。
つぎに、上記検出部302により、演算器500の設計仕様を示す状態遷移グラフ800に含まれている状態集合の中から、取得部301によって取得された条件を満たす状態を検出する。具体的には、状態遷移グラフ800の初期状態を特定する。初期状態は、レジスタ・ポート情報に定義されている各レジスタの初期値から特定することができる。さらに、ユースケース502を実行するために満たすべき事前条件、事後条件および不変条件をそれぞれ満たす状態を特定する。
状態遷移グラフ800において、初期状態は状態S0である。また、事前条件を満たす状態は、リセットが解除され加算モードがセットされている状態S1である。また、事後条件を満たす状態は、加算終了状態の状態S4である。また、不変条件を満たす状態は、リセット解除を維持している状態S1〜状態S3である。
このあと、初期状態から事後条件を満たす状態S4に辿り着くまでの間に、事前条件を満たす状態S1を経由し、かつ、不変条件を満たす状態遷移パスP1を探索する。そして、探索された状態遷移パスP1内の状態S0、状態S1および状態S4を検出する。
同様にして、ユースケース503を実行するために満たすべき事前条件、事後条件および不変条件をそれぞれ満たす状態を特定する。状態遷移グラフ800において、事前条件を満たす状態は、リセットが解除され減算モードがセットされている状態S2である。また、事後条件を満たす状態は、減算終了状態の状態S5である。また、不変条件を満たす状態は、リセット解除を維持している状態S1〜状態S3である。
このあと、初期状態から事後条件を満たす状態S5に辿り着くまでの間に、事前条件を満たす状態S2を経由し、かつ、不変条件を満たす状態遷移パスP2を探索する。そして、探索された状態遷移パスP2内の状態S0、状態S2および状態S5を検出する。
つぎに、上記算出部304により、選択部306によって選択されたカバレッジ基準に応じて、状態カバレッジまたは/および遷移カバレッジを算出する。ここでは、カバレッジ基準として、状態カバレッジおよび遷移カバレッジが選択されているとする。
まず、状態カバレッジについて、状態遷移グラフ800内の状態集合の状態数(状態S0〜状態S6の7個)に対する、状態遷移パスP1,P2内の状態数の割合を算出する。具体的には、状態遷移パスP1内の状態数は、状態S0、状態S1および状態S4の3個である。また、状態遷移パスP2内の状態数は、状態S0、状態S2および状態S5の3個である。
そして、状態遷移パスP1,P2内の状態数の和集合(状態S0、状態S1、状態S2、状態S4および状態S5の5個)を算出して、状態遷移グラフ800内の状態集合の状態数に対する割合を算出する。この結果、状態カバレッジは、『5/7→71%(小数点以下切り捨て)』となる。なお、状態遷移パスP1,P2内における重複する状態(状態S0)については1個として扱う。
つぎに、遷移カバレッジについて、状態遷移グラフ800内の状態間の遷移集合の遷移数(遷移枝T1〜遷移枝T9の9個)に対する、状態遷移パスP1,P2内の遷移数の割合を算出する。具体的には、状態遷移パスP1内の遷移数は、遷移枝T1(S0→S1)および遷移枝T2(S1→S4)の2個である。また、状態遷移パスP2内の遷移数は、遷移枝T4(S0→S2)および遷移枝T5(S2→S5)の2個である。
そして、状態遷移パスP1,P2内の遷移数の和集合(遷移枝T1、遷移枝T2、遷移枝T4および遷移枝T5の4個)を算出して、状態遷移グラフ800内の状態間の遷移集合の状態数に対する割合を算出する。この結果、遷移カバレッジは、『4/9→44%(小数点以下切り捨て)』となる。
つぎに、上記判定部303により、算出部304によって算出された状態カバレッジおよび遷移カバレッジに基づいて、非検出の状態および遷移の存否を判定する。ここでは、状態カバレッジおよび遷移カバレッジいずれも100%となっていないため、非検出の状態および遷移が存在すると判定する。最後に、上記出力部305により、非検出の状態および遷移が存在することを示す判定結果を出力する。
このとき、作成部307によって作成されたメッセージ情報を含む判定結果を出力することとしてもよい。ここで、仕様検証装置200のディスプレイ231に表示される判定結果について説明する。図9は、ディスプレイ231に表示される画面例を示す説明図である。図9において、ディスプレイ231には、非検出の状態を特定するためのメッセージ情報910と、非検出の遷移を特定するためのメッセージ情報920と、非検出の状態に辿り着くまでの状態遷移パスを特定するためのメッセージ情報930と、を含む判定結果900が表示されている。
具体的には、メッセージ情報910には、非検出の状態である状態S3および状態S6をあらわす文字列(S3,S6)が所定位置911に埋め込まれている。また、メッセージ情報920には、非検出の遷移である遷移T3、遷移T6、遷移T7、遷移T8および遷移T9をあらわす文字列(S4→S0,S5→S0,S0→S3,S3→S6,S6→S0)が所定位置921に埋め込まれている。
また、メッセージ情報930には、非検出の状態である状態S3および状態S6に辿り着くまでの状態遷移パス(状態S0→状態S3、状態S0→状態S3→状態S6)をあらわす文字列(S0→S3,S0→S3→S6)が所定位置931に埋め込まれている。なお、図示は省略するが、各状態の特定を容易にするために、非検出の状態(状態S3、状態S6)の各レジスタの値を示す情報を出力することとしてもよい。
また、非検出の状態または/および遷移を含む状態遷移パスによって動作を実現するユースケースを特定するメッセージ情報を出力することとしてもよい。ここでは、『減算する』という設計対象の一機能を示すユースケースの動作を実現する状態遷移パス内の状態または/および遷移が非検出となっているため、該ユースケースを特定するメッセージ情報(たとえば、「SUB」という文字列)を出力することとしてもよい。
ユーザは、この判定結果を確認することにより、非検出の状態および遷移を把握することができる。さらに、メッセージ情報910,920および930の内容を分析することにより、ユースケース記述に定義されていないユースケース(または、パス)を発見することができる。
具体的には、非検出の遷移T3、遷移T6および遷移T9から、『リセットする』という演算器500の一機能を示すユースケースが漏れていることが分かる。また、非検出の状態である状態S3および状態S6に辿り着くまでの状態遷移パスから、ユースケース503の異常系の動作に関するパスが漏れていることが分かる。
そして、実装の前段階において、この判定結果をもとに、図5に示すユースケース図および図6に示したユースケース記述620を修正することができる。図10および図11は、ユースケースの追加を示す説明図である。図10において、演算器500のユースケース図に、外部リセットをあらわすアクター1001が追加され、さらに、『リセットする』という演算器500の一機能を示すユースケース1002が追加されている。
また、図11において、ユースケース1002の追加に応じて、このユースケース1002を機能させるための条件(事前条件、事後条件、不変条件)を定義するユースケース記述1100が追加されている。具体的には、リセットされると、すべてのレジスタが初期値に戻るユースケースを機能させるための条件が定義されている。
図12は、パスの追加を示す説明図である。図12において、『減算する』という演算器500の一機能を示すユースケース記述620に、正常系のパスおよび異常系のパスを機能させるための条件が追加されている。具体的には、ユースケース記述1200には、減算モードがセットされると(減算結果≧0)、減算終了状態に遷移する正常パスを機能させるための条件、および、他のモードがセットされると(減算結果<0)、エラー状態に遷移する異常パスを機能させるための条件が定義されている。
このように、実装の前段階において、設計仕様に対する要求仕様の整合性を確保することにより、テストケース漏れによる検証作業の手戻りを防ぐことができ、論理検証の品質を向上させることができる。
(仕様検証装置200の仕様検証処理手順)
つぎに、この発明の実施の形態にかかる仕様検証装置200の仕様検証処理手順について説明する。図13は、この発明の実施の形態にかかる仕様検証装置200の仕様検証処理手順を示すフローチャートである。図13のフローチャートにおいて、まず、取得部301により、設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得したか否かを判断する(ステップS1301)。
ここで、条件を取得するのを待って(ステップS1301:No)、取得した場合(ステップS1301:Yes)、検出部302により、設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、取得部301によって取得された条件を満たす状態を検出する検出処理を実行する(ステップS1302)。このあと、算出部304により、状態カバレッジまたは/および遷移カバレッジを算出する(ステップS1303)。
そして、判定部303により、算出部304によって算出された状態カバレッジまたは/および遷移カバレッジに基づいて、非検出の状態または/および遷移が存在するか否かを判定する(ステップS1304)。ここで、非検出の状態または/および遷移が存在しない場合(ステップS1304:No)、出力部305により、非検出の状態または/および遷移が存在しないことを示すOK結果を出力して(ステップS1305)、本フローチャートによる一連の処理を終了する。
一方、ステップS1304において、非検出の状態または/および遷移が存在する場合(ステップS1304:Yes)、作成部307により、非検出の状態または/および遷移を特定するメッセージ情報を作成して(ステップS1306)、最後に、出力部305により、作成部307によって作成されたメッセージ情報を含むNG結果を出力して(ステップS1307)、本フローチャートによる一連の処理を終了する。
つぎに、図13に示したステップS1302における検出処理の処理手順について説明する。図14は、ステップS1302における検出処理の処理手順を示すフローチャートである。図14のフローチャートにおいて、まず、設計対象の設計仕様を示す有限状態機械モデルをKripkeモデルに変換する(ステップS1401)。
このあと、各レジスタの値を参照することにより、Kripkeモデルの初期状態を特定する(ステップS1402)。さらに、取得部301によって取得された事前条件、事後条件および不変条件を用いて、事後条件を満たす状態を特定し(ステップS1403)、事前条件を満たす状態を特定し(ステップS1404)、不変条件を満たす状態を特定する(ステップS1405)。
このあと、ステップS1402〜ステップS1405において特定された状態を用いて、初期状態から事後条件を満たす状態に辿り着くまでの間に、事前条件を満たす状態を経由し、かつ、不変条件を満たす状態遷移パスを探索する(ステップS1406)。そして、この状態遷移パス内の状態または/および遷移を検出して(ステップS1407)、図13に示したステップS1303に移行する。
このように、この発明の実施の形態によれば、設計対象の有限状態機械モデルに表現されている状態集合に対する、設計対象のユースケース記述に定義されている状態集合の網羅性を検証することにより、設計仕様と要求仕様との間の整合性を確認することができる。また、有限状態機械モデルに表現されている遷移集合に対する、ユースケース記述に定義されている遷移集合の網羅性を検証することにより、設計仕様と要求仕様との間の整合性を確認することができる。
具体的には、ユースケース(または、パス)を実行するために満たすべき事前条件、事後条件および不変条件を用いて、ユースケース記述に定義されているユースケースの動作を実現する状態遷移パスを探索し、該状態遷移パス内の状態または/および遷移を検出することができる。
そして、設計対象が取ることのできる有限の状態集合に対して、検出された状態がどの程度網羅しているのかをあらわす状態カバレッジを用いて、非検出の状態の存否を判定することができる。また、ある状態から他の状態への可能な有限の遷移集合に対して、検出された遷移がどの程度網羅しているのかをあらわす遷移カバレッジを用いて、非検出の遷移の存否を判定することができる。
これにより、実装の前段階において、ユースケース記述に未定義のユースケース(またはパス)を発見することができる。さらに、判定結果に含まれるメッセージ情報をもとに、非検出の状態または/および遷移を特定することができるとともに、該非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定することができる。
このため、実装の前段階において、未定義のユースケースをユースケース記述に追加して定義するなどの修正をおこなうことができる。この結果、テストケース漏れによる検証作業の手戻りを削減することができ、論理検証の品質向上および検証作業の短縮化を実現することができる。
以上説明したように、仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法によれば、実装の前段階において、設計仕様に対する要求仕様の整合性をチェックすることにより、効率的かつ網羅的な論理検証を実現し、設計者の負担軽減および設計期間の短縮化を図ることができる。
なお、本実施の形態で説明した仕様検証方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明した仕様検証装置200は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した仕様検証装置200の機能的構成301〜307をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、仕様検証装置200を製造することができる。
(付記1)設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証させる仕様検証プログラムであって、
前記設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得させる取得工程と、
前記設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、前記取得工程によって取得された条件を満たす状態を検出させる検出工程と、
前記検出工程によって検出された結果、前記状態集合のうち検出されなかった非検出の状態が存在するか否かを判定させる判定工程と、
前記判定工程によって判定された判定結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする仕様検証プログラム。
(付記2)前記検出工程は、
前記有限状態機械モデルに表現されている状態間の遷移集合の中から、前記取得工程によって取得された条件を満たす遷移を検出させ、
前記判定工程は、
前記検出工程によって検出された結果、前記遷移集合のうち検出されなかった非検出の遷移が存在するか否かを判定させることを特徴とする付記1に記載の仕様検証プログラム。
(付記3)前記取得工程は、
前記ユースケースごとに、前記ユースケースの実行前に満たすべき事前条件と、前記ユースケースの実行後に満たすべき事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件と、を取得させ、
前記検出工程は、
前記有限状態機械モデルの初期状態から前記事後条件を満たす状態に辿り着くまでの間に、前記事前条件を満たす状態を経由し、かつ、前記不変条件を満たす状態遷移パス内の状態を検出させることを特徴とする付記1または2に記載の仕様検証プログラム。
(付記4)前記検出工程は、
前記状態遷移パス内の状態間の遷移を検出させることを特徴とする付記3に記載の仕様検証プログラム。
(付記5)前記有限状態機械モデルに表現されている状態集合の状態数に対する、前記検出工程によって検出された状態の状態数の割合(以下、「状態カバレッジ」という)を算出させる算出工程を前記コンピュータに実行させ、
前記判定工程は、
前記算出工程によって算出された状態カバレッジに基づいて、前記非検出の状態の存否を判定させることを特徴とする付記1〜4のいずれか一つに記載の仕様検証プログラム。
(付記6)前記算出工程は、
前記有限状態機械モデルに表現されている遷移集合の遷移数に対する、前記検出工程によって検出された遷移の遷移数の割合(以下、「遷移カバレッジ」という)を算出させ、
前記判定工程は、
前記算出工程によって算出された遷移カバレッジに基づいて、前記非検出の遷移の存否を判定させることを特徴とする付記5に記載の仕様検証プログラム。
(付記7)前記判定結果は、
前記非検出の状態または/および遷移の存否を示すことを特徴とする付記1〜6のいずれか一つに記載の仕様検証プログラム。
(付記8)前記判定結果は、
前記非検出の状態または/および遷移を特定するメッセージ情報を含むことを特徴とする付記1〜7のいずれか一つに記載の仕様検証プログラム。
(付記9)前記判定結果は、
前記有限状態機械モデルの初期状態から前記非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定するメッセージ情報を含むことを特徴とする付記1〜8のいずれか一つに記載の仕様検証プログラム。
(付記10)付記1〜9のいずれか一つに記載の仕様検証プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
(付記11)設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証する仕様検証装置であって、
前記設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得する取得手段と、
前記設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、前記取得手段によって取得された条件を満たす状態を検出する検出手段と、
前記検出手段によって検出された結果、前記状態集合のうち検出されなかった非検出の状態が存在するか否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする仕様検証装置。
(付記12)前記検出手段は、
前記有限状態機械モデルに表現されている状態間の遷移集合の中から、前記取得手段によって取得された条件を満たす遷移を検出し、
前記判定手段は、
前記検出手段によって検出された結果、前記遷移集合のうち検出されなかった非検出の遷移が存在するか否かを判定することを特徴とする付記11に記載の仕様検証装置。
(付記13)前記取得手段は、
前記ユースケースごとに、前記ユースケースの実行前に満たすべき事前条件と、前記ユースケースの実行後に満たすべき事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件と、を取得し、
前記検出手段は、
前記有限状態機械モデルの初期状態から前記事後条件を満たす状態に辿り着くまでの間に、前記事前条件を満たす状態を経由し、かつ、前記不変条件を満たす状態遷移パス内の状態を検出することを特徴とする付記11または12に記載の仕様検証装置。
(付記14)前記検出手段は、
前記状態遷移パス内の状態間の遷移を検出することを特徴とする付記13に記載の仕様検証装置。
(付記15)前記有限状態機械モデルに表現されている状態集合の状態数に対する、前記検出手段によって検出された状態の状態数の割合(以下、「状態カバレッジ」という)を算出する算出手段を含み、
前記判定手段は、
前記算出手段によって算出された状態カバレッジに基づいて、前記非検出の状態の存否を判定することを特徴とする付記11〜14のいずれか一つに記載の仕様検証装置。
(付記16)前記算出手段は、
前記有限状態機械モデルに表現されている遷移集合の遷移数に対する、前記検出手段によって検出された遷移の遷移数の割合(以下、「遷移カバレッジ」という)を算出し、
前記判定手段は、
前記算出手段によって算出された遷移カバレッジに基づいて、前記非検出の遷移の存否を判定することを特徴とする付記15に記載の仕様検証装置。
(付記17)前記判定結果は、
前記非検出の状態または/および遷移の存否を示すことを特徴とする付記11〜16のいずれか一つに記載の仕様検証装置。
(付記18)前記判定結果は、
前記非検出の状態または/および遷移を特定するメッセージ情報を含むことを特徴とする付記11〜17のいずれか一つに記載の仕様検証装置。
(付記19)前記判定結果は、
前記有限状態機械モデルの初期状態から前記非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定するメッセージ情報を含むことを特徴とする付記11〜18のいずれか一つに記載の仕様検証装置。
(付記20)設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証する仕様検証方法であって、
前記設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得する取得工程と、
前記設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、前記取得工程によって取得された条件を満たす状態を検出する検出工程と、
前記検出工程によって検出された結果、前記状態集合のうち検出されなかった非検出の状態が存在するか否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする仕様検証方法。
(付記21)前記検出工程は、
前記有限状態機械モデルに表現されている状態間の遷移集合の中から、前記取得工程によって取得された条件を満たす遷移を検出し、
前記判定工程は、
前記検出工程によって検出された結果、前記遷移集合のうち検出されなかった非検出の遷移が存在するか否かを判定することを特徴とする付記20に記載の仕様検証方法。
(付記22)前記取得工程は、
前記ユースケースごとに、前記ユースケースの実行前に満たすべき事前条件と、前記ユースケースの実行後に満たすべき事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件と、を取得し、
前記検出工程は、
前記有限状態機械モデルの初期状態から前記事後条件を満たす状態に辿り着くまでの間に、前記事前条件を満たす状態を経由し、かつ、前記不変条件を満たす状態遷移パス内の状態を検出することを特徴とする付記20または21に記載の仕様検証方法。
(付記23)前記検出工程は、
前記状態遷移パス内の状態間の遷移を検出することを特徴とする付記22に記載の仕様検証方法。
(付記24)前記有限状態機械モデルに表現されている状態集合の状態数に対する、前記検出工程によって検出された状態の状態数の割合(以下、「状態カバレッジ」という)を算出する算出工程を含み、
前記判定工程は、
前記算出工程によって算出された状態カバレッジに基づいて、前記非検出の状態の存否を判定することを特徴とする付記20〜23のいずれか一つに記載の仕様検証方法。
(付記25)前記算出工程は、
前記有限状態機械モデルに表現されている遷移集合の遷移数に対する、前記検出工程によって検出された遷移の遷移数の割合(以下、「遷移カバレッジ」という)を算出し、
前記判定工程は、
前記算出工程によって算出された遷移カバレッジに基づいて、前記非検出の遷移の存否を判定することを特徴とする付記24に記載の仕様検証方法。
(付記26)前記判定結果は、
前記非検出の状態または/および遷移の存否を示すことを特徴とする付記20〜25のいずれか一つに記載の仕様検証方法。
(付記27)前記判定結果は、
前記非検出の状態または/および遷移を特定するメッセージ情報を含むことを特徴とする付記20〜26のいずれか一つに記載の仕様検証方法。
(付記28)前記判定結果は、
前記有限状態機械モデルの初期状態から前記非検出の状態または/および遷移に辿り着くまでの状態遷移パスを特定するメッセージ情報を含むことを特徴とする付記20〜27のいずれか一つに記載の仕様検証方法。
以上のように、本発明にかかる仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法は、各種ソフトウェアやハードウェアなどの設計対象に有用である。
この発明の実施の形態にかかる仕様検証の概要を示す説明図である。 この発明の実施の形態にかかる仕様検証装置のハードウェア構成を示す説明図である。 この発明の実施の形態にかかる仕様検証装置の機能的構成を示すブロック図である。 ユースケース記述のデータ構造を示す説明図である。 演算器のユースケース図である。 演算器のユースケース記述を示す説明図である。 演算器の状態遷移グラフを示す説明図(その1)である。 演算器の状態遷移グラフを示す説明図(その2)である。 ディスプレイに表示される画面例を示す説明図である。 ユースケースの追加を示す説明図(その1)である。 ユースケースの追加を示す説明図(その2)である。 パスの追加を示す説明図である。 この発明の実施の形態にかかる仕様検証装置の仕様検証処理手順を示すフローチャートである。 ステップS1302における検出処理の処理手順を示すフローチャートである。
符号の説明
200 仕様検証装置
301 取得部
302 検出部
303 判定部
304 算出部
305 出力部
306 選択部
307 作成部
500 演算器
501,1001 アクター
502,503,1002 ユースケース
610,620,1200 ユースケース記述
700,800 状態遷移グラフ
900 判定結果
910,920,930 メッセージ情報
911,921,931 所定位置

Claims (8)

  1. 設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証させる仕様検証プログラムであって、
    前記設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得させる取得工程と、
    前記設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、前記取得工程によって取得された条件を満たす状態を検出させる検出工程と、
    前記検出工程によって検出された結果、前記状態集合のうち検出されなかった非検出の状態が存在するか否かを判定させる判定工程と、
    前記判定工程によって判定された判定結果を出力させる出力工程と、
    をコンピュータに実行させることを特徴とする仕様検証プログラム。
  2. 前記検出工程は、
    前記有限状態機械モデルに表現されている状態間の遷移集合の中から、前記取得工程によって取得された条件を満たす遷移を検出させ、
    前記判定工程は、
    前記検出工程によって検出された結果、前記遷移集合のうち検出されなかった非検出の遷移が存在するか否かを判定させることを特徴とする請求項1に記載の仕様検証プログラム。
  3. 前記取得工程は、
    前記ユースケースごとに、前記ユースケースの実行前に満たすべき事前条件と、前記ユースケースの実行後に満たすべき事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件と、を取得させ、
    前記検出工程は、
    前記有限状態機械モデルの初期状態から前記事後条件を満たす状態に辿り着くまでの間に、前記事前条件を満たす状態を経由し、かつ、前記不変条件を満たす状態遷移パス内の状態を検出させることを特徴とする請求項1または2に記載の仕様検証プログラム。
  4. 前記検出工程は、
    前記状態遷移パス内の状態間の遷移を検出させることを特徴とする請求項3に記載の仕様検証プログラム。
  5. 前記有限状態機械モデルに表現されている状態集合の状態数に対する、前記検出工程によって検出された状態の状態数の割合(以下、「状態カバレッジ」という)を算出させる算出工程を前記コンピュータに実行させ、
    前記判定工程は、
    前記算出工程によって算出された状態カバレッジに基づいて、前記非検出の状態の存否を判定させることを特徴とする請求項1〜4のいずれか一つに記載の仕様検証プログラム。
  6. 請求項1〜5のいずれか一つに記載の仕様検証プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
  7. 設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証する仕様検証装置であって、
    前記設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得する取得手段と、
    前記設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、前記取得手段によって取得された条件を満たす状態を検出する検出手段と、
    前記検出手段によって検出された結果、前記状態集合のうち検出されなかった非検出の状態が存在するか否かを判定する判定手段と、
    前記判定手段によって判定された判定結果を出力する出力手段と、
    を備えることを特徴とする仕様検証装置。
  8. 設計対象の設計仕様に対する当該設計対象の要求仕様の網羅性を検証する仕様検証方法であって、
    前記設計対象の要求仕様を示すユースケース記述の中から、各ユースケースを実行するために満たすべき条件を取得する取得工程と、
    前記設計対象の設計仕様を示す有限状態機械モデルに表現されている状態集合の中から、前記取得工程によって取得された条件を満たす状態を検出する検出工程と、
    前記検出工程によって検出された結果、前記状態集合のうち検出されなかった非検出の状態が存在するか否かを判定する判定工程と、
    前記判定工程によって判定された判定結果を出力する出力工程と、
    を含んだことを特徴とする仕様検証方法。
JP2007159004A 2007-06-15 2007-06-15 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法 Expired - Fee Related JP4946651B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007159004A JP4946651B2 (ja) 2007-06-15 2007-06-15 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法
US12/136,378 US8079001B2 (en) 2007-06-15 2008-06-10 Verification of requirements specification, design specification, and computer-readable storage medium apparatus, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007159004A JP4946651B2 (ja) 2007-06-15 2007-06-15 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法

Publications (2)

Publication Number Publication Date
JP2008310663A JP2008310663A (ja) 2008-12-25
JP4946651B2 true JP4946651B2 (ja) 2012-06-06

Family

ID=40133130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007159004A Expired - Fee Related JP4946651B2 (ja) 2007-06-15 2007-06-15 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法

Country Status (2)

Country Link
US (1) US8079001B2 (ja)
JP (1) JP4946651B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5287058B2 (ja) * 2008-09-08 2013-09-11 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
JP5751431B2 (ja) 2010-04-12 2015-07-22 日本電気株式会社 不整合検出システム、方法、およびプログラム
CN101915894B (zh) * 2010-07-22 2012-05-30 北京交大资产经营有限公司 测试数字逻辑器件中实时有限状态机的方法
JP5404721B2 (ja) * 2011-09-08 2014-02-05 日本電信電話株式会社 シナリオテストのテスト項目生成装置及び方法及びプログラム
US9229688B2 (en) * 2013-03-14 2016-01-05 Massively Parallel Technologies, Inc. Automated latency management and cross-communication exchange conversion
US10409941B2 (en) * 2013-10-31 2019-09-10 Synopsys, Inc. Visual representation of circuit related data
JPWO2016079962A1 (ja) * 2014-11-17 2017-08-31 日本電気株式会社 モデル検査装置、モデル検査方法、および、モデル検査プログラム
US9916234B1 (en) * 2015-01-21 2018-03-13 State Farm Mutual Automobile Insurance Company Systems and methods for mainframe batch testing
CN110162466B (zh) * 2019-04-19 2021-02-09 平安国际智慧城市科技股份有限公司 自动测试方法、装置、计算机设备和存储介质
US11681873B2 (en) * 2019-09-11 2023-06-20 International Business Machines Corporation Creating an executable process from a text description written in a natural language
WO2023156060A1 (de) * 2022-02-15 2023-08-24 Gs Licence Pool Ug Verfahren zur automatisierten verifizierung von anforderungsspezifikationen eines technischen prozesses

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2768754B2 (ja) 1989-09-12 1998-06-25 株式会社東芝 テスト網羅度評価方法ならびに装置
US5517432A (en) * 1994-01-31 1996-05-14 Sony Corporation Of Japan Finite state machine transition analyzer
JPH08249168A (ja) * 1995-03-14 1996-09-27 Fujitsu Ltd ソフトウェア要求仕様検証方法
US6141630A (en) * 1997-08-07 2000-10-31 Verisity Design, Inc. System and method for automated design verification
JPH11102291A (ja) * 1997-09-29 1999-04-13 Hitachi Ltd 仕様整合性検証システム
US6427223B1 (en) * 1999-04-30 2002-07-30 Synopsys, Inc. Method and apparatus for adaptive verification of circuit designs
JP4080644B2 (ja) 1999-06-29 2008-04-23 株式会社東芝 論理回路の検証カバレッジ評価方法
US6751582B1 (en) * 1999-09-09 2004-06-15 International Business Machines Corporation Method and system for enhanced design validation through trace tailoring
US6874135B2 (en) * 1999-09-24 2005-03-29 Nec Corporation Method for design validation using retiming
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US7073143B1 (en) * 2000-11-06 2006-07-04 Cadence Design Systems, Inc. Solving constraint satisfiability problem for circuit designs
US7047178B2 (en) * 2002-11-22 2006-05-16 Texas Instruments Incorporated Emulation pause and reset tracing of multiple sync points pointing to different addresses
US7454324B1 (en) * 2003-01-10 2008-11-18 James Andrew Garrard Seawright Selection of initial states for formal verification
JP3974048B2 (ja) * 2003-02-06 2007-09-12 株式会社東芝 設計検証システム、設計検証方法及び設計検証プログラム
JP4630640B2 (ja) * 2004-11-12 2011-02-09 株式会社東芝 設計情報検証装置および設計情報検証方法
JP4351186B2 (ja) * 2005-05-19 2009-10-28 富士通株式会社 仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置
JP4657912B2 (ja) * 2005-12-26 2011-03-23 富士通セミコンダクター株式会社 設計装置および設計方法とそのプログラム

Also Published As

Publication number Publication date
JP2008310663A (ja) 2008-12-25
US8079001B2 (en) 2011-12-13
US20080312890A1 (en) 2008-12-18

Similar Documents

Publication Publication Date Title
JP4946651B2 (ja) 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法
US9454466B2 (en) Explaining partially illegal combinations in combinatorial models
US20060155521A1 (en) Method and apparatus for supporting verification, and computer product
US20140214396A1 (en) Specification properties creation for a visual model of a system
JP4657912B2 (ja) 設計装置および設計方法とそのプログラム
US8887083B2 (en) Generating equations based on user intent
JP5287092B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP6486574B2 (ja) プログラムコード生成装置、プログラムコード生成方法及びプログラムコード生成プログラム
JP5293521B2 (ja) デザインルールチェック検証装置およびデザインルールチェック検証方法
JP2009099111A (ja) 規則検査プログラム、規則検査方法および規則検査装置
US8024684B2 (en) Apparatus, method, and computer product for estimating power consumption of LSI
JPWO2008038617A1 (ja) 信号選択装置、回路修正装置、回路シミュレータ、回路エミュレータ、信号選択方法およびプログラム
US8713509B2 (en) Circuit design approximation
JP2010009384A (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US8341579B2 (en) Method, apparatus, and system for analyzing operation of semiconductor integrated circuits
JPWO2012049816A1 (ja) モデル検査装置、方法及びプログラム
JP5755861B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP4564914B2 (ja) アサーション自動生成装置および論理回路設計検証方法
JP4747036B2 (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
JP2010072883A (ja) プログラム検証装置、プログラム検証方法、及びプログラム
JP4946588B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP5310397B2 (ja) 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体
JP2004280231A (ja) ソフトウエアの検証方法
JP2008250649A (ja) Ui設計用シナリオ処理プログラム、ui設計用シナリオ処理システムおよびui設計用シナリオ処理方法
JP6556091B2 (ja) システム仕様検証支援装置及びシステム仕様検証支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120130

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: 20120207

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: 20120220

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

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees