ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Stateflow チャートのモデル カバレッジ

Stateflow チャートでのモデル カバレッジ レポートの機能

モデル カバレッジ レポートを生成するには、[解析][カバレッジ][設定] を選択して、[カバレッジの設定] ダイアログ ボックスの [レポート] タブで目的のオプションを指定します。Stateflow® チャートについては、Simulink® Verification and Validation™ ソフトウェアはチャート自体の実行と、ステート、遷移判定および各判定を構成する個別の条件の実行を記録します。シミュレーションが完了すると、モデルのテストがどの程度まで実行されたかを示すモデル カバレッジ レポートが表示されます。レポートには以下のデータが示されます。

  • スーパーステートの履歴に基づく、各排他的サブステートの入力、実行および出力の回数

  • 各遷移判定が真または偽として評価された回数

  • 各条件が真または偽として評価された回数

    メモ:    Stateflow チャートのモデル カバレッジ データを測定するには、Stateflow ライセンスがなければなりません。

カバレッジ レポート設定の指定

カバレッジ レポート設定を指定するには、Simulink エディターで [解析][カバレッジ][設定] を選択します。

[カバレッジ設定] ダイアログ ボックスで [HTML レポートの生成] オプションを選択することで、モデルのシミュレーション時に生成されたカバレッジ データを含む HTML レポートを作成できます。このレポートは、シミュレーションの終了時に MATLAB® ヘルプ ブラウザーで表示されます。

[HTML レポートの生成] オプションを選択すると、レポートに指定可能な別のカバレッジも選択できるようになります。以下の節では、Stateflow チャートのレポートに影響するカバレッジ メトリックのみを取り上げます。具体的には、判定カバレッジ、条件カバレッジおよび MCDC カバレッジです。

循環的複雑度

循環的複雑度は、制御フロー チャート内のエッジ、ノードおよびコンポーネントに基づくソフトウェア モジュールの複雑度の尺度です。モジュールを何回テストする必要があるかを示します。

循環的複雑度の計算は、次のようになります。

CC = E - N + p

CC は循環的複雑度、E はエッジ数、N はノード数、p はコンポーネント数です。

モデル カバレッジ ツール内では、各判定は制御フロー ノードに、各判定結果は制御フロー エッジにそれぞれ 1 対 1 で対応しています。制御フロー チャート内のその他の構造体は、エッジと同数のノードの一部として扱われ、複雑度の計算には影響しないため、無視されます。このため、循環的複雑度は以下のように表すことができます。

CC = OUTCOMES - DECISIONS + p

解析目的では、各チャートは単一のコンポーネントとみなされます。

判定カバレッジ

判定カバレッジは、動作または実行により一連の相互排他的な結果から必ず 1 つの結果が得られるという基本判定に基づいて、モデルの実行を解釈します。

    メモ:    判定オブジェクトの完全なカバレッジとは、起こり得る結果ごとに少なくとも 1 回、すべての判定が実行されたことを意味します。

判定は、その内容またはプロパティに基づいて判定が実施されるオブジェクトに属しています。以下の表は、Stateflow オブジェクトのモデル カバレッジに対して記録された判定をリストしています。表に続く節で、各判定と起こり得る結果について説明します。

オブジェクト

起こり得る判定

チャート

チャートが、トリガーされた Simulink ブロックである場合は、そのブロックを実行するかどうかを判定しなければなりません。

チャートが排他的 (OR) サブステートを含む場合は、どの状態を実行するのかを判定する必要があります。

ステート

ステートが、排他的 (OR) サブステートを含むスーパーステートである場合は、どのサブステートを実行するのかを判定する必要があります。

ステートが on event name アクション (時相論理演算子が含まれることがあります) を含む場合は、アクションを実行するかどうかを判定しなければなりません。

遷移

遷移が条件付き遷移の場合は、アクティブな遷移元ステートまたはジャンクションを終了して、別のステートまたはジャンクションに入るかどうかを判定する必要があります。

トリガーされた Simulink ブロックの判定に該当するチャート

チャートが、Simulink モデル内でトリガーされたブロックである場合は、ブロックを実行するかどうかの判定がテストされます。ブロックがトリガーされていない場合は、ブロックの実行判定は発生せず、この判定カバレッジは該当なし (NA) として評価されます。

排他的 OR サブステート判定を含むチャート

排他的 (OR) サブステートを含むチャートでは、どのサブステートを実行するかの判定がテストされます。チャートがパラレル AND サブステートのみを含む場合は、このカバレッジ測定は該当なし (NA) として評価されます。

排他的 OR サブステート判定を含むスーパーステート

チャートは階層的に上から下の順に処理されるため、排他的 (OR) サブステートの入力、出力および実行は、サブステートの親であるスーパーステートによって判定される場合があります。

    メモ:    スーパーステートの判定カバレッジは、排他的 (OR) サブステートに対してのみ適用されます。スーパーステートがパラレル (AND) サブステートに対する判定を行うことはありません。

処理対象の排他的 (OR) サブステートは必ずスーパーステートによって判定されるため、スーパーステートの判定結果の数は、そのスーパーステートに含まれている排他的 (OR) サブステートの数です。以下の例では、処理対象のサブステートは、3 つのコンテキストのいずれかで選択されます。

    メモ:    以下の例では、暗黙的な遷移は点線として示されています。

コンテキスト発生する判定

アクティブな呼び出し

ステート AA1 はアクティブです。

  • ステート A と B の親は、どちらのステートを処理するかを判定する必要があります。この判定は、親に属します。ステート A がアクティブであるため、処理されます。

  • ステート A はステート A1A2 の親であり、どちらのステートを処理するかを判定しなければなりません。この判定は、ステート A に属します。A1 がアクティブであるため、この判定は処理されます。

ステート A1 の処理中に、すべての出力遷移がテストされます。この判定は、親ステート A ではなく遷移に属します。この場合、条件 C2 によってマークされた遷移がテストされ、A2 への遷移を実行するかどうかの判定が行われます。

暗黙的サブステートの終了

スーパーステート A を遷移元とし、ステート B を遷移先とする遷移が発生します。

スーパーステートに 2 つの排他的 (OR) サブステートが含まれている場合、サブステートからスーパーステートへの暗黙的な遷移を実行するサブステートを判定するのはスーパーステート A です。

ヒストリ ジャンクションを含むサブステート入力

ヒストリ ジャンクションは、スーパーステートの終了前に最後にアクティブであったサブステートを記録します。

そのスーパーステートが 1 つまたは複数の遷移の遷移元になる場合、ヒストリ ジャンクションは、入力対象となる、以前にアクティブであったサブステートを判定します。

詳細は、「State 詳細レポート セクション」を参照してください。

On Event_Name アクション ステートメント判定を含むステート

on event_name アクション ステートメントを含むステートでは、時相論理演算子の使用時に、指定されたイベントの入力または指定されたイベントの累積に基づいて、そのステートメントを実行するかどうかを判定しなければなりません。

条件付き遷移の判定

条件付き遷移は、トリガー イベントおよび/または保護条件をもつ遷移です。ステート間の条件付き遷移では、あるステートを終了して別のステートを入力する判定が遷移として認識されます。

    メモ:    条件付き遷移のみが判定カバレッジを受け取ります。条件を持たない遷移は、判定カバレッジに利用されません。

条件カバレッジ

条件カバレッジでは、起こり得るすべての結果のうち、遷移の判定を構成する個々のサブ条件で達成された範囲がレポートされます。

    メモ:    フル条件カバレッジは、判定のテストで、起こり得るすべての結果が各サブ条件に対して発生したことを意味します。

たとえば、遷移に対する判定 [A & B & C] に対して、条件カバレッジでは、各サブ条件 A、B および C の真と偽の発生回数がレポートされます。これにより、8 つの起こり得る結果 (3 つのサブ条件それぞれに対して真と偽) が発生したことになります。

結果ABC
1TTT
2TTF
3TFT
4TFF
5FTT
6FTF
7FFT
8FFF

詳細は、「Transition 詳細レポート セクション」を参照してください。

MCDC カバレッジ

修正条件判定カバレッジ (MCDC) オプションでは、遷移内の個別のサブ条件が変化した結果、遷移のトリガー式全体が真から偽または偽から真に変化する現象について、テストでのカバレッジがレポートされます。

    メモ:    各サブ条件について一致する真と偽の結果が得られた場合、カバレッジは 100% です。

たとえば、遷移が条件 [C1 & C2 & C3 | C4 & C5] について実行された場合は、この遷移に対する MCDC レポートでは、結果が真から偽に変化することで、条件全体の結果が真から偽に変化すると考えられる 5 つのサブ条件 (C1, C2, C3, C4, C5) ごとに、実際に変化が発生した回数が表示されます。

Simulink Design Verifier カバレッジ

Stateflow チャートでは次の Simulink Design Verifier™ 関数を使用できます。

Simulink Design Verifier ライセンスがない場合でも、これらの関数がある Stateflow チャートのモデル カバレッジを収集することはできますが、Simulink Design Verifier ソフトウェアでモデルを解析することはできません。

[カバレッジの設定] ダイアログ ボックスで [Simulink Design Verifier] カバレッジ メトリックが指定されている場合、Simulink Verification and Validation ソフトウェアによりこれらの関数のカバレッジが記録されます。

これらの関数は、いずれも式 expr (sldv.test(expr) など) を評価します。expr は有効な MATLAB 論理式です。Simulink Design Verifier カバレッジでは、式 exprtrue と評価されるタイム ステップの数が測定されます。

少なくとも 1 つのタイム ステップで exprtrue であれば、その関数の Simulink Design Verifier カバレッジは 100% になります。それ以外の場合、Simulink Verification and Validation ソフトウェアではその関数のカバレッジが 0% としてレポートされます。

次の Stateflow チャートがあるモデルを考えてみます。

Simulink Design Verifier 関数のカバレッジを収集するには、[カバレッジの設定] ダイアログ ボックスの [カバレッジ] タブで [Simulink Design Verifier] を選択します。

シミュレーション後に、モデル カバレッジ レポートに sldv.conditionsldv.assumesldv.provesldv.test の各関数のカバレッジが表示されます。

Stateflow チャートのモデル カバレッジ レポート

モデル カバレッジ レポートの以下のセクションは、Bang-Bang Controller チャートを含む sf_boiler モデルのシミュレーションによって生成されたものです。このレポートでは、判定、条件および MCDC のカバレッジ メトリックが有効になっています。

概要レポート セクション

モデル カバレッジ レポートの冒頭の概要セクションには、テスト全体のカバレッジ結果が表示されます。

この階層内の各行は、その階層レベル自体とその階層の下位レベルのカバレッジ結果を要約しています。ハイパーリンクをクリックすると、レポート内で同じ階層番号が割り当てられている以降のセクションが表示されます。表示されたセクションには、その階層のカバレッジとその子オブジェクトのカバレッジの詳細が記載されています。

最上位レベルの sf_boiler は Simulink モデル自体です。2 番目のレベルの Bang-Bang Controller は Stateflow チャートです。以降のレベルは、包含階層内の順序で チャート内のスーパーステートに該当します。各スーパーステートは、接頭辞 SF: を使用しています。最下位レベルの Boiler Plant model は、モデル内の追加サブシステムです。

Subsystem および Chart 詳細レポート セクション

Stateflow チャートのカバレッジを記録すると、Simulink Verification and Validation ソフトウェアでは 2 種類のチャートのカバレッジ (サブシステムとチャート) のレポートが作成されます。

  • Subsystem — このセクションにはチャートのカバレッジのレポートが表示されます。

    • カバレッジ (このオブジェクト): コンテナー オブジェクトとしてのチャートのカバレッジ データ

    • カバレッジ (子を含む): チャートのカバレッジ データと、チャートのステートと遷移。

    セクション タイトルのサブシステム名のハイパーリンクをクリックすると、Bang-Bang Controller ブロックがブロック線図で強調表示されます。

    このチャートには明示的なトリガーがないので、判定カバレッジは適用不可 (NA) です。条件カバレッジと MCDC はチャートに対しては適用不可 (NA) ですが、子オブジェクトに対しては適用されます。

  • チャート — このセクションにはチャートのカバレッジのレポートが表示されます。

    • カバレッジ (このオブジェクト): チャートと入力に対するカバレッジ データ

    • カバレッジ (子を含む): チャートのカバレッジ データと、チャートのステートと遷移。

    セクション タイトルのチャート名のハイパーリンクをクリックすると、チャートが Stateflow エディターで開きます。

    チャートとその子の判定カバレッジが表示されます。条件カバレッジと MCDC はチャートに対しては適用不可 (NA) ですが、子オブジェクトに対しては適用されます。

State 詳細レポート セクション

カバレッジ レポートには、チャートのステートごとに State セクションがあり、各ステートについて記録されたカバレッジの詳細情報が表示されます。

sf_boiler モデルで、ステート On はボックス Heater にあります。On はスーパーステートで、次の内容が含まれます。

  • 2 つのサブステート (HIGHNORM)

  • ヒストリ ジャンクション

  • 関数 warm

カバレッジ レポートには、ステート On に関する State セクションがあります。

On ステートの判定カバレッジでは、どのサブステートを実行するかの判定がテストされます。

3 つの判定がレポートに表示されます。

  • 実行されたサブステート: On の実行時に実行するサブステート

  • 親の終了時に終了したサブステート: On の終了時にアクティブなサブステート。NORMOn の終了時にアクティブでないものとして記載されます。これは、カバレッジ ツールが NORM から Off へのスーパートランジションを On から Off への遷移として解釈するためです。

  • ヒストリに基づき以前にアクティブであったサブステートに移行: On の再実行時に再入力するサブステート。ヒストリ ジャンクションには過去にアクティブであったサブステートが記録されます。

各判定の結果は HIGH または NORM のいずれかになるため、起こり得る結果は 3 × 2 = 6 とおりです。この結果は、6 つの起こり得る結果のうち 5 つがシミュレーション時にテストされたことを示しています。

循環的複雑度と判定カバレッジは、On ステートの子オブジェクトに対しても適用されます。HIGH から NORM への遷移に対する条件 [warm()] に必要な判定により、起こり得る判定結果の数は合計で 8 になります。条件カバレッジと MCDC は、ステートに対しては適用不可 (NA) となります。

    メモ:    循環的複雑度の計算を構成するノードとエッジは、モデル オブジェクト (ステートや遷移など) との直接的な関係はありません。代わりに、この計算では、同等の制御フローのグラフ表現が必要になります。

Transition 詳細レポート セクション

遷移に関するレポートは、その遷移固有のオブジェクトのレポート セクションに表示されます。遷移は、概要セクションのモデルの階層構造には表示されません。これは、この階層が他の Stateflow オブジェクトを含むスーパーステートに基づいているからです。

上記の遷移の判定は、40 秒の時間遅延と条件 [cold()] に依存します。40 秒の時間の遅れで、環境が cold (cold() = 1) である場合は、この遷移を実行する判定と Heater をオンにする処理が行われます。その他の時間間隔または環境条件については、判定は実行されません。

判定カバレッジについては、真と偽の両方の結果が得られました。2 つの判定結果のうち 2 つが得られたため、カバレッジはフルまたは 100% でした。

条件カバレッジは、6 つの条件結果のうち 4 つのみがテストされたことを示しています。時相論理ステートメント after(40,sec) は、sec の発生と時間遅延 after(40,sec) という 2 つの条件を表しています。そのため、この遷移には、secafter(40,sec)cold() という 3 つの条件が存在することになります。各判定は真または偽であるため、起こり得る条件結果は 6 つ存在することになります。

条件解析表には、各結果 (真または偽) の発生回数を記録した行として、各条件が表示されます。起こり得る結果が発生しなかった判定行は、影付きで表示されます。たとえば、1 行目と 3 行目では、偽の結果の発生は記録されていません。

MC/DC レポートでは、以下を満たす各条件の特定の判定ペアを対象として、遷移条件の発生の組み合わせがすべてスキャンされます。

  • 条件が真から偽に変化する。

  • 判定結果に関与するその他の条件がすべて一定である。

  • 判定結果が真から偽または偽から真に変化する。

上記 3 つの条件は暗黙的な AND 演算子によって関連付けられており、その基準は各条件が発生することで達成されます。

テストされた条件

真の結果

偽の結果

1

TTT

Fxx

2

TTT

TFx

3

TTT

TTF

各行において、テストされた条件が真から偽に変化し、その他の条件は一定のままであることに注意してください。無関係な要素は、"x" でコーディングされています (以下で説明)。両方の結果がテスト時に発生した場合は、カバレッジはテストされた条件に対して完全 (100%) になります。

上記のレポートの例は、条件 2 に対するカバレッジのみを示しています。条件 1 と 3 で必要な偽の結果が得られず、両方の条件で丸かっこで囲まれて示されています。したがって、条件行 1 と 3 は影付きで表示されています。条件 2 はテストされましたが、条件 1 と 3 はテストされなかったため、MCDC は 33% です。

判定によっては、一部の条件の値が特定の状況下で無関係になる場合があります。たとえば、判定 [C1 & C2 & C3 | C4 & C5] では、C1C2C3 のいずれかの条件が偽の場合、| の左側は偽となります。同様に、C4 または C5 が偽の場合、右側も偽となります。単一の条件を変更することで判定結果を変更する、一致するペアを検索する場合に、その他の条件を一定に維持する必要はありません。上記に該当する場合、MC/DC レポートでは、これらの条件を "x" 付きで表示して、結果の要素としては無関係であることを示します。各条件は、以下のように表示されます。

最初に一致したペアを考えます。条件 1 は True 結果列で真であるため、対応する False 結果列では必ず偽になります。これにより、C1 が偽の場合は C1 & C2 & C3 は常に偽になるため、偽の結果については条件 C2C3 は無関係になります。また、偽の結果は偽として評価される必要があるため、C4 & C5 の評価も偽でなければなりません。この場合、C4 = F で一致が検出され、条件 C5 は無関係になります。

Stateflow 状態遷移表のモデル カバレッジ

状態遷移表は、Stateflow のモーダル ロジックを表す方法のひとつです。Stateflow チャートではモーダル ロジックがグラフィカルに表されますが、状態遷移表では同等のモーダル ロジックが表形式で表されます。詳細は、Stateflow ドキュメンテーションの「モーダル ロジックの表形式での表現」を参照してください。

状態遷移表のカバレッジ結果は、同等の Stateflow チャートのカバレッジ結果とほぼ同じですが、時相論理のカバレッジに若干の違いがあります。たとえば、slvnvdemo_covfilt モデル例の Mode Logic チャートにある時相論理式 after(4, tick) について考えてみます。

チャートのカバレッジで、after(4, tick) 遷移はtick の発生と時間遅延 after(4, tick) という 2 つの条件を表しています。時相イベント tick は偽にはならないため、最初の条件は満たされず、遷移 after(4, tick) に対して 100% の条件カバレッジと MC/DC カバレッジが記録されることはありません。

状態遷移表カバレッジで、after(4, tick) 遷移は 1 つの判定を表し、tick の発生に対するサブ条件はありません。そのため、判定カバレッジのみが記録されます。

時相論理判定がある状態遷移表については、上記の例のように、条件カバレッジと MC/DC カバレッジは記録されません。

Stateflow Atomic サブチャートのモデル カバレッジ

Stateflow チャートでは、Atomic サブチャートは複数のチャートおよびモデル間で同じステートまたはサブチャートを再利用するためのグラフィカル オブジェクトです。

シミュレーション時にモデルのカバレッジ データを記録するように指定すると、Simulink Verification and Validation ソフトウェアによりモデル内のすべての Atomic サブチャートに対するカバレッジが記録されます。カバレッジ データには、チャート自体の実行と、ステート、遷移判定および Atomic サブチャートの各判定を構成する個別の条件の実行が記録されます。

doc_atomic_subcharts_map_iodata モデル例のシミュレーションを実行し、判定カバレッジを記録します。

  1. doc_atomic_subcharts_map_iodatadoc_atomic_subcharts_map_iodata モデルを開きます。

    このモデルには、Stateflow チャートに入力信号を与える 2 つの Sine Wave ブロックがあります。チャートには A と B の 2 つの Atomic サブチャートがあり、A という名前の同じライブラリ チャートからリンクされています。このライブラリ チャートには次のオブジェクトが含まれています。

  2. Simulink エディターで、[解析][カバレッジ][設定] を選択します。

    [カバレッジの設定] ダイアログ ボックスが表示されます。

  3. [カバレッジ] タブで [このモデルに対するカバレッジ: doc_atomic_subcharts_map_iodata] を選択します。

  4. [レポート] タブで、[HTML レポートの生成] を選択します。

  5. [OK] をクリックして、[カバレッジの設定] ダイアログ ボックスを閉じます。

  6. doc_atomic_subcharts_map_iodata モデルをシミュレーションします。

    シミュレーションが完了すると、カバレッジ レポートが開きます。

このレポートには、Atomic サブチャート A および B のカバレッジ データが次の形式で表示されます。

  • Atomic サブチャート インスタンスとその内容の場合。このチャートには明示的なトリガーがないので、判定カバレッジは適用不可 (NA) です。

  • ライブラリ チャート A とその内容の場合。チャート自体のカバレッジは、入力 u1 では 100% で、ライブラリ チャート内のステートと遷移では 88% です。

    Atomic サブチャート B は同じライブラリ チャート A のコピーです。サブチャート B の内容のカバレッジは、サブチャート A の内容のカバレッジと等しくなります。

Stateflow 真理値表のモデル カバレッジ

Stateflow 真理値表のカバレッジのタイプ

Simulink Verification and Validation ソフトウェアは、モデルのシミュレーション時に Stateflow チャートでオブジェクトによって実行された判定のモデル カバレッジをレポートします。このレポートには、真理値表関数によって実行された判定のカバレッジが含まれます。

真理値表のタイプレポートに含まれるカバレッジ データのタイプ
Stateflow Classic

条件のみ。

MATLAB

条件と、判定点を持つアクションのみ。

    メモ:    コード生成に対応する MATLAB のアクション言語では、ループや switch ステートメントなど、制御フロー構造体を使用してアクションの判定点を指定できます。

    メモ:    Stateflow 真理値表のモデル カバレッジ データを測定するには、Stateflow ライセンスがなければなりません。Stateflow 真理値表の詳細は、Stateflow ドキュメンテーションの「判定ロジック」を参照してください。

Stateflow 真理値表のカバレッジの解析

Stateflow ライセンスがある場合は、真理値表のモデル カバレッジ レポートを生成できます。

以下のモデルを考えます。

Stateflow チャートには次のような真理値表があります。

モデルのシミュレーションを実行してカバレッジを収集すると、モデル カバレッジ レポートには次のようなデータが表示されます。

[カバレッジ (このオブジェクト)] 列には、カバレッジが表示されません。その理由は、真理値表関数のコンテナー オブジェクト (Stateflow チャート) が、ttable 真理値表を実行するかどうか判定しないからです。

[カバレッジ (子を含む)] 列には、グラフィカル関数のカバレッジが表示されます。このグラフィカル関数は、真理値表に対する遷移を作成する判定ロジックを備えています。グラフィカル関数での遷移には、真理値表の判定と条件が含まれています。[カバレッジ (子を含む)] 列の子孫のカバレッジには、これらの条件と判定が含まれています。真理値表への関数呼び出しによって、これらの条件と判定のモデル カバレッジをテストします。

ttable 真理値表の判定とその個別条件に対するカバレッジは、以下のとおりです。

カバレッジ説明

既定の判定 [D5] に対するモデル カバレッジなし

既定の判定を導くロジックはすべて、前述の判定すべてが偽であるという結論に基づいています。これは、既定の判定でロジックが不要であるため、モデル カバレッジが存在しないことを意味します。

13% (1/8) のモデル カバレッジ

真理値表への入力値である 3 つの定数 (100) によって、判定 D1 のみが真になります。これらの入力値は、8 つの判定 ([D1][D4]T または F) のいずれか 1 つのみを満たします。

各条件の結果値は T または F であるため、3 つの条件で有効な値は 6 つになります。ただし、判定 [D4] は判定カバレッジのみを持ち、条件カバレッジまたは MCDC カバレッジを持ちません。これは、単一の述部を含む判定を表しているからです。

18 (17%) の条件カバレッジのうちの 3 つ

3 つの判定 D1D2 および D3 には、条件カバレッジがあります。これは、入力値セット (100) によって判定 D1 のみが真とされるからです。

MCDC カバレッジなし (0/9)

MCDC カバレッジは、条件結果が T から F または F から T に変化したことが原因で反転した判定を検出します。シミュレーションでは、1 つの入力値セットのみがテストされるため、モデルは判定を反転しません。

欠落したカバレッジ

赤い文字 TF は、これらの条件に対してモデル カバレッジが欠落していることを示しています。判定 [D1] では、T 判定のみが満たされます。判定 [D2][D3] および [D4] では、どの条件も満たされません。

Stateflow チャートのカバレッジのカラー表示

モデル カバレッジ ツールは、Simulink ブロック線図に個別のブロックのモデル カバレッジ結果を直接表示します。この機能を有効にした場合、モデル カバレッジ ツールは以下の処理を実行します。

  • シミュレーション時にモデル カバレッジを受信する Stateflow オブジェクトを強調表示します。

  • 各オブジェクトのモデル カバレッジ情報の概要をコンテキスト依存形式で表示します。

      メモ:    カバレッジ ツールは、カバレッジ情報のレポートを表示しているチャートの表示色のみを変更します。遷移や状態の選択など、チャートを操作すると、表示色は既定の表示色から反転します。

Simulink ウィンドウでこの機能を有効化または選択する方法の詳細は、Simulink Verification and Validation ドキュメンテーションの「カバレッジの強調表示の有効化」を参照してください。

モデル カラーリングによるモデル カバレッジの表示

モデル カラーリングによるカバレッジの表示を有効にすると、モデルでモデル カバレッジ レポートを生成するたびに、カバレッジ対象として認識された個別のチャート オブジェクトが薄い緑色または薄い赤色で強調表示されます。

  1. sf_car モデルを開きます。

  2. [解析][カバレッジ][設定] を選択します。

  3. [カバレッジの設定] ダイアログ ボックスで、[このモデルに対するカバレッジ] を選択します。

  4. [OK] をクリックします。

  5. モデルのシミュレーションを実行します。

    シミュレーションが終了すると、カバレッジを含むチャート オブジェクトが強調表示されます。

    オブジェクトの強調表示では、カバレッジが以下のように示されます。

    • 完全なカバレッジの場合、薄い緑色

    • 部分カバレッジの場合、薄い赤色

    • ゼロ カバレッジの場合、色なし

      メモ:    チャートの表示色を元に戻すには、オブジェクトを選択または選択解除します。

  6. チャートで selection_state をクリックします。

    以下のサマリー レポートが表示されます。

    強調表示された Stateflow オブジェクトをクリックすると、そのオブジェクトに対するカバレッジの概要が [カバレッジ表示] ウィンドウ に表示されます。カバレッジ レポート内のこのオブジェクトに関するセクションを開くには、このハイパーリンクをクリックします。

      ティップ   以下のいずれかの方法で、マウス クリックの代わりに、マウス カーソルの移動に応じてブロックを表示するように [カバレッジ表示] ウィンドウを設定できます。

      • [カバレッジ表示] ウィンドウの右側で下向き矢印を選択し、[フォーカス] を選択します。

      • 強調表示されたブロックを右クリックし、[カバレッジ][マウス先に詳細を表示] を選択します。

この情報は役に立ちましたか?