JP2009277225A - データ・フロー及びステートチャート表記を組み合わせた混成図からの検査生成方法及び装置 - Google Patents

データ・フロー及びステートチャート表記を組み合わせた混成図からの検査生成方法及び装置 Download PDF

Info

Publication number
JP2009277225A
JP2009277225A JP2009114741A JP2009114741A JP2009277225A JP 2009277225 A JP2009277225 A JP 2009277225A JP 2009114741 A JP2009114741 A JP 2009114741A JP 2009114741 A JP2009114741 A JP 2009114741A JP 2009277225 A JP2009277225 A JP 2009277225A
Authority
JP
Japan
Prior art keywords
node
test
diagram
test generation
tri
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.)
Withdrawn
Application number
JP2009114741A
Other languages
English (en)
Inventor
Devesh Bhatt
デヴェシュ・バット
Kirk Schloegel
カーク・シュローゲル
Stephen O Hickman
スティーヴン・オー・ヒックマン
David Oglesby
デーヴィッド・オグルズビー
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.)
Honeywell International Inc
Original Assignee
Honeywell International 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 Honeywell International Inc filed Critical Honeywell International Inc
Publication of JP2009277225A publication Critical patent/JP2009277225A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】1つの上位セマンティック表記を主に用い1つ以上の副上位セマンティック表記を利用する部分を有する混成線図に基づいて、検査を実行する。
【解決手段】計算機からなる検査生成装置が初期化され(410)ると、ステートチャート表記及びデータ・フロー表記の上位セマンティック表記のからなる線図が入力される(420)。次いで、検査生成装置は、TRIデータ構造に格納されているTRIを、線図を通して伝搬させ、検査生成テンプレートを決定する(430)。ノードについての検査生成テンプレートは、ノードの特定的な機能要件を記述し、ノードへの入力時間シーケンス及びノードからの期待出力から成る。そして、検査生成装置は、線図を通じて伝搬させた制約に基づいて検査を生成し(440)、該検査を実行すべきか否かについて判定し(450)、生成した検査を実行する(460)。
【選択図】図4

Description

本発明は、検査生成及び実行の自動化に関し、更に特定すれば、混成(ハイブリッド)データ・フロー及びステートチャート線図から生成する検査事例の自動検査生成及び実行に関する。
なお、本願は、2008年5月14日に出願され"Method and Apparatus for Hybrid Test Generation from Diagrams with Combined Data Flow and Statechart Notation"(データ・フロー及びステートチャート表記を組み合わせた混成線図からの検査生成方法及び装置)と題する米国仮特許出願第61/053,205号の優先権を主張する。その内容全体は、ここで引用したことにより本願にも含まれるものとする。
従来技術
安全性に対して厳格なソフトウェアの検証は難しい問題であり、大量の時間及びコストが伴う。モデル・ベース開発(MBD:model-based development)ツールが広く用いられており、制御システム(飛行制御、エンジン制御、航行等)に合ったアルゴリズムを指定し、当該制御システムにおいてブロック図を実行することにより、指定したアルゴリズムが正しく実現されることを検証する検査を自動的に作成することができる。この検査生成の自動化によれば、特に、データ・フロー図又はステートチャート図のセマンティックス(semantics)が示す特定の「アルゴリズム要件」を検査するために検査を生成するときに、検証コスト及び時間を大幅に削減することができる。
MBDツール・モデリング表記では、アルゴリズムは、データ・フロー・ブロック図、ステートチャート、又は組み合わせ線図によって指定することができ、該ステートチャートは、データ・フロー・ブロックとしてデータ・フロー図に埋め込まれる(又はその逆もある)。更に一般的には、「混成図」とは、データ・フロー表記、ステートチャート表記、及び/又はシーケンス図表記のような、2つ以上の種類のセマンティック表記が用いられる線図である。要求駆動型検査(requirement-driven test)生成技法が提案され、該技法は純粋なデータ・フロー図及び純粋なステートチャートに合わせて実現されている。
アルゴリズムは、「ノード」及び「アーク」を用いた「線図」を用いて表現することができる。線図は、文字及び/又は描写で記述することができる。線図におけるノードも、内部線図を内包することができる。内部線図のことをサブ(副)線図と呼ぶことができ、各サブ線図は、内部線図すなわちサブ・サブ線図等を有するノードで構成することができる。この線図、サブ線図、サブ・サブ線図等の階層は、親/子関係の語句で表現される。一般的に言うと、線図における任意のノード(又はノードの集合)も、親線図を含む先祖を有することができ、先祖は最終的に最上位の線図にまで到達する。また、ノードは、子サブ線図、サブ・サブ線図等を有することができる。特殊な事例として、最上位の線図は、最終親線図と考えられる。最上位線図をモデルと呼ぶこともできる。
データ・フロー図は、方向が定められ、循環的な線図である場合もあり、この線図における各ノードは、ある種の機能を実行し、ノード間を接続するアークは、データがどのようにノード間を流れるかを示す。データ・フロー図のノードは「ブロック」とも呼ばれており、各ブロックはブロック・タイプを有する。ブロックは、多数の入来アークと、多数の出立アークとを有することができる。アークの各端部は「ポート」を通じてブロックに接続される。ポートには方向がなく、情報が流入する又は流出するのどちらかであるが、両方ではない。「入力ポート」は多くても1つの入来アークしかないこともあるが、「出力ポート」は無限数の出立アークを有することができる。入来アークのないブロックは、「入力ブロック」と見なされ、出立アークがないブロックは「出力ブロック」と見なされる。
ステートチャートとは、方向が定められ、循環的な線図である場合があり、「状態」と呼ばれる複数のノードと、「遷移」と呼ばれる複数のアークとを備えており、アークの各々は原始状態から宛先状態への経路を示す。各遷移は、1つ以上の「状態」、即ち、その遷移を越える前に満足しなければならない必要条件を備えることができる。各状態は、1つ以上の「ステートチャート定義変数」を指定することができ、これらの変数はステートチャート内において値を格納するために用いられる。ステートチャートは、1つ以上の「ステートチャート入力変数」、即ち、システム機能を実行する前にデバイスに供給する値、及び1つ以上の「ステートチャート出力変数」、即ち、システム機能を実行する前にデバイスが出力する値を備えることができる。各条件は、ステートチャート定義変数、ステートチャート入力変数、及び/又はステートチャート出力変数に関して表現することができる。
シーケンス線図は、方向が定められた線図であり、相互作用、即ち、「オブジェクト」と呼ばれるノード集合間において「メッセージ」と呼ばれるアーク集合を差し出して、所望の動作又は結果を得る。シーケンス線図は、2つの次元、すなわち時間次元(通常、垂直軸)及びオブジェクト次元(通常、横軸)を有する。時間次元は通常縦軸に沿って下方に進むので、時間的に後に発生するメッセージが、シーケンス線図では、多くの場合、先のメッセージの下方に示される。オブジェクト次元に沿ったメッセージの順序付けには、特に意味はない。
混成線図は、多数のセマンティック表記に関して必然的に指定されるデバイス又はシステムに対して要件を指定するためには有用である。例えば、自動車用巡航制御デバイスは、「巡航制御使用中」、「巡航制御加速中」、「巡航制御減速中」、「巡航制御解除」等のような、状態を有するように記述することができる。各状態における情報は、データ・フロー技法を用いてモデル化することができる。"desired_speed"値は、"cruise_control_UI"ユーザ・インターフェース・スレッドによって設定し、自動車が加速すべきか、減速すべきか、又は速度を維持すべきかを判定するために"cruise_control_engine_interface"エンジン・インターフェース・スレッドによって読み出すことができることを示すというように、データ・フロー技法は、情報がプログラム・モジュール、タスク、プロセス、又は状態を実現するスレッド間でどのように移行するかを示す。
混成(ハイブリッド)線図では、現行の技術的現状には、2つの主要な手法がある。第1の手法は、データフロー・セマンティックス及びステートチャート・セマンティックスの双方を支援する下位表記を用いて、混成線図を変換することである。例えば、現行のモデル・チェッカ・ツールは、プログラム・カウンタ及び変数状態表記のような、下位表記を用いて線図を変換する。第2の手法は、線図の入力に対して乱数を発生し、混成モデル・シミュレーションによって期待出力値を計算する。
本発明は、混成線図から、検査を生成する方法、システム、及び装置を提供することである。
本発明の第1実施形態は、検査を生成する方法を提供し、該方法においては、検査生成装置が初期化され、システム実行デバイスに対する要求を表す線図が入力される。線図は、複数のノードと複数のアークとを含む。各アークは、複数のノードの内1つ以上を接続する。複数のノードは、複数の埋め込みノードを含む。複数のノードにおける各ノードは、複数の埋め込みノードを除いて、主(メイン)セマンティック表記に属する。複数の埋め込みノードにおける各埋め込みノードは、主セマンティック表記とは同一でない副(サブ)セマンティック表記に属する1つ以上のサブ線図を含む。伝搬方法(propagation)を用いて、線図を通してタイプ及び範囲情報(TRI)を伝搬させて、複数のノードにおいて各ノード毎に検査生成テンプレートを決定する。TRIを伝搬させ、埋め込みノードを除く複数のノードにおける各ノード毎に主セマンティック表記に基づいて、検査生成テンプレートを生成する。TRIを伝搬させ、副セマンティック表記に基づいて、複数の埋め込みノードにおける各ノード毎に検査生成テンプレートを生成する。複数の検査生成テンプレートに基づいて、線図に対して検査を生成する。
本発明の第2実施形態は、線図からシステム実行デバイスに対する要件を表す検査を生成する方法を提供する。線図は、複数のノードと複数のアークとを含む。各アークは、複数のノードの内1つ以上を接続する。複数のノードは、複数の埋め込みノードを含む。複数のノードにおける各ノードは、複数の埋め込みノードを除いて、主セマンティック表記に属する。複数の埋め込みノードにおける各埋め込みノードは、主セマンティック表記とは同一でない副セマンティック表記に属する1つ以上のサブ線図を含む。複数の検査生成テンプレートが、検査生成テンプレート・データ構造の中に受け入れられる。各検査生成テンプレートは、線図の関連ノードを表す。検査生成テンプレート・データ構造からの検査生成テンプレート、及び検査生成テンプレートに対する関連ノードが選択される。選択された検査生成テンプレートに基づいて、検査生成テンプレート・データ構造が更新される。関連ノードから複数の影響し得る入力ポイントまでの第1経路に沿って、入力が上流に向けて投影される。第1経路の中にあるノードのセマンティック表記に基づいて入力が投影される。関連ノードから複数の測定可能観察点に第2経路に沿って、期待される出力(期待出力)が下流に向けて伝搬される。第2経路の中にあるノードのセマンティック表記に基づいて、期待出力が伝搬される。選択した検査生成テンプレートに基づいて、検査が生成される。複数の検査生成テンプレートにおいて、検査生成テンプレート・データ構造に基づいて、別の検査生成テンプレートを処理すべきかの判定が行われる。
本発明の第3実施形態は、検査生成装置を提供する。該検査生成装置は、コンピュータ・プロセッサと、データ・ストレージと、機械語命令とを含む。機械語命令は、データ・ストレージに格納されており、機能を実行するためにコンピュータ・プロセッサによって実行可能である。検査生成装置を初期化する。システム実行デバイスに対する要件を表す線図を入力する。線図は、複数のノードと複数のアークとを含む。複数のアークにおける各アークは複数のノードの1つ以上を接続する。複数のノードは、複数の埋め込みノードを備えている。複数のノードにおける各ノードは、複数の埋め込みノードを除いて、主セマンティック表記に属する。複数の埋め込みノードにおける各埋め込みノードは、主セマンティック表記と同一でない副セマンティック表記に属する少なくとも1つのサブ線図を備えている。ノードが用いるセマンティック表記に基づいて、前記複数のノードにおける各ノードを通じて、TRIを伝搬させるために、伝搬方法を用いる。ノードが用いるセマンティック表記に基づいて、複数のノードにおける各ノード毎に、複数の検査生成テンプレートを決定する。複数の検査生成テンプレートに基づいて、線図に対して検査を生成する。
本明細書では、以下の図面を参照しながら、実施形態の種々の例について説明する。図面においては、同様の参照番号は同様の構成要素を示すこととする。
データ・フロー図の一例であり、本発明の実施形態にしたがって、データ・フロー図のブロックを、ステートチャートとして表現したものである。 ステートチャート線図の一例であり、本発明の実施形態にしたがって、ステートチャートの状態をデータ・フロー図として表現したものである。 本発明の実施形態による計算機の一例である。 本発明の実施形態にしたがって、線図から検査を生成する方法の一例を示すフローチャートである。 本発明の実施形態にしたがって、線図全体にTRIを伝搬させ検査生成テンプレートを決定する伝搬方法の一例を示すフローチャートである。 本発明の実施形態にしたがって、検査生成テンプレートから検査を生成する方法の一例を示すフローチャートである。
データ・フロー表記及びステートチャート表記の本来のセマンティクスを考慮に入れた手法を用いて、総合的な要求に基づく検査事例を作成して、検証のコスト及び時間を削減する方法及び装置を提供する。本発明は、システム機能を実行することができるシステム実行デバイス(例えば、航空デバイス、コンピュータ・プロセッサ、画像プロセッサ、及び/又はコンピュータ・ソフトウェア・システム)の機能(振る舞い)の要求を指定する線図上で動作する。
線図は、混成(ハイブリッド)線図であってもなくてもよい。線図が混成線図でない場合、検査生成方法を用いると、線図を表現するために用いられるセマンティク表記の形式に基づいて、該線図について検査を生成することができる。データ・フロー図から検査を生成する方法の一例が、2008年5月29日に米国特許出願公開第2008/0126902号として公開された、"Requirements-Based Test Generation"(要件に基づく検査生成)と題する米国特許出願第11/945,021号(「データ・フロー出願」)に開示されている。また、ステートチャートから検査を生成する方法の一例は、2008年6月10日に出願され、"Method, Apparatus, and System for Automatic Test Generation from Statecharts"と題する米国特許出願第12/136,146号(「ステートチャート出願」)に開示されている。これら2つの特許出願の内容全体は、ここで引用したことにより、本願にも含まれるものとする。本文書では、以下、特にそうでないと述べない限り、線図は混成線図と仮定する。
前述のように、現行の手法の1つでは、混成線図を、プログラム・カウンタ及び変数状態表記のような、下位表記に変換し、次いでこの下位表記を用いて検査を生成する。この手法には少なくとも3つの主要な欠点がある。第1の主要な欠点は、混成線図において指定された要件の上位セマンティクスが、下位表記では失われるので、要件に基づく検査を事実上生成できないことである。下位表記を用いると、検査事例を作成することが遥かに難しくなる。これは、データ・フロー及びステートチャート線図のような、上位表記の構造全体が、下位表記が必要とする詳細では失われているからである。
第2の主要な欠点は、下位表記を用いて表現した混成線図に生成した検査を格納し実行するために必要となる空間が遥かに広いことである。下位表記で表現された変換線図は、元のデータ・フロー及びステートチャート・コンポーネント線図よりも遥かに大きく、しかも桁外れに大きな状態空間を必ず伴う。
第3の主要な欠点は、元のステートチャート及びデータ・フロー表記のセマンティクスに基づく解決及び状態空間間引き(pruning)技法が、下位表記を用いて表現した組み合わせ線図には適用できないことである。セマンティック情報が失われることにより、下位表記を追従することは上位表記よりも困難になるのが一般的である。状態空間、又は可能な状態の数は、上位表記を用いて表現する検査と比較して、下位表記を用いて表現する検査の方が遥かに多くなる。即ち、プログラム・カウンタ及び変数状態表記を用いて表現した検査のための状態空間は、多くの可能なプログラム・カウンタ値及び多数の変数を有する線図では事実上無限となる場合もあり、その多くは、大量の可能な値を許容するタイプ(即ち、整数、文字列、実数)を用いて表現されている。したがって、状態空間を利用することは一層厳しくなり、その結果、下位表記で状態の同等性について理由付けすることは、不可能ではないにしても、遥かに厳しくなる。
第2の現行手法は、線図の入力に対して乱数を発生し、混成モデル・シミュレーションによって期待出力値を計算している。この手法には、2つの主要な欠点がある。第1の欠点は、このようにランダムに生成した検査は、要件に基づいておらず、したがって混成モデルによって指定されるシステムの実施において機能的誤りを、信頼性高く発見(uncover)できないことである。第2の欠点は、多数の時間ステップを必要とする検査生成に対して入力数が増大するに連れて状態空間が爆発的に増えることである。このため、ランダム・シミュレーション手法は拡縮調整ができなくなり、したがって実世界のモデルでは動作不可能になる。
本願は、現行の手法に伴う問題に取り組む新規の技法を開示する。即ち、データ・フロー図及びステートチャートを含む、多数の上位表記を用いて表現した混成線図に対する独立検査生成技法を組み合わせる検査生成方法を提供する。混成検査生成方法は、検査生成装置によって実現することができる。検査生成装置の好適な実施形態は、NJ、MorristownのHoneywell International, Incが提供するHoneywell Integrated Lifecycle Tools and Environment (HiLiTE) コンピュータ・ソフトウェア・パッケージである。
図3に関して以下に説明する計算機(コンピュータ装置)等からなるデバイスを用いて、検査生成装置を実現すること、及び/又は以下に記載する方法400、500、及び/又は600におけるブロックを実行することができる。計算機を検査生成装置として用いる場合、方法400、500、及び/又は600は、計算機のデータ・ストレージに格納する機械語命令として実装する。一旦検査を生成したなら、これらは、コンピュータ化した検査ドライバ及び/又は検査人によって実行することができる。
混成線図は、主に、1つの上位セマンティック表記を用い、部分的に1つ以上の別の上位セマンティック表記を利用する。即ち、1つの上位セマンティック・モデルを用いて主に表現した混成線図は、1つ以上の「埋め込みノード」、即ち、主セマンティック・モデルではない副セマンティック・モデルに関して表現した、主セマンティック・モデルのコンポーネントを含むことができる。例えば、主にデータ・フロー図として表現した親ノード又は線図は、ステートチャート表記、シーケンス線図、及び/又はその他のセマンティック・モデルに関して表現した1つ以上の埋め込みノードを有することができる。同様に、ステートチャートとして表現した線図は、データ・フロー表記、シーケンス線図、及び/又はその他のセマンティック・モデルに関して表現した1つ以上の埋め込みノードを有することができる。特に、1つの埋め込みノードは、主セマンティック・モデルで表現したインターフェース、及び主セマンティック・モデルとは異なる副セマンティック・モデルで表現した1つ以上のサブ線図を含むことができる。本明細書において記載する場合、特に指定がなければ、線図は混成線図であるので、各線図は少なくとも1つの埋め込みノードを内包する。
また、ノードは、「指定ノード」又は「未指定ノード」にも分類することができる。指定ノードとは、TRI伝搬のためというように、検査生成装置が使用するために利用可能なタイプ及び範囲情報(TRI)を有するノードのことである。指定ノードの一例に、以下で説明する図1のノード120のような、データ・フロー図の加算ノード(sum node)がある。予め決定してあるTRIを、検査生成装置に利用可能にすることができる。例えば、種々のノードについてのTRIをTRIデータベースに格納することができ、検査生成装置は、恐らくはTRIデータベースに対する問い合わせに基づいて、実行中にTRIにアクセスして読み出すことができる。TRIデータベースは、検査生成テンプレートも格納することができる。TRI情報(タイプ及び範囲情報)が利用できない場合、ノードを未指定ノードに分類すればよい。また、検査生成装置が埋め込みノードについてのTRI情報を有する場合、この埋め込みノードを、ステートチャート内に埋め込まれたデータ・フロー図の加算ノードのような、指定ノードとすることができる。この場合、加算ノードについてのTRI情報は、検査生成装置において利用可能となる。
このように、検査生成装置は、未指定ノード毎にTRI情報を決定しなければならない。未指定ノードについてのTRI情報は、当該未指定ノードのサブ線図の決定に基づいて決定することができる。セマンティック表記に関係なくノードを指定する1つの技法では、これらを原型(archetype)として扱う。これは、2002年9月12日に出願され、"Framework for Domain-Independent Archetype Modeling"(ドメインに依存しない原型モデリングのためのフレームワーク)と題する米国特許出願第10/242,201号に開示されている。その内容全体は、ここで引用したことにより、本願にも含まれるものとする。
混成線図の概念は、再帰性とすることができる。即ち、混成線図の埋め込みノードは、主に1つのセマンティック表記を用いて表現することができ、埋め込みノード内にある埋め込みノードは、異なるセマンティック表記を用いて表現する。一例として、ステートチャート表記を主に用いて線図を表現し、データ・フロー表記を用いて埋め込みノードを表現すると仮定する。更に、主にデータ・フロー表記を用いる埋め込みノードが、ステートチャート表記を用いる埋め込みノードを有すると仮定する。混成線図の埋め込みノード内における埋め込みノードの再帰プロセスは、線図の要件を表現するために、必要に応じて連続することができる。
検査生成装置は、線図を入力として取り込むことができる。例えば、線図をステートチャートとして表現し、埋め込みノードをデータ・フロー図として表現することができる。あるいは、線図をデータ・フロー図として表現し、埋め込みノードをステートチャート表記で表現することができる。
検査生成装置は、線図に用いられている上位セマンティック構造体(constructs)を下位セマンティック構造体に低下させることなく、線図を処理する。検査生成装置は、これを遂行する際、必要に応じて、線図に用いられる上位セマンティック・モデルに基づいて、検査事例又は検査生成テンプレートを生成する。例えば、検査生成装置は、線図におけるステートチャートの各遷移をトリガするために検査生成テンプレートを生成することができ、更に線図におけるデータ・フロー構造体に対する全ての要件を検査するために検査生成テンプレートを生成することができる。検査生成装置は、線図が指定する要件を有する、システム実行デバイスに対して検査を生成するために、必要に応じて、検査生成テンプレートを生成することができる。
本明細書において説明する検査生成装置は、データ・フロー表記、ステートチャート表記、及びシーケンス線図表記を、線図を書くための上位セマンティック表記の例として用いる。他の上位セマンティック表記が以下の3つの要件を満たすならば、該他の上位セマンティック表記も用いることができる。
第1の要件は、上位セマンティック表記が、ノードに対して検査生成テンプレートの生成を可能にすることである。検査生成テンプレートは、ノードの機能的要件を記述し、ノードに入力として適用すべき値の時間シーケンス、及びノードからの期待出力を含む。検査生成テンプレートは、検査事例、又はノードからの特定入力及び出力値を含むことができる。
上位セマンティック表記の第2の要件は、生成するあらゆる検査生成テンプレートを制約するために、上位セマンティック表記を用いて、線図のノードについてのTRIを、線図について生成できることである。言い換えると、上位セマンティック表記は、変数タイプ(例えば、整数、文字列)と値、及び/又は範囲情報(例えば、「a」又は7.2というような特定の値、及び/又は[a〜z]又は[1〜10]というような値の範囲)を考慮に入れた検査生成を可能にしなければならない。
第3の要件は、値を下流側に向けて測定可能な観察点まで伝搬させるために、上位セマンティック表記で書いた線図のノード毎に、問い合わせを決定できなければならないことである。問い合わせは、値をノードに帰属させる(attribute)ために、ノードに適用することができる入力を指定し、ノードからの可能な出力を戻すことができなければならない。また、問い合わせは、そのノードを通じて、影響を受ける可能性のある入力点に値を上流に向けて投影できなければならない。問い合わせは、ノードについて検査生成テンプレート及び/又は検査事例を決定するために、ノードから生成することができる出力を指定し、可能な入力をノードに返すことができなければならない。
検査ドライバ又は検査ハーネスのような、自動検査システムは、これらの検査ベクトルを用いて、ステートチャートに具体化した要件を検証することができる。要件は、システム実行デバイスを検査する検査ドライバによって検証することができる。アプリケーション開発者は、航空業界におけるDO−178B規格のような、業界標準開発目的を満たすために、現在ではコストのかかる検査手順や手動検査生成を用いているが、このプロセスの自動化は、検証に必要な時間や資源を劇的に削減することができる。あるいは、検査ベクトルから、人が読み取ることができる検査を生成し、検査者がシステム実行デバイスを検査してもよい。
1つの線図においてセマンティック・モデルを混合し照合(matching)することによって得られる柔軟性のために、ステートチャート、データ・フロー図、及び/又はその他の上位セマンティック・モデルの任意の組み合わせによって指定するシステムについても検査の生成が可能となり、システム設計者及び要件記述者はプロジェクトによる要求に応じて、多数の上位セマンティック・モデルを用いることが可能になる。また、混成線図は、多数の上位セマンティック・モデルを用いて表現されるが、下位セマンティック表記を用いて、線図及び/又は当該線図内に具体化した埋め込みノードを表現することも可能である。
データ・フロー図の一例
線図は、主にデータ・フロー表記を用いて表現することができる。図1は、本発明の実施形態によるデータ・フロー図100の一例であり、データ・フロー図のブロック110は、ステートチャート(即ち、埋め込みノード)として表現されている。データ・フロー図100は、ブロック110、120を有し、これらは、アーク130のような、有向アークによって相互接続されている。アークは、ブロック間のデータ・フローを規定する。データ・フロー図のブロックは、数学的演算子(例えば、和又は積)又は、ステートチャート表記を用いて表現するブロックのような埋め込みノードとすることができる。例えば、ブロック120は、加算演算子であり、ブロック110は、データ・フロー図100においてステートチャートとして表現される埋め込みノードである。したがって、ブロック110は1つ以上の状態を備えることもできる。更に、ブロック110のステートチャートにおける1つ以上の状態は、ブロック110のステートチャート内部のステートチャート表記以外の上位表記等を用いて表現する埋め込みノードであってもよい。
ステートチャートの一例
線図は、主にステートチャート(状態図)表記を用いて表現することができる。図2は、本発明によるステートチャート200の一例であり、状態210、220、及び230を有する。ステートチャートの状態220は、内部データ・フロー図を備えている。
「上流状態」とは、ステートチャートの条件を横断する、現在の状態より前に至る状態のことである。同様に、「下流」状態とは、現在の状態の後に至る状態のことである。視覚的には、上流状態は、下流状態への遷移を表す矢印の開始端部にあり、下流状態はその同じ矢印の指示(終端)端部にある。例えば、現状態を状態220とすると、状態210は状態220からは上流となり(遷移214を経由する)、状態230は状態220の下流となる(遷移228を経由する)。
尚、ステートチャート及びデータ・フロー表記のように、循環を内包するセマンティック表記では、上流及び下流の双方となるノードもある。例えば、状態210は、遷移228、状態230、及び遷移240を含む経路を経由すると、状態220の下流となり、状態230は、遷移240、状態210、及び遷移214を含む経路を経由すると、状態220の上流となる。
遷移は、遷移214を「保護する」条件212のような、当該遷移を横断することができる前に満たさなければならない条件を有する。
図2において、ステートチャート線図200のローカル変数は、埋め込みデータ・フロー図の入力ポート及び出力ポートにマップする。図2は、11個のローカル変数、"Inval1"、"Inval2"、"Value_Out"、"oHam_Out"、"Choise"、"var1"、"var2"、"var3"、"var4"、"var5"、及び"var6"を有する状態210を示す。ローカル変数は、ステートチャート状態又は埋め込みノードのいずれかとして表現された上流状態又は下流状態によって用いることができる。図2は、上流状態210において値が割り当てられた、変数"Inval1"、"Inval2"、及び"Choice"を入力ポートとして用いるデータ・フロー図として表現した状態220を示す。
図2は、出力ポート"Value_out"及び"oHam_Out"を有する状態220を示す。これらの出力ポートは、遷移228を通じて状態230に達するときには状態220の下流となる状態230において読み込まれる。
更に、状態220のデータ・フロー図における1つ以上のブロックは、状態220のデータ・フロー図内部におけるデータ・フロー表記以外の上位表記等を用いて表現する埋め込みノードであってもよい。図2は、ブロック226がステートチャートを備えており、したがって、状態220のデータ・フロー図の埋め込みノードにおけるブロック226を含むことを示す。
信号のアトリビューション
特定の要件は、下流ノード上で作ることができる。下流ノードは、1つ以上の伝搬した入力値が適正な「アトリビューション」(attribution:属性)を有することを検証するために、別のノードの出力として生成した1つ以上の入力を要求することができる。アトリビューションとは、入力値又は出力値のような、信号を線図を通過する経路に沿って辿って行ける能力を言う。アトリビューションは、顧客及び/又は、空中システムにおけるDO−178BSoftware Consideration(ソフトウェア要件)や、アヴィオニクスにおいてソフトウェアを検証するためにFederal Aviation Administration(FAA)が用いるEquipment Certification(機器証明書)のような、政府要件を満たすために要求される場合もある。
特定の下流入力を下流ノードに帰属させるには、後に特定の下流入力に至る特定の上流出力を生成する上流ノードに対して、特定の検査事例を生成することができる。例えば、ステートチャートには2つの状態、上流状態及び下流状態しかなく、上流状態が下流状態の上流にあると仮定する。変数jの値が属性を必要とするが、jの値は下流状態においてのみ設定されると仮定する。更に、上流から下流への遷移は「i>3」の保護(guard)を有すると仮定する。つまり、下流状態に対する特定の下流入力は、変数iが3よりも大きくなる条件となる。この場合、検査生成装置は、i>3となるような特定の入力値を用いて、上流状態に対する検査事例を生成しなければならないと判断することができる。
検査生成装置は、1つ以上の検査事例が特定の上流出力を生成するか否か判定するために、埋め込みノードに対して生成された複数の検査事例を問い合わせることができる。問い合わせに成功した場合、特定の下流入力に至る特定の上流出力を生成することができ、したがって特定の下流入力は上流ノードに属する可能性がある。問い合わせに失敗した場合、特定の下流入力は、下流ノードへの特定の上流入力を生成する上流ノードに属する可能性はないと考えられる。
特定の出力を上流ブロックに帰属させるには、上流ブロックは、埋め込みノードの出力からの特定の下流入力を用いて、特定の検査事例を生成する必要があると判断することができる。検査生成装置は、埋め込みノードに生成した複数の検査事例に問い合わせを行い、1つ以上の検査事例が特定の下流入力を生成するか否か判定することができる。問い合わせに成功した場合、特定の上流出力を、特定の下流入力を生成する1つ以上の検査事例に帰属させることができる。問い合わせに失敗した場合、特定の上流出力は、下流ノードを通じて帰属させることはできない。
例えば、特定の上流出力は、特定の下流入力に最終的に至る1つ以上のノードへの多くの入力の1つである場合もあり、したがって、埋め込みノードの特定の下流入力は、特定の上流出力に帰属可能であっても又はなくてもよい。
例示のために、ステートチャートが4つの状態を有すると仮定する。状態1では、入力"in1"の値を読み取り、出力"out1"に書き出す。状態2では、入力"in2"の値を読み取り、出力"out2"に書き出す。併合状態(MergeState)では、"out1"及び"out2"の値双方を読み込み、出力"merge_out"に書き出す。下流状態(DownstreamState)では、"merge_out"の値を読み取り、出力"downstream_out"に書き出す。更に、"merge_out"の特定の値(又は複数の値)を、状態1から下流状態に帰属させる。状態1のみが"out1"だけに出力を生成すると、"out1"の指定値(又は複数の指定値)が、状態MergeStateにおける"out2"の使用に応じて、"merge_out"の特定の値に至っても至らなくてもよい。つまり、上流出力(例えば、"out1")の特定の値が特定の下流入力(例えば、"merge_out")に帰属可能であるか否か判定することは不可能である場合もあり、したがって、特定の下流入力の値、及び後続の下流値(例えば、"downstream_out")は、線図を通過する経路に沿って帰属可能であってもなくてもよい。
計算機の一例
図3は、本発明の実施形態による計算機300の一例のブロック図であり、演算装置310、データ・ストレージ320、及びユーザ・インターフェース330を備えている。計算機300は、デスクトップ・コンピュータ、ラップトップ又はノートブック・コンピュータ、パーソナル・データ・アシスタント(PDA)、移動体電話機、あるいは本明細書において記載する方法300及び/又は本明細書において記載する検査生成装置及び/又は検査ドライバの機能性の少なくとも一部を実現するコンピュータ命令を実行可能な演算装置を搭載している同様のデバイスであればいずれでもよい。
演算装置310は、1つ以上の中央演算装置コンピュータ・プロセッサ、移動体プロセッサ、特定用途集積回路(ASIC)、ディジタル信号プロセッサ(DSP)、マイクロプロセッサ、コンピュータ・チップ、特殊論理回路、及び/又は現在知られている又は今後開発される、命令をシリアル又はパラレルのいずれかで実行する同様の演算装置を含むことができ、機械語命令を実行し、データを処理することができる。
データ・ストレージ320は、1つ以上の記憶装置を備えることができる。データ・ストレージ320は、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、リムーバブル・ディスク・ドライブ・メモリ、ハード・ディスク・メモリ、磁気テープ・メモリ、フラッシュ・メモリ、ならびに現在知られている同様の記憶装置及び今後開発される同様の記憶装置を含むことができる。データ・ストレージ320は、少なくとも、1つ以上の線図322、データ構造324、及び機械語命令326を収容するのに十分な記憶容量を備えている。
データ構造324は、本明細書において記載する検査生成装置、本明細書において記載する検査ドライバの機能の一部又は全部を実行するため、及び/又は方法400、500、及び/又は600に記述されている手順の一部又は全部を実行するために必要な、本明細書において記載するあらゆるデータ構造をも備えており、TRIデータ構造及びTRI−伝搬キューを含むが、これらに限定されるのではない。データ・ストレージ320に収容される機械語命令326は、本明細書において記載する検査生成装置、本明細書において記載する検査ドライバの機能の一部又は全部を実行するため、及び/又は方法400、500、及び/又は600に記述されている手順の一部又は全部を実行するために演算装置310によって実行可能な命令を含む。
ユーザ・インターフェース330は、入力ユニット332及び/又は出力ユニット334を備えることができる。入力ユニット332は、計算機330のユーザからユーザ入力を受け取ることができる。入力ユニット332は、キーボード、キーパッド、タッチ・スクリーン、コンピュータ・マウス、トラック・ボール、ジョイスティック、及び/又は、計算機300のユーザからユーザ入力を受け取ることが可能な、現在知られている又は今後開発されるその他の同様のデバイスを備えることができる。出力ユニット334は、計算機300のユーザに出力を提供することができる。出力ユニット334は、1つ以上の陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、ディジタル光処理(DLP)技術を用いたディスプレイ、プリンタ、光バルブ、及び/又は、グラフィック情報、テキスト情報、及び/又は数値情報を計算機300のユーザに表示可能な、現在知られている又は今後開発される同様のデバイスを備えることができる。出力ユニット334は、代わりに又は加えて、スピーカ、スピーカ・ジャック、オーディオ出力ポート、オーディオ出力デバイス、イヤホン、及び/又は、音響情報及び/又は可聴情報を計算機300のユーザに伝達可能な、現在知られている又は今後開発される同様のデバイスを備えることができる。
したがって、計算機300は、本明細書に記載する種々の機能、ステップ、及び手順を実現し実行する手段の一例である。
混成線図から検査を生成する方法の一例
図4は、本発明の実施形態にしたがって、線図から検査を生成する方法400の一例を示すフローチャートである。
尚、このフローチャートにおける各ブロック及び本明細書において呈示するその他のフローチャートの中にある各ブロックは、モジュール、セグメント、又はコンピュータ・プログラム・コードの一部を表す場合もあり、特定の論理機能又はプロセスにおけるステップを実現するための1つ以上の実行可能命令を含むことは言うまでもない。実施形態例の範囲には、代替実施態様も含まれ、その場合、機能は、伴う機能性に応じて、図示又は論述するのとは異なる順序で実行してもよい。異なる順序とは、実質的に同時であること又は逆の順序を含む。これは、記載する実施形態の技術分野に相応に習熟している者には明白であるであろう。
方法400は、ブロック410において開始する。ブロック410において、検査生成装置が初期化される。検査生成装置の初期化は、方法400、500、及び/又は600のブロックを実行するために検査生成装置が用いるデータ構造を初期化することを含み、データ構造には、TRI−伝搬キュー、及び/又は複数の検査生成テンプレートを含むが、これらに限定されるのではない。方法500及び600については、それぞれ図5及び図6を参照して以下で説明する。
ブロック420において、検査生成装置は線図を入力する。線図は、アビオニクス・デバイス、コンピュータ・プロセッサ、画像プロセッサ、コンピュータ・ソフトウェア・システム、又はその他のこのようなデバイス等のシステム実行デバイスに対する要件を表すものである。
線図は、1組のノード、及び1組のノードの中にある1つ以上のノードを接続する1組のアークを備えることができる。線図は、第1の上位セマンティック表記で表現することができる。線図は、混成線図とするとよい。線図が混成線図である場合、1組のノードにおける少なくとも1つのノードは埋め込みノード、即ち、第1の上位セマンティック表記以外の上位セマンティック表記で表現した少なくとも1つのサブ線図を有するノードとなる。線図は、文字及び/又は描画で表現することもできる。
ブロック430において、検査生成装置は、TRIデータ構造に格納されているTRIを、線図を通して伝搬させることができる。また、ブロック430において、検査生成装置は、検査生成テンプレートを決定し、更に(又は代わりに)検査事例を決定することもできる。ノードについての検査生成テンプレートは、当該ノードの特定的な機能要件を記述し、ノードへの入力の時間シーケンス及びノードからの期待出力から成る。検査事例は、線図の入力及び出力に基づく値のベクトル、及び/又は値の範囲を収容する。方法500の手順を用いて、TRIを伝搬させ、検査生成テンプレートを決定することができる。方法500については、図5に関して以下で説明する。
TRIは、線図において用いられる変数についての、TRIデータ構造のような情報を用いて伝搬される。一部のノードでは、データTRIが伝搬されなかったり又は検査生成テンプレートが生成されない場合もある。例えば、ステートチャート線図における到達不可能な状態は、いずれの関連TRIも実現可能な検査生成テンプレートも有していない場合がある。TRIは、特定の変数の値を制限するために用いることができる範囲情報を含むことができる。例えば、図1のInval1変数に対するTRIは、[0,1000]の範囲を示すことができ、Inval2変数に対するTRIは[0,2000]の範囲を示すために用いることができる。また、タイプ情報も、TRIの一部として指定することができる。例えば、Inval1は整数型の値である。
検査生成装置は、次に、線図によって指定される動作を実行することによって、TRIを線図全域に伝搬させることができる。前述の例を続けると、Inval1に対するTRIは[0,1000]の範囲を示し、Inval2に対するTRIは[0,2000]の範囲を示すので、図1のノード120における和変数に対するTRIは、Inval1及びInval2の範囲の和、即ち、[0,3000]の範囲を示す。
特定の値、値の範囲、及び相対的な値を指定し、線図を通じて伝搬させることができる。別の例として、図1のInval1変数を、2.2の値を有するように指定し、Inval2変数を範囲[0,2000]内となるように指定し、Choice変数をInval1変数よりも小さいと指定したと仮定する。すると、和変数(及び恐らくはInput_1変数)に伝搬させる値は、Inval1及びInval2の和、例えば、範囲[2.2,2002.2]となればよい。更に、Choice変数の範囲は、(−∞,2.2)となる。
選択されたノード毎のTRIは、データ・フロー・アプリケーションの図3及び図4に関して説明した静的分析手順及び/又は動的分析手順を用いて決定することができる。特に、TRIは、線図の開発者又はその他の著作者が提供する情報に基づくとよい。TRIは、線図の任意の変数、入力、及び/又は出力についても提供することができる。検査生成装置は、静的分析の一部として、線図の中に静的誤りがあると判断して、開発者/著作者にこの静的誤りを訂正させることができる。また、コンピュータ・プログラム・ファイル及び/又は線図を収容するファイルの変数タイプ及び/又は範囲情報についての解析というような、自動化したタイプ及び/又は範囲技法を用いてTRIを決定することもできる。コンピュータ・プログラム・ファイルの例には、コンピュータ言語(例えば、C又はC++ヘッダ・ファイル)又は、クラス線図、コンポーネント線図、複合構造線図、展開線図、オブジェクト線図、及びパッケージ線図のような、統一モデリング言語(UML)静的構造線図用のデータ仕様ファイルがある。
検査生成テンプレートは、機能的要件、内部構造、ノードの内部セマンティクス(恐らくは伝搬されるTRIと組み合わせられる)、及びシステム入力のような追加情報に基づいて決定することができる。検査生成装置は、線図を分析して、線図の埋め込みノードの中にあるノードも含めて、線図のノード毎にTRIを決定することができる。
図1に示すデータ・フロー図100の例を用いると、検査生成テンプレートは、Inval1、Inval2、及び/又はChoice(即ち、データ・フロー図100への入力)の特定の値に基づいて決定することができる。TRIは、図1に示すように、ブロック110(及び、ブロック110の下流ノード)への入力として要求されるInput_1の値のような、他のノードの特定値に基づいて決定することができる。
再度図1に示すデータ・フロー図100の例を用いて、TRIとは別個のシステム入力に基づいてInval1を2.2に指定し、Inval2を3.3に指定したと仮定する。次いで、検査生成装置は、Inval1及びInval2に対するシステム入力に基づいて、ブロック120の出力変数を5.5に抑制する検査生成テンプレートを生成することができる。更に、検査生成装置は、次に、和変数の値、即ち、5.5に等しくなるようにInput_1を抑制する、図1のステートチャート110のための検査生成テンプレートを生成することができる。
伝搬したTRIは、検査ベクトルを抑制するために適用することができる。所与のノードに対する検査ベクトルは、該所与のノードに対する入力変数及び出力変数の値を示す。また、線図全体に対して含む、ノードのグループに対する入力変数及び出力変数を示す検査ベクトルも生成することができる。所与のノードに対する検査ベクトルは、該所与のノードに対する検査生成テンプレートと共に格納することができ、また、所与のノード及び/又は線図内にある他のノードに対する検査生成テンプレートを修正するために用いることもできる。
ブロック440において、検査生成装置は線図に対す有る検査を生成する。検査生成装置は、線図を通じて伝搬させた制約に基づいて、検査を生成することができる。即ち、検査生成装置は、TRIデータ構造、検査事例、検査ベクトル、及び/又は前述の検査生成テンプレートを用いて、伝搬させた値の制約を示すことができる。伝搬値は、線図に対する検査を生成するために用いることができる。検査は、線図における全てのノードを検査するため、及び/又は線図内にある1つ以上の所与のノードを検査するために生成することもできる(例えば、サブユニット検査(sub-unit testing)を実行する)。検査を生成するために、検査生成装置は、図6に関して以下で説明する方法600の手順を用いることができる。
ブロック450において、生成した検査を実行すべきか否かについて判定を行う。この判定は、ユーザ入力に基づくことができ、ハードコード化することができ、及び/又はハードウェア及び/又はソフトウェアの使用(又は不使用)に基づいて判定することができる(例えば、検査ハーネスのような検査デバイスがアクティブでなければ、検査を実行しない)。検査を実行しようとする場合、方法400はブロック460に進むことができる。検査を実行しようとしない場合、方法400を終了することができる。
ブロック460において、生成した検査を実行することができる。1つ以上の生成した検査を選択して実行してもよく、したがって、生成時に又は一度に全ての検査を実行する必要はない。検査は、対象となる特定のノード及び/又は(副)線図の選択に基づいて選択することができる。選択は、恐らくはユーザ入力による、特定の検査、ノード、サブ線図、又は線図の選択に基づいて、行うことができる。代わりに又は加えて、選択は、この場合もユーザ入力による、1つ以上の検査についての検査実行ステータスに基づくこともできる。例えば、検査は、実行に成功した検査に対して「合格」、実行に成功しなかった検査に対して「不合格」、実行していない検査に対して「未実行」、及び/又は検査実行ステータスを決定する前に更に考慮を必要とする検査に対して「要研究」の検査実行ステータスを有することができる。検査実行ステータスが1つ以上の特定値を有するように検査を選択することもできる(例えば、検査実行ステータスが「不合格」又は「未実行」の検査を全て選択する)。また、検査は、特定のソフトウェア及び/又はハードウェア・ユニットの可用性に基づいて選択することもできる。例えば、"AutoPilot"ソフトウェア・ユニット又は"Engine 3"ハードウェア・ユニットの可用性による影響を受ける検査全てを走らせる。多くのその他の選択も行うことができる。
選択された検査は、該検査を検査ドライバに受け渡すことによって、自動的に実行することができる。選択された検査は、検査官が手動で実行してもよい。手動検査を実行する場合、選択された検査は、検査実行を容易にできるように、人が読み取り可能なフォーマットで出力するようにフォーマット化するとよい。ブロック460を完了した後、方法400は終了する。
特に、方法400は、検査事例を生成し、埋め込みノードについての検査を実行するために用いるとよい。例えば、線図が主にデータフロー・セマンティックスを用いて書かれており、ステートチャート表記を用いて表現した埋め込みノードを含むと仮定する。更に、ステートチャート表記を用いて表現した埋め込みノードが、埋め込みデータ・フロー図として表された状態を備えていると仮定する(即ち、データ・フロー図に埋め込まれたステートチャートに埋め込まれたデータ・フロー図)。そして、図5に関して以下で詳細に説明する方法500の手順を用いて、TRI情報を伝搬させ、埋め込みノード、及び埋め込みノードの中の埋め込みノード等を含む、線図の全てのノードに対して検査生成テンプレートを決定することができる。次いで、方法600の手順を用いて、検査生成テンプレート及びTRIに基づいて検査を生成することができる。
TRIを線図中に伝搬させ、検査生成テンプレートを決定する方法の一例
図5は、本発明の実施形態にしたがってTRIを線図中に伝搬させ、検査生成テンプレートを決定するための伝搬方法500の一例を示すフローチャートである。方法500は、本明細書において記載する検査生成装置のような、検査生成装置によって実行される。尚、方法500を伝搬方法と称する。
方法500は、ブロック510において開始する。ブロック510において、検査生成装置は、入力線図のノードをTRI伝搬キューに挿入する。入力線図の例には、線図、その線図ではない親線図、又は1つのノードがある。「TRI伝搬キュー」という用語をここでは用いるが、TRI伝搬キューの実現には、限定ではなく、キュー、スタック、リスト、ハッシュ・テーブル、ツリー、1つ以上のデータベース構造(例えば、データベース表)、優先順位キュー、又は本明細書において記載するTRI伝搬キューとして作用するのに適したその他のデータ構造というような、1つ以上のデータ構造の使用を伴う場合もある。
ブロック512において、検査生成装置は、入力線図の主要セマンティック表記を判定することができる。判定したセマンティック表記に基づいて、検査生成装置は、検査生成手順のグループから1つを選択する(例えば、データ・フロー表記、ステートチャート表記、シーケンス線図表記等に基づいて、検査生成手順を入力線図に合わせて選択することができる)。このような検査生成手順は、TRIを伝搬させ、検査生成テンプレート及び/又は処理後ノードを決定する手順を含むことができる。主セマンティック表記に基づくその他の検査生成手順も可能である。
ブロック520において、検査生成装置は、TRI伝搬キューからノードを選択する。
ブロック530において、検査生成装置は、選択したノードから上流にある全てのノードを分析し終えているか否か判定を行う。検査生成装置は、選択したノードから上流にあるノードがTRI伝搬キューに中にあるか否か判定を行うために、TRI伝搬キューを調べることができる。検査生成装置がTRI伝搬キューの中に、選択したノードから上流にあるノードを発見した場合、検査生成装置は、選択したノードから上流にある全てのノードを処理し終えていないと判断することができる。
選択したノードから上流にある全てのノードを処理し終えていた場合、検査生成装置はブロック540に進む。選択したノードから上流にある全てのノードを処理し終えていない場合、検査生成装置はブロック520に進む。尚、検査生成装置は、選択したノードから上流にある全てのノードを処理し終えたことを確認するというように、選択したノードから上流にある全てのノードを処理し終えたことを確認することとは異なる判断基準を用いて、ノードの分析を使用指令(use order)してもよい。
ブロック540において、検査生成装置は、選択したノードをTRI伝搬キューから除去する。
ブロック550において、検査生成装置は、選択したノードが指定ノードであるか否か判定を行う。既に定義したように、指定ノードとは、検査生成装置による使用のために利用可能なTRIを有するノードである。検査生成装置は、TRIデータベースにおいて、選択したノードに対するTRI及び/又は検査生成テンプレートを検索して探し出すことによって、選択したノードが指定ノードであるか否か判定することができる。
ノードが指定ノードであるか否かを判定する代わりに又はそれに加えて、検査生成装置は、選択したノードが埋め込みノードであるか否か判定してもよい。検査生成装置は、選択したノードが、主セマンティック表記を用いない内部線図(サブ線図)を有することを判定することによって、選択したノードが埋め込みノードであるか否か判定することができる。
検査生成装置は、埋め込みノードが指定ノードであることを判定する前に、所定のTRIを含むがこれに限定されない、埋め込みノードに対するTRI及び/又はその他の検査生成テンプレートを検索することができる。あるいは、検査生成装置は、主セマンティック表記以外のセマンティック表記を用いて、TRIがノードには利用可能でないという想定の下で、埋め込みノードが非指定ノードであるというデフォルトの判定を行うこともできる。
ノードが指定ノードである場合、検査生成装置はブロック560に進む。ノードが非指定ノードである場合、検査生成装置はブロック570に進む。
ブロック560において、検査生成装置は、選択した指定ノードを通じて、TRIを伝搬させる。即ち、検査生成装置は、選択したノードに対するセマンティック表記、当該ノードに利用可能なあらゆる追加情報(例えば、ノードに対するノード指定データ構造における情報)、及び、恐らくは選択したノードのTRIデータ構造において表されている、選択したノードの上流ノード(が1つでもある場合)によって生成されたTRIに基づいて、選択したノードにおいて用いられる変数に対するTRIを決定する。即ち、検査生成装置は、入力線図の主セマンティック表記に基づいて、TRIを伝搬させるために選択された検査生成手順を用いることができる。入力線図におけるノード毎のTRIデータ構造は、TRI伝搬キューに格納することができる。
ブロック562において、検査生成装置は、選択した指定ノードに対して、1つ以上の検査生成テンプレートを決定する。検査生成テンプレートは、選択したノードのセマンティック表記、及び選択したノードに対する伝搬TRI情報に基づいて決定される。即ち、検査生成装置は、検査生成テンプレートを決定するために入力線図の主セマンティック表記に基づいて選択した検査生成手順を用いる。
例えば、主にデータ・フロー表記で書かれた線図内に埋め込まれたステートチャート・ブロックに対して、生成方法500の再帰(リカーシブ)コールが完了する間に、検査事例を生成したと仮定する。ステートチャートで表された埋め込み線図に対して生成した各線図レベルの検査事例は、ステートチャートによって表されるデータ・フロー図のブロックに対する検査生成テンプレートと見なすことができる。したがって、ステートチャートに対して生成した検査事例は、親データ・フロー図に検査生成テンプレートを決定するために用いることができる。加えて、検査事例を再フォーマット化したり、それ以外の処理を行って、対応する検査生成テンプレートを決定することもできる。
検査生成装置は、所与のノードに対する検査事例又は検査生成テンプレートの入力及び期待出力値の時間シーケンスに制約を決定することができ、その際、(i)所与のノードについてのTRIデータ構造及び/又はその他のデータ、及び/又は(ii)線図における他の関連ノードからのTRIデータ構造のデータを用いる。他の関連ノードとは、所与のノードから上流のノードとするとよい。
特に、検査生成装置は、選択したノードに対するTRIデータ構造に基づいて、選択したノードの下流にあるあらゆる「到達可能」ノードを更新することができる。検査生成装置は、選択したノードのTRI情報、下流ノードのTRI情報、及び/又は入力線図に基づいて、ノードが到達可能であることを判定することができる。例えば、図2のProcess_Data状態220がAwait_Input状態210から到達可能であるという判定は、条件212によって示すように、input_valid変数の値に依存する。Await_Input状態210に示すように、input_validの値は入力var1及びvar2の値に依存する。次いで、TRIが、var1の範囲が[0,10]に抑制されており、var2の範囲が[100,200]に抑制されていることを示す場合、検査生成装置は、Process_Data状態220は到達不可能であると判定することができる。
検査生成装置は、選択したノードが実行する動作についての情報に基づいて、到達可能な下流ノードについてのTRIデータ構造を更新することができる。例えば、検査生成装置が、選択したノードが以下の演算:「i=100」を実行すると判定したと仮定する。すると、検査生成装置は、選択したノードから下流にある各ノードのTRIデータ構造を更新して、変数iを100に設定することを示すことができる。したがって、所与の検査生成テンプレートの決定は、選択したノードのセマンティック表記に基づく。何故なら、選択したノードのセマンティック表記が、該セマンティック表記によってモデル化することができる動作及びそれらの動作の効果を決定するからである。
尚、検査生成装置は、最初に、下流ノードが到達可能か否か判定し、そして下流ノードまでの経路に沿ったノードに到達する順序を決定した後に、下流ノードのTRIデータ構造を更新してもよい(即ち、更新するTRIデータ構造のみが、選択したノードから到達可能な下流ノードのTRIデータ構造である)。
下流ノードに適用する検査生成アルゴリズムは、TRIデータ構造を用いて、下流ノードの入力時に、初期条件を示すことができる。前述の例を続けると、1つの初期条件(選択したノードの下流ノードの伝搬情報データ構造に格納されている)は、「i=100」とするとよい。この条件はノードに対する初期条件であるので、下流ノードの機能性が読み出されるタイムステップよりも早いタイムステップにおいて現れると判定される。
検査生成装置は、タイミング情報を各ノードに示すことによって、動的分析も実行することができる。例えば、変数iが10タイムステップの間指定されず、次いで、次の20タイムステップの間、先に示したように、100に指定され、次いでその後0に指定されると仮定する。すると、検査生成装置は、選択したノード及び/又は到達可能な下流ノードに、変数iは、タイムステップ0〜10の間は「未指定」、タイムステップ11〜30の間は100、そしてタイムステップ30の後は0の時間依存値を有することを示すことになる。
尚、ブロック560及び562双方の手順を同時に行ってもよい。言い換えると、ブロック560及び562を実現するソフトウェアを1つの合体モジュールに合体することによって、又は静的−動的分析技法を組み合わせて用いることによって、又はその他の手段によって、TRIを伝搬させ、同時に選択したノードに対して検査生成テンプレートを決定することができる。
ブロック562の手順を完了した後、検査生成装置はブロック580に進む。
ブロック570において、検査生成装置は、埋め込みノードを入力線図として用いて、伝搬方法500を再帰的にコールする。伝搬方法500への再帰的コールは、図5では、ブロック510に向かって下降する矢印に接触するブロック570から発する破線の矢印として示されている。伝搬方法500への再帰的コールは、線図を入力として取り込む関数コールを用いて実現することができる。
例えば、method500(in_diagram, output)が方法500の技法を実現する関数であると仮定する。ここで、in_diagramはmethod500()に入力される線図であり、outputはmethod500()の出力を表すデータ構造の一例である。更に、in_diagramのような線図が、getDiagram()と呼ばれる線図を表すデータ構造を戻すソフトウェア・メソッド又は関数をサポートすると仮定する。即ち、in_diagram.getDiagram()の呼び出しにより、線図in_diagramを表すデータ構造が戻される。次いで、embedded_nodeが、ブロック540において埋め込みノードであると判定された選択ノードを表す場合、方法500への再帰コールはmethod500(embedded_node.getDiagram(), output)とすればよい。方法500への再帰コールを実行している間に埋め込みノードembedded_node2を発見した場合、方法500を再度再帰的にコールすればよい。たとえば、method 500(embedded_node2.getDiagram(),output)となる。このように、混成線図内にある埋め込みノードを、コンピュータ実行による方法500のハードウェア及びソフトウェア資源によってのみ限定される深さまで処理することができる。
一般に、ブロック550において行う判定は、RTIの可用性に基づいて準備する検査生成テンプレートの選択に備えたものである。一方、TRIは、入力線図の主セマンティック表記、及びノードが指定されているか否かに基づくことができる。ノードが指定ノードである場合、ブロック560及び562の手順を実行すると、線図の主セマンティック表記及びノードのタイプに特定的であるとよい手順によって、TRIを伝搬させ、検査生成テンプレートを準備する。しかしながら、ノードが未指定ノードである場合、ブロック570における再帰コールでは、入力線図の主セマンティック表記とは異なってもよい、未指定ノードの主要セマンティック表記に基づく異なる手順の選択が可能となる。これは、未指定ノードは再帰コールの間入力線図として扱われるからである。
例えば、未指定ノードが埋め込みノードであり、内部線図がステートチャート情報を用いて書かれており、データ・フロー図を主に用いて書かれた線図に埋め込まれていると仮定する。方法500は、埋め込みノードの内部線図が分離したステートチャートであるかのように、無指定埋め込みノードを扱う。したがって、ステートチャート・アプリケーションに記載されているステートチャートのための検査生成技法を用いると、埋め込みノードを通じて入力及び出力を投影する(project)することができる。即ち、検査事例は、ステートチャート用の順方向伝搬パス及び/又は逆方向伝搬パスを用いて生成することができる。順方向伝搬パス及び逆方向伝搬パスはステートチャート上で動作し、したがってステートチャート表記で指定した用件から検査を生成する。検査事例は、適用すべきステートチャート入力の値と、多数のタイム・スタンプ(周期的又はイベント・ドリブン)にわたる期待出力とを収容する。ステートチャート・レベルでの検査生成では、ステートチャート表記のセマンティックスは全ての状態(埋め込みデータ・フロー図を含む)に用いられ、ステートチャート・アプリケーションに記載されているステートチャート技法を用いる。検査事例が生成されると、検査事例に対応する検査生成テンプレートを生成することによって、又は検査事例に基づいて既存の検査生成テンプレートを更新することによって、TRI及び/又は検査生成テンプレートとして用いるために、各検査事例を処理又は再フォーマット化することができる。
再帰コールが完了すると、方法500はブロック572に進む。
ブロック572において、検査生成装置は、選択したノードの後処理を行うことができる。後処理は、生成方法500の再帰コールの間に到達したノードからのTRIを組み合わせること、及び/又は再帰コールの間に到達しなかった入力線図のノードに投影することを含むことができる。検査生成部は、選択したノードの主セマンティック表記に基づいて選択した検査生成手順を用いて、選択したノードの後処理を行う。
再帰コールの間に到達したノードからのTRIを組み合わせる際及び/又は入力線図のノードに投影する際、入力線図及び/又は再帰コールの間に到達した到達ノードの主セマンティック表記に基づくとよい。特に、TRIの組み合わせ及び/又は投影は、再帰コールの間に到達したノード及び/又は入力線図のノードの分析に左右されることがある。
分析の一例では、それぞれのノードのセマンティック表記に基づいて、タイプ変換が必要となる場合もある。別の分析例として、再帰コールの間に到達した「vector-op」ノードが、vector-opノードのセマンティック表記によってサポートされるベクトル演算を行い、その後入力線図における「vector-out」ノードに出力を生成すると仮定する。すると、vector-outノードに供給されるTRIは、vector-opノードのセマンティック表記に左右されることになる。
更に、ブロック572の手順の一部として、後処理の出力を入力線図のノードに利用可能にする必要がある場合もある。この出力を利用可能にするには、ブロック560に関して説明した伝搬技法、及び/又はブロック562に関して記載した判定技法を用いて、TRI情報を投影すればよい。後処理の出力を利用可能にするためには、検査生成装置は、代わりに又は加えて、入力線図からの入力の、再帰コールの間に到達したノードへのそしてこれらのノードを通過する順方向伝搬、及び/又は出力の、再帰コールの間に到達したノードへのそしてこれらのノードを通過する逆方向伝搬を用いることもできる。
ブロック572の手順を完了した後、検査生成装置はブロック580に進む。
ブロック580において、検査生成装置は、選択したノードから下流にあるノードをTRI伝搬キューに入力することができる。最初に、検査生成装置は、TRI伝搬キューを調べて、各下流ノードの存在を確認した後に、下流ノードをTRI伝搬キューに入力する。
ブロック590において、検査生成装置は、TRI伝搬キューが空から否か判定を行うことができる。TRI伝搬キューが空でない場合、検査生成装置はブロック520に進むことができる。TRI伝搬キューが空である場合、方法500は終了する。しかしながら、データ伝搬コールが、方法500への再帰的コールの間に、初期状態で満杯であった場合、方法500への再帰コールは、ブロック590においてTRI伝搬キューが空であると判定したときに完了し、(a)方法500への全ての再帰コールが完了し終えるまで、及び(b)TRI伝搬キューが空になるまでの双方において、方法500は継続することができる。
線図から検査を生成する方法
図6は、本発明の実施形態にしたがって、検査生成テンプレートから検査を生成する方法600の一例を示すフローチャートである。
方法600は、ブロック610において開始する。方法600は、検査生成装置によって実行される。
ブロック610において、検査生成装置は、線図に関連する複数の検査生成テンプレートを受け取る。受け取った検査生成テンプレートは、図5を参照して先に説明した方法500の使用によって生成される。受け取った検査生成テンプレートは、検査生成テンプレート・データ構造に格納される。
ブロック620において、検査生成装置は、検査生成テンプレートを選択する。検査生成テンプレートは、線図の特定のノードと関連付けられている。検査生成テンプレート・データ構造は、選択により更新することもできる。例えば、選択した検査生成テンプレートを検査生成テンプレート・データ構造から除去することができ、及び/又は選択した検査生成テンプレートを、検査生成テンプレート・データ構造において「選択済み」という印を付けることもできる。検査生成テンプレートを選択するための多くの他の技法も採用可能である。
ブロック630において、検査生成装置は、入力を上流の影響を受ける可能性がある入力点に向けて投影する。検査生成装置は、投影すべき入力に基づいて、関連するノードの上流にある経路に沿って1つ以上の影響を受ける可能性がある入力点までのノードについて、検査生成テンプレートによって指定された値を更新することによって、入力を上流に投影する。検査生成装置は、一旦影響を受ける可能性がある入力点に達したならば、入力の投影を中止する。ノードを内包する線図が親線図を有し、影響を受ける可能性のある入力点が子線図では到達可能でない場合、値は子線図入力から、親線図内に内包されている内包ノード(containing node)の入力ポートまで投影しなければならない。これは、影響を受ける可能性がある入力点に達するまで継続し、上位線図の入力ポートまで隈無く投影する。
影響を受ける可能性がある入力点とは、線図への入力、又は埋め込みノードを含む、指定場所(例えば、線図における選択ノード又はアーク)のいずれかであり、検査中に入力を指定することができる。同様に、「測定可能な観察点」という用語は、線図の出力、又は検査中に出力を観察することができる指定場所のいずれかを記述するために用いられる。指定場所は、入力デバイスを用いて線図の表示のノード又はアークを選択することによって、検査スクリプト・ファイルを編集することによって、及び/又は場所を指定するために1つ以上のコマンドを入力することによって、ユーザによって選択することができる。
影響を受ける可能性がある入力点及び/又は測定可能な観察点を用いると、検査生成及び可能な検査実行のために線図の一部又は複数の部分を(線図全体の代わりに)選択することをユーザに可能にすることにより、検査作業を補助することができる。線図の一部を選択するには、1つ以上の場所を影響を受ける可能性がある入力点として指定する、及び/又は1つ以上の場所を測定可能観察点として指定すればよい。検査生成装置は、次に、線図の選択部分のみに対して検査を生成することができる。これら双方により、ユーザは、線図全体ではなく、線図の一部に集中し、検査作業を速めることが可能となる。
ブロック640において、検査生成装置は、期待出力を順方向に関連ノードから測定可能な観察点に伝搬させて、検査生成テンプレートにおいて指定された値が観察点において完全に帰属可能となるようにする。
検査生成装置は、関連するノードのセマンティクスを調べて、ノードに対してどの入力が必要か判断する。例えば、関連ノードが入力「I1」、「I2」、及び「I3」を受け取り、出力「O1」及び「O2」を生成するステートチャート・ノードであると仮定すると、以下の処理を実行する。
O1=I1*I2+3
O2=I2−I3
ステートチャート・ノードから要求される期待出力がO1のみである場合、必要な入力はI1及びI2のみとなる。同様に、期待出力がO2のみである場合、必要な入力はI2及びI3のみとなる。
出力を前方に(forward)投影する前に、検査生成装置は関連ノードの処理を実行して、伝搬させるべき特定の出力値を決定することができる。前述の例を続けると、I1、I2、及びI3の値をそれぞれ10、20、及び30に決定したと仮定する。この場合、検査生成装置は、O1はI1*I2+3=203であり、O2はI2−I3=−100であると、関連ノードにおいて示される処理に基づいて決定することができる。
前述の例において示したように、帰属する出力値を決定し、ノードを通じて伝搬させるためには、多数の入力が必要となる場合がある。ノードへの入力の全てでなく一部を、影響を受け得る入力点に投影する場合、検査生成装置は、ノードから出力を伝搬させる前に、未だ投影されていない入力の値(又は値の範囲)を決定しなければならない場合もある。
検査生成装置は、表記特定方法を用いて、未投影入力を判定することができる。例えば、ステートチャートでは、ステートチャートに関する出願に開示されている順方向伝搬及び/又は逆方向伝搬技法が、未投影入力を判定することができる。逆方向伝搬技法は、線図に用いられているセマンティック表記に応じて、使用する。また、逆方向伝搬技法は、部分的に、検査生成結果を問い合わせることによって実行することができる。
例えば、ノードの内部線図をステートチャート表記を用いて書き、主にデータ・フロー表記を用いて書いた線図に、このノードを埋め込むと仮定する。ステートチャート検査生成の副産物として、ステートチャート全体の順方向伝搬パス及び/又は逆方向伝搬パスの使用により、逆方向及び順方向データ・フロー信号伝搬仕様が、ステートチャートに合わせて自動的に作成される。
順方向伝搬パス及び逆方向伝搬パスは、ステートチャート入力値及びステートチャート出力値に基づいて、検査事例を生成する。データ・フロー図のコンテキストでは、ステートチャート入力値は、ステートチャートを用いて表されているデータ・フロー図のブロックの入力ポートにおける値として指定することができる。同様に、ステートチャート出力値は、ステートチャートを用いて表されているブロックの出力ポートにおける値として指定することができる。ステートチャート入力値及びステートチャート出力値は、1つ又は複数の特定値(例えば、input1=4又はoutput1=7,20)、値の範囲(例えば、input1=[120,200])、及び特定値及び値の範囲の組み合わせ(例えば、input1=4,7, [10, 50]又はoutput1=2,6,[12,52], [120,200])に関して指定することができる。
一部のステートチャートには、多数の検査事例が生成される場合もある。したがって、検査事例に問い合わせて、当該検査事例の特定の部分集合を決定するとよい。検査事例の問い合わせは、1つ以上のステートチャート入力値及び/又は1つ以上のステートチャート出力値に基づくことができる。即ち、問い合わせは、特定の入力値又は特定の出力値、例えば、input1=145又はoutput1=269に基づいて、検査事例で作ることができる。ステートチャート入力値及びステートチャート出力値と同様、問い合わせは、特定の値及び/又は値の範囲を用いて作ることもできる(例えば、問い合わせは、input1=[120,200]又はoutput1=2, 6, [12,52], [120,200]と指定することができる)。
問い合わせは、問い合わせ入力を決定するノードを決定するために、範囲のない、即ち、無限範囲の入力(例えば、input1=[−∞,+∞])について形成することができる。問い合わせの結果に基づいて、検査生成装置は、問い合わせ入力を最初に決定したソース・ノードを判定し、次いでソース・ノードから関連ノードに問い合わせ入力を投影することができる。
ブロック650において、検査生成装置は、投影入力及び/又は伝搬出力に基づいて、検査を生成する。投影入力及び/又は伝搬出力は、選択した検査生成テンプレートに含ませることができる。次いで、投影入力及び/又は伝搬出力に基づいて、検査ベクトルを生成することができる。次いで、検査ベクトルから1つ以上の検査を生成することができる。例えば、1つ以上の生成した検査は、検査ベクトル(のコピー)であってもよい。次いで、生成した検査は、検査生成装置のメモリの中、生成した検査の電子ファイルに、印刷した又はそれ以外の永続的記録上等に記録すること、及び/又は別の計算機に電子的に送信することができる。
ブロック660において、処理すべき別の検査生成テンプレートがあるか否か判定を行う。例えば、検査生成テンプレートを保持するために用いている検査生成テンプレート・データ構造が空でないことを判定することによって、判定を行うことができる。別の例として、検査生成テンプレート・データ構造を精査して、全ての検査生成テンプレートに「選択済み」と印されており、したがって全ての検査生成テンプレートを処理し終えているか否か確認することもできる。処理すべき検査生成テンプレートがあるか否か判定するために、他の多くの技法が採用可能である。処理すべき別の検査生成テンプレートがある場合、方法600はブロック620に進む。処理すべき検査生成テンプレートがない場合、方法600は終了する。
結論
以上、本発明の実施形態例について説明した。しかしながら、特許請求の範囲によって規定する、本発明の真の技術的範囲及び技術思想から逸脱することなく、記載した実施形態には変更や修正が可能であることは、当業者であれば理解できるであろう。本明細書において詳細に説明した本構成及びその他の構成は、例示の目的のためにのみ呈示したのであって、本発明は以下の特許請求の範囲の範囲及び主旨の中に全ての修正や改良を包含することは言うまでもない。したがって、他の構成及びその他の要素(例えば、機械、インターフェース、機能、順序、機能の集合体等)も代わりに用いることができ、いくつかの要素は纏めて省略してもよいことは、当業者には認められるであろう。
更に、本明細書において記載した要素の多くは、機能的エンティティであり、離散コンポーネント又は分散コンポーネントとして、あるいは他のコンポーネントと一緒に、適した組み合わせ及び位置であればいずれでも、そしてハードウェア、ファームウェア、及び/又はソフトウェアの適した組み合わせであれば如何様にも実現することができる。

Claims (3)

  1. 検査生成装置であって、
    コンピュータ・プロセッサと、
    データ・ストレージと、
    前記データ・ストレージに格納され、前記コンピュータ・プロセッサによって実行可能な機械語命令であって、
    前記検査生成装置を初期化し、
    複数の埋め込みノードと、複数のアークとを含む、複数のノードを備えているシステム実行デバイスに対する要件を表す線図を入力し、各アークは前記複数のノードの1つ以上を接続し、前記複数のノードにおける各ノードは、前記複数の埋め込みノードを除いて、主要セマンティック表記に属し、前記複数の埋め込みノードにおける各埋め込みノードは、前記主要セマンティック表記と同一でない副セマンティック表記に属する少なくとも1つのサブ線図を備えており、
    前記ノードが用いるセマンティック表記に基づいて、前記複数のノードにおける各ノードを通じて、タイプ及び範囲情報(TRI)を伝搬させ、
    前記ノードが用いるセマンティック表記に基づいて、前記複数のノードにおける各ノード毎に、複数の検査生成テンプレートを決定し、
    前記複数の検査生成テンプレートに基づいて、前記線図に対する検査を生成し、
    少なくとも1つの生成した検査を実行すべきか否か判定を行い、
    少なくとも1つの生成した検査を実行すべきであるという判定に応答して、前記少なくとも1つの生成した検査を実行する
    ことを含む機能を実行するための機械語命令と、
    を備えていることを特徴とする検査生成装置。
  2. 請求項1記載の検査生成装置において、前記線図を通してTRI情報を伝搬させ、複数の検査生成テンプレートを決定する機能は、
    前記線図の部分集合である入力線図の前記複数のノードの少なくとも1つのノードを、TRI伝搬キューに挿入し、
    前記入力線図のセマンティック表記に基づいて検査生成手順を選択し、
    前記TRI伝搬キューが空でない間、
    (i)前記TRI伝搬キューからノードを選択し、
    (ii)前記選択したノードを前記TRI伝搬キューから除去し、
    (iii)前記選択したノードが指定ノードであるか否か判定し、
    (iv)前記選択したノードが指定ノードであると判定したことに応答して、前記選択ノードを通じてTRIを伝搬させ、前記選択した検査生成手順を用いて、前記選択したノードに対して検査生成テンプレートを決定し、
    (v)前記選択したノードが非指定ノードであると判定したことに応答して、前記選択したノードを入力線図として用いて、前記伝搬方法を再帰的にコールし、次いで前記選択したノードを後処理し、前記選択したノードの後処理を、前記選択したノードのセマンティック表記に基づいて行う
    ことを実行することを特徴とする検査生成装置。
  3. 請求項1記載の検査生成装置において、前記複数の検査生成テンプレートに基づいて前記線図に対して検査を生成する機能は、
    (i)前記複数の検査生成テンプレートから検査生成テンプレートを選択し、
    (ii)前記選択した検査生成テンプレートの上流にある入力を、前記線図の複数の影響を及ぼし得る入力点に投影し、
    (iii)関連するノードから複数の測定可能測定点に、期待出力を下流に向けて伝搬させ、
    (iv)前記投影した入力と前記伝搬させた期待出力とに基づいて生成した検査を記録し、
    (v)前記複数の検査生成テンプレートにおいて、処理すべき別の検査生成テンプレートを決定し、
    (vi)別の検査生成テンプレートを処理すべきであると判定したことに応答して、前記別の検査生成テンプレートに対して機能(i)〜(iv)を実行する
    ことを特徴とする検査生成装置。
JP2009114741A 2008-05-14 2009-05-11 データ・フロー及びステートチャート表記を組み合わせた混成図からの検査生成方法及び装置 Withdrawn JP2009277225A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5320508P 2008-05-14 2008-05-14
US12/247,882 US8423879B2 (en) 2008-05-14 2008-10-08 Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation

Publications (1)

Publication Number Publication Date
JP2009277225A true JP2009277225A (ja) 2009-11-26

Family

ID=41202632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009114741A Withdrawn JP2009277225A (ja) 2008-05-14 2009-05-11 データ・フロー及びステートチャート表記を組み合わせた混成図からの検査生成方法及び装置

Country Status (3)

Country Link
US (1) US8423879B2 (ja)
EP (1) EP2131285A2 (ja)
JP (1) JP2009277225A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118757A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd 検証支援プログラム、および検証支援装置

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070074180A1 (en) * 2003-12-22 2007-03-29 Nasa Hq's Systems, Methods and Apparatus for Procedure Development and Verification
US8307342B2 (en) * 2008-05-14 2012-11-06 Honeywell International Inc. Method, apparatus, and system for automatic test generation from statecharts
US8423879B2 (en) 2008-05-14 2013-04-16 Honeywell International Inc. Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation
US20100192128A1 (en) * 2009-01-27 2010-07-29 Honeywell International Inc. System and methods of using test points and signal overrides in requirements-based test generation
US9665350B1 (en) * 2009-05-29 2017-05-30 The Mathworks, Inc. Automatic test generation for model-based code coverage
US8224614B2 (en) * 2009-10-30 2012-07-17 International Business Machines Corporation Generating a combination exerciser for executing tests on a circuit
US8966437B2 (en) * 2009-12-01 2015-02-24 International Business Machines Corporation Method and apparatus of specifying the concrete syntax of graphical modeling languages
US20110131547A1 (en) * 2009-12-01 2011-06-02 International Business Machines Corporation Method and system defining and interchanging diagrams of graphical modeling languages
US9098619B2 (en) 2010-04-19 2015-08-04 Honeywell International Inc. Method for automated error detection and verification of software
US8661424B2 (en) * 2010-09-02 2014-02-25 Honeywell International Inc. Auto-generation of concurrent code for multi-core applications
US20120192158A1 (en) 2010-11-22 2012-07-26 Carlo Amalfitano Model Based Verification Using Forward and Reverse Traversal of Variable Time Line
JP5609656B2 (ja) * 2011-01-11 2014-10-22 富士通株式会社 設定プログラム、ワークフロー作成方法およびワークフロー作成装置
US8984488B2 (en) 2011-01-14 2015-03-17 Honeywell International Inc. Type and range propagation through data-flow models
US8984343B2 (en) 2011-02-14 2015-03-17 Honeywell International Inc. Error propagation in a system model
US8527813B2 (en) * 2011-12-19 2013-09-03 Siemens Aktiengesellschaft Dynamic reprioritization of test cases during test execution
US9058427B2 (en) * 2012-07-16 2015-06-16 Fujitsu Limited Iterative generation of symbolic test drivers for object-oriented languages
US9367433B2 (en) * 2013-02-13 2016-06-14 International Business Machines Corporation Generating input values for a test dataset from a datastore based on semantic annotations
US9529699B2 (en) * 2013-06-11 2016-12-27 Wipro Limited System and method for test data generation and optimization for data driven testing
FR3021769B1 (fr) * 2014-05-27 2016-07-01 Thales Sa Dispositif et procede de generation d'au moins un fichier informatique pour la realisation d'une interface graphique d'un equipement electronique, et produit programme d'ordinateur associe
US9021440B1 (en) * 2014-08-11 2015-04-28 Pmc-Sierra Us, Inc. System and method for automated test script generation
FR3026511B1 (fr) * 2014-09-30 2018-02-16 Safran Electronics & Defense Procede de test d'un composant logiciel
JP6453631B2 (ja) * 2014-11-28 2019-01-16 株式会社東芝 認識システム、認識方法およびプログラム
US10108536B2 (en) 2014-12-10 2018-10-23 General Electric Company Integrated automated test case generation for safety-critical software
US9940222B2 (en) 2015-11-20 2018-04-10 General Electric Company System and method for safety-critical software automated requirements-based test case generation
US10120785B2 (en) 2016-10-21 2018-11-06 Rosemount Aerospace Inc. Automatic generation of data coupling and control coupling test conditions
US11853270B2 (en) * 2020-06-30 2023-12-26 UiPath, Inc. Method and apparatus for visualizing a process map

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272704A (en) 1989-08-18 1993-12-21 General Electric Company Method and apparatus for generation of multi-branched diagnostic trees
US5150367A (en) 1990-03-02 1992-09-22 General Electric Company Composite range constraint propagation control
US5572436A (en) * 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design
AU665521B2 (en) 1990-10-03 1996-01-11 Thinking Machines Corporation Parallel computer system
US5918037A (en) 1996-06-05 1999-06-29 Teradyne, Inc. Generating tests for an extended finite state machine using different coverage levels for different submodels
US5729554A (en) 1996-10-01 1998-03-17 Hewlett-Packard Co. Speculative execution of test patterns in a random test generator
US5995915A (en) * 1997-01-29 1999-11-30 Advanced Micro Devices, Inc. Method and apparatus for the functional verification of digital electronic systems
US6002869A (en) 1997-02-26 1999-12-14 Novell, Inc. System and method for automatically testing software programs
US5913023A (en) 1997-06-30 1999-06-15 Siemens Corporate Research, Inc. Method for automated generation of tests for software
US7039912B1 (en) 1998-05-12 2006-05-02 Apple Computer, Inc. Integrated computer testing and task management systems
US6173440B1 (en) 1998-05-27 2001-01-09 Mcdonnell Douglas Corporation Method and apparatus for debugging, verifying and validating computer software
DE19840926B4 (de) 1998-09-08 2013-07-11 Hell Gravure Systems Gmbh & Co. Kg Anordnung zur Materialbearbeitung mittels Laserstrahlen und deren Verwendung
US6473794B1 (en) 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US6615166B1 (en) 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology
US6671874B1 (en) 2000-04-03 2003-12-30 Sofia Passova Universal verification and validation system and method of computer-aided software quality assurance and testing
US6944848B2 (en) 2001-05-03 2005-09-13 International Business Machines Corporation Technique using persistent foci for finite state machine based software test generation
US6697982B2 (en) * 2001-05-04 2004-02-24 Texas Instruments Incorporated Generating netlist test vectors by stripping references to a pseudo input
US6938228B1 (en) 2001-07-20 2005-08-30 Synopsys, Inc. Simultaneously simulate multiple stimuli and verification using symbolic encoding
US7272752B2 (en) 2001-09-05 2007-09-18 International Business Machines Corporation Method and system for integrating test coverage measurements with model based test generation
US20030128214A1 (en) 2001-09-14 2003-07-10 Honeywell International Inc. Framework for domain-independent archetype modeling
US6570459B1 (en) 2001-10-29 2003-05-27 Northrop Grumman Corporation Physics package apparatus for an atomic clock
CA2393043A1 (en) 2002-07-11 2004-01-11 Luiz Marcelo Aucelio Paternostro Formal test case definitions
US7219328B2 (en) 2002-08-28 2007-05-15 Honeywell International Inc. Model-based composable code generation
US7810067B2 (en) * 2002-08-30 2010-10-05 Sap Aktiengesellschaft Development processes representation and management
US7134113B2 (en) 2002-11-04 2006-11-07 International Business Machines Corporation Method and system for generating an optimized suite of test cases
GB0226803D0 (en) 2002-11-16 2002-12-24 Koninkl Philips Electronics Nv State machine modelling
US7051322B2 (en) 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
US7412430B1 (en) 2002-12-09 2008-08-12 Electronic Data Systems Corporation Determining the quality of computer software
US7913232B2 (en) 2003-02-21 2011-03-22 The Math Works, Inc. Certifying software for safety-critical systems
US20050043913A1 (en) 2003-08-19 2005-02-24 Rex Hyde Method of determining the level of structural coverage testing of test cases which are written for a program that does not provide for structural coverage testing
US20050097515A1 (en) 2003-10-31 2005-05-05 Honeywell International, Inc. Data empowered laborsaving test architecture
EP1680741B1 (en) 2003-11-04 2012-09-05 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems
US20050114841A1 (en) 2003-11-21 2005-05-26 Moskowitz Milton E. Automatic computer code review tool
US20050216890A1 (en) 2004-03-15 2005-09-29 Ramco Systems Limited Model driven software
DE102004014290A1 (de) * 2004-03-24 2005-10-06 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Verfahren zur Erstellung von Abläufen zum Testen einer Software
US7865339B2 (en) 2004-07-12 2011-01-04 Sri International Formal methods for test case generation
US20070028219A1 (en) 2004-10-15 2007-02-01 Miller William L Method and system for anomaly detection
US20070028220A1 (en) 2004-10-15 2007-02-01 Xerox Corporation Fault detection and root cause identification in complex systems
US20060101402A1 (en) 2004-10-15 2006-05-11 Miller William L Method and systems for anomaly detection
EP1677187A1 (en) 2004-12-31 2006-07-05 Anna Rita Laurenzi A software development method
US20060155520A1 (en) 2005-01-11 2006-07-13 O'neill Peter M Model-based pre-assembly testing of multi-component production devices
US7457729B2 (en) * 2005-01-11 2008-11-25 Verigy (Singapore) Pte. Ltd. Model based testing for electronic devices
US7735058B2 (en) 2005-01-31 2010-06-08 Northrop Grumman Systems Corporation Remote component and connection architecture
US20060253839A1 (en) 2005-03-30 2006-11-09 Alberto Avritzer Generating performance tests from UML specifications using markov chains
US20060265691A1 (en) * 2005-05-20 2006-11-23 Business Machines Corporation System and method for generating test cases
US8290753B2 (en) 2006-01-24 2012-10-16 Vextec Corporation Materials-based failure analysis in design of electronic devices, and prediction of operating life
US20070266366A1 (en) 2006-05-12 2007-11-15 Iosemantics, Llc Generating and utilizing finite input output models, comparison of semantic models and software quality assurance
US7975257B2 (en) 2006-06-13 2011-07-05 Microsoft Corporation Iterative static and dynamic software analysis
US7813911B2 (en) 2006-07-29 2010-10-12 Microsoft Corporation Model based testing language and framework
US7698668B2 (en) 2006-10-10 2010-04-13 Honeywell International Inc. Automatic translation of simulink models into the input language of a model checker
US7631227B2 (en) 2006-11-21 2009-12-08 Etaliq Inc. Automated testing and control of networked devices
US7644334B2 (en) * 2006-11-27 2010-01-05 Honeywell International, Inc. Requirements-based test generation
US8250541B2 (en) 2007-09-20 2012-08-21 The Boeing Company Reversible object code compiler for mathematical models
US8423879B2 (en) 2008-05-14 2013-04-16 Honeywell International Inc. Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation
US8307342B2 (en) * 2008-05-14 2012-11-06 Honeywell International Inc. Method, apparatus, and system for automatic test generation from statecharts
US8612938B2 (en) 2009-01-05 2013-12-17 Tata Consultancy Services Limited System and method for automatic generation of test data to satisfy modified condition decision coverage
US20100192128A1 (en) 2009-01-27 2010-07-29 Honeywell International Inc. System and methods of using test points and signal overrides in requirements-based test generation
JP5325048B2 (ja) 2009-08-25 2013-10-23 株式会社ミツトヨ 誤差伝播による出力データの精度評価方法
US9098619B2 (en) 2010-04-19 2015-08-04 Honeywell International Inc. Method for automated error detection and verification of software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118757A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd 検証支援プログラム、および検証支援装置

Also Published As

Publication number Publication date
US20090287958A1 (en) 2009-11-19
US8423879B2 (en) 2013-04-16
EP2131285A2 (en) 2009-12-09

Similar Documents

Publication Publication Date Title
JP2009277225A (ja) データ・フロー及びステートチャート表記を組み合わせた混成図からの検査生成方法及び装置
JP5608203B2 (ja) 要求ベーステスト生成
JP5495615B2 (ja) ステートチャートからの自動検査生成方法及び装置及びシステム
US6385765B1 (en) Specification and verification for concurrent systems with graphical and textual editors
JP3966518B2 (ja) プログラム解析装置、その解析方法及びプログラム
US7665072B2 (en) Generating test cases for software with complex preconditions
NL2010546C2 (en) Method and apparatus for automatically generating a test script for a graphical user interface.
US9535821B1 (en) Displaying violated coding rules in source code
US20100192128A1 (en) System and methods of using test points and signal overrides in requirements-based test generation
KR20130135271A (ko) 코드 복제 통지 및 아키텍처 변경 가시화
US9594608B2 (en) Message-based modeling
US10282501B1 (en) Support for multiple user defined assertion checkers in a multi-FPGA prototyping system
US9280627B1 (en) GUI based verification at multiple abstraction levels
De Ruvo et al. An eclipse-based editor to support lotos newcomers
CN114265846A (zh) 一种数据操作方法、装置、电子设备和存储介质
JP6037976B2 (ja) ソースコード生成装置
JPH09237191A (ja) プログラミング支援装置、プログラミング支援方法、及びプログラミング支援プログラムを記録した媒体
Matsuura et al. Automatic Verification of Behavior of UML Requirements Specifications using Model Checking.
US8174540B1 (en) Consistency checking of user-settable isolated parameters in a graphical model
JP2016224623A (ja) 画面ui検証装置、画面ui検証方法、及びプログラム
Vacek New checkers for sequence chart studio
CN116339742A (zh) 获取函数的方法、装置及存储介质
Slåtten Automatic Detection and Correction of Flaws in Service Specifications
JP4189101B2 (ja) クラスタシステムのシステム構成およびシステム動作の定義装置
CN115495061A (zh) 一种用于工业仿真软件的作业模板脚本及实现方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120807