プロダクト | 概 要 |
---|---|
Reactis for Simulink | テストスイート生成, シミュレーション, Simulink® / Stateflow® モデル検証 |
Reactis for EML Plugin | Reactis が Embedded MATLAB® をサポートするためのオプション |
Reactis for C Plugin | Reactis が モデルに含まれる C コードの検証サポートするためのオプション (C Caller blocks, S-Functions 及び Stateflow custom code) |
Reactis Model Inspector | 独立した製品、軽快に動く Simulink Viewer |
Reactis for C | テストスイート生成, シミュレーション, C コード検証 (モデルには含まれないコードを検証) |
Reactis for Simulink は、MathWorks社のSimulinkで作成された SLX ファイルを読込み、検証する事が可能です。 Reactis は、3つのコンポーネントで 構成されます。: Reactis Tester, Reactis Simulator, そして Reactis Validator です。
Reactis Tester は、 guided simulation と呼ばれる特許技術に基づくテストスイート生成コンポーネントです。ツールは、様々な カバレッジメトリックスをデータ生成と同時に計測します。そして未到達なカバレッジメトリクス を使って、更にデータを拡張します。
カバレッジメトリクスとは、一般的な Decision, Condition, と Modified Condition/Decision Coverage (MC/DC),
Simulink 特有の ブランチ や サブシステム, そして
Stateflow 特有の ステート, コンディションアクション, や トランジションアクション 等です。
モデルに対する生成されたコード(自動生成、ハンドコード)のテストは、 Reactisなら容易に行う事が可能:
バグを理解し、影響分析、修正するためには?
Validator はテストスイートを使用し、モデルの検証作業を行います。ユーザは、 まず初めにモデルを監視するための条件(モデルや式)を装着します。 Validatorは、次にテストスイート生成コンポーネントのTesterを使いデータを生成し、 違反を引き起こすデータが無いか確認します。
監視するための条件とは、 assertionsやuser-defined targets の事です。 Assertions の条件は、もしモデルの機能が正しく動作すると、常に true であることが求められます。 User-defined targets の条件は、常にテストされなくてはなりません。 テストスイート生成の間、Reactisは assertions の違反を監視し、そしてuser-defined targets を カバーする事を試みます。assertions と user-defined targets は、C コードの式、又は Simulink/Stateflow を 使ったモデルとして記述します。
Reactis for C は、Cコード(自動生成、ハンドコード)のテストスイート生成、シミュレーション、 そして検証作業をサポートします。 Reactis for C を構成する3つのメインコンポーネントは: Reactis Tester, Reactis Simulator, そして Reactis Validatorです。
Reactis Tester は、 guided simulation と呼ばれる特許技術に基づくテストスイート生成コンポーネントです。ツールは、様々な カバレッジメトリックスをデータ生成と同時に計測します。そして未到達なカバレッジメトリクス を使って、更にデータを拡張します。 カバレッジメトリクスには、ステートメント、デシジョン、 コンディション、 Modified Condition/Decision Coverage (MC/DC), Function, and Function Call 等があります。
Reactis Tester により生成されたテストスイートは、Cコードのランタイムエラーを検出するために利用されます。 特にメモリーエラーは容易に発生し、デバッグは非常に難しいと言えます。なぜなら 不正なアドレスへのreads-from や writes-to により発生する 非常に一般的なエラーと言えます。原因の一つは、Cプログラムのメモリーに直接アクセスを許している為です。 この事によりパフォーマンスは向上されますが、エラー発生の可能性を増加させます。
Reactisにより検出されるエラーには、out-of-bounds array indexes, buffer overruns, 無効なメモリー領域を指すポインター (解放処理の後にメモリ領域を参照する)、 無効な stack pointers (関数の処理終了後に、その関数のローカル変数へのポインターアクセス)、 そして 無効な数値により、ポインターへのキャストが行われる。 Reactis Tester は、これらのエラーを検出するだけでなく、Reactis Simulator により実行された 情報もユーザにフィードバックします。
バグを理解し、影響分析、修正するためには?
Validator は、テストスイートを使用し C コードの検証を行います。ユーザは、 まず初めにコードを監視するための条件(式)装着します。 Validator は、次にテストスイート生成コンポーネントの Tester を使いデータを生成し、 違反を引き起こすデータが無いか確認します。
ランタイムエラーの排除は重要です。しかし高品質のソフトウェアへの 一歩に過ぎません。クラッシュはしないが、誤った動作をするプログラムも 見過ごす事は出来ません。Reactis Validator は、あなたのプログラムが 適切に動作するか検証する為の定式化とチェックを提供します。 チェックは、Cのアサート機構と同様に定式化されます。