Main Content

complexityinfo

cvdata オブジェクトから循環的複雑度カバレッジ情報を取得する

    説明

    complexity = complexityinfo(cvdo,modelObject) は、モデル コンポーネント modelObject について cvdata オブジェクトの cvdo から複雑度カバレッジ結果を返します。

    complexity = complexityinfo(cvdo,modelObject,simMode) は、シミュレーション モード simMode でモデル コンポーネント modelObject について cvdata オブジェクトの cvdo から複雑度カバレッジ結果を返します。

    すべて折りたたむ

    この例では、slvnvdemo_cv_small_controller モデルの Gain サブシステムの循環的複雑度情報を取得する方法を示します。

    slvnvdemo_cv_small_controller モデルを読み込みます。

    modelName = 'slvnvdemo_cv_small_controller';
    load_system(modelName);
    

    テスト仕様オブジェクトを作成し、判定カバレッジ、条件カバレッジ、および MCDC カバレッジを有効にします。次に、cvsim を使用して、モデルのシミュレーションを実行します。

    testObj = cvtest(modelName);
    testObj.settings.decision = 1;
    testObj.settings.condition = 1;
    testObj.settings.mcdc = 1;
    covData = cvsim(testObj);
    

    Gain サブシステムの循環的複雑度情報を取得します。

    gainPath = [modelName,'/Gain'];
    gainComplexity = complexityinfo(covData,gainPath)
    
    gainComplexity =
    
         1     0
    
    

    Gain サブシステム自体では循環的複雑度が記録されませんが、サブシステムの内容では記録されます。このことは結果で確認できますが、これは複雑度の合計が 1 であるためです。これには、サブシステムとそのすべての子孫が含まれています。対照的に、ローカル複雑度は 0 であり、複雑度の 1 つのポイントが子孫の 1 つ (ここでは Switch ブロック) からのものであることを示しています。

    switchPath = [modelName,'/Gain/Switch'];
    switchComplexity = complexityinfo(covData,switchPath)
    
    switchComplexity =
    
         1     1
    
    

    入力引数

    すべて折りたたむ

    カバレッジ データ。cvdata オブジェクトとして指定します。

    データ型: cvdata

    モデル オブジェクト。文字配列、string 配列、Simulink ハンドル、Stateflow ID、または cell 配列として指定します。

    ブロックや Stateflow チャートなどのモデル オブジェクトを指定するには、以下の形式のいずれかを使用します。

    オブジェクトの指定説明

    BlockPath

    モデルまたはブロックの絶対パス

    BlockHandle

    モデルまたはブロックへのハンドル

    slObj

    Simulink API オブジェクトへのハンドル

    sfID

    Stateflow ID

    sfObj

    単独でインスタンス化された Stateflow チャートからの Stateflow API オブジェクトへのハンドル

    {BlockPath, sfID}

    Stateflow チャートまたは Atomic サブチャートのパスおよびそのチャートまたはサブチャートに含まれているオブジェクトの ID を含む cell 配列

    {BlockPath, sfObj}

    Stateflow チャートまたはサブチャートのパスおよびそのチャートまたはサブチャートに含まれている Stateflow オブジェクト API ハンドルを含む cell 配列

    {BlockHandle, sfID}

    Stateflow チャートまたは Atomic サブチャートへのハンドルおよびそのチャートまたはサブチャートに含まれているオブジェクトの ID を含む cell 配列

    S-Function ブロックまたはその内容を指定するには、以下の形式のいずれかを使用します。

    オブジェクトの指定説明

    {BlockPath, fName}

    S-Function ブロックのパスおよびソース ファイルの名前を含む cell 配列

    {BlockHandle, fName}

    S-Function ブロックのハンドルおよびソース ファイルの名前を含む cell 配列

    {BlockPath, fName, funName}

    S-Function ブロックのパス、ソース ファイルの名前、および関数名を含む cell 配列

    {BlockHandle, fName, funName}

    S-Function ブロックのハンドル、ソース ファイルの名前、および関数名を含む cell 配列

    ソフトウェアインザループ (SIL) やプロセッサインザループ (PIL) 解析時に収集されたカバレッジ データなどのコード カバレッジ結果を指定するには、以下の形式のいずれかを使用します。

    オブジェクトの指定説明

    {fileName, funName}

    ソース ファイルの名前および関数名を含む cell 配列

    {Model, fileName}

    モデル名またはモデル ハンドルおよびソース ファイルの名前を含む cell 配列

    {Model, fileName, funName}

    モデル名またはモデル ハンドル、ソース ファイルの名前、および関数名を含む cell 配列

    データ型: char | string | cell | Stateflow.State | Stateflow.Transition

    カバレッジ解析時のシミュレーション モード。次のオプションのいずれかとして指定します。

    オブジェクトの指定説明

    "Normal"

    ノーマル シミュレーション モードのモデル。

    "SIL" or "PIL"

    ソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) シミュレーション モードのモデル。

    "ModelRefSIL" or "ModelRefPIL"

    SIL または PIL シミュレーション モードのモデル参照。

    "ModelRefTopSIL" or "ModelRefTopPIL"

    コード インターフェイスが最上位モデルに設定された、SIL または PIL シミュレーション モードのモデル参照。

    データ型: char | string

    出力引数

    すべて折りたたむ

    循環的複雑度。cvdo に循環的複雑度カバレッジ結果が含まれている場合は [total_complexity,local_complexity] という形式の 2 要素配列として返され、含まれていない場合は空の配列として返されます。

    total_complexitymodelObject およびその子孫 (存在する場合) の循環的複雑度カバレッジ
    local_complexitymodelObject の循環的複雑度カバレッジ

    modelObject に可変サイズの信号が含まれている場合、complexity にも可変の複雑度が含まれます。

    データ型: double

    代替方法

    カバレッジ設定を使用して循環的複雑度カバレッジ結果を収集してカバレッジ レポートで表示するには、以下のようにします。

    1. モデルを開きます。

    2. Simulink エディターの [モデル化] タブで [モデル設定] を選択します。

    3. [コンフィギュレーション パラメーター] ダイアログ ボックスの [カバレッジ] ペインで、[カバレッジ解析を有効にする] を選択します。

    4. [カバレッジ メトリクス] の下で構造カバレッジ レベルとして [MCDC] を選択します。

    5. [OK] をクリックして、[コンフィギュレーション パラメーター] ダイアログ ボックスを閉じて、変更を保存します。

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

    7. ドッキングされた [カバレッジの詳細] ペインで、カバレッジ レポートによりモデルの循環的複雑度および各モデル オブジェクトが示されます。

    バージョン履歴

    R2011a で導入