Simulink® Coverage™ では、既定で、マスキング改良条件判定カバレッジ (MCDC) 定義を MCDC カバレッジの結果を記録するために使用します。Simulink Coverage が解析中に使用する MCDC 定義をユニークコーズ MCDC 定義に変更することはできますが、どちらの定義を使用するかによって、Simulink Coverage がモデルのカバレッジを記録する方法にはいくらかの違いがあります。
マスキング MCDC では部分式の条件のマスクが考慮され、MCDC のユニークコーズ定義と比較して、達成される MCDC オブジェクティブの数が多くなります。その結果、一部の Simulink モデルはユニークコーズ MCDC 定義を使用すると完全ではない MCDC カバレッジが適用されますが、マスキング MCDC 定義を使用すると、より広範なカバレッジが適用されます。次の例で、Stateflow® チャートの 2 つの入力である条件 A と条件 C が、単独では変更できない場合について考えます。
この入力の依存関係は、Stateflow チャート内に含まれる式の依存条件となります。
式 (A||B)&&(C||D) では、条件 C の値を変更すると条件 A の値も変わります。条件 A と条件 C の相互依存のため、条件 C のユニークコーズ MCDC は達成できません。
しかし、条件 C のマスキング MCDC は達成が可能です。これは、部分式 (A||B) が true である限り、マスキング MCDC では条件 C の独立ペアにおいて条件 A の値を変更することが許されるためです。
Certification Authorities Software Team (CAST) は、CAST 6 方針説明書の中で、マスキング MCDC は DO-178B 認証の MC/DC オブジェクティブを満たすものとして許容されると述べています。
既定では、Simulink Coverage はカバレッジ解析においてマスキング MCDC 定義を使用します。Simulink Coverage のカバレッジ解析に使用される MCDC 定義を変更する方法は 2 つあります。
[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。
CovMcdcMode
パラメーターを [マスキング]
または [ユニークコーズ]
に設定します。
cvtest
オブジェクトで設定モデルに cvtest
オブジェクトを作成して、mcdcMode
を 'Masking'
または 'UniqueCause'
に設定します。
cvt = cvtest(model) cvt.options.mcdcMode = 'UniqueCause' covdata = cvsim(cvt)
CovMcdcMode
を 'UniqueCause'
に設定すると、Simulink Coverage の MCDC レポートと Simulink Design Verifier™ のテスト生成の間に違いが生ずることがあります。Simulink Design Verifier では、テスト ケース生成にマスキング MCDC 定義を常に使用します。詳細については、Simulink Design Verifier の改良条件判定カバレッジを参照してください。