メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

既存の Bug Finder レポート テンプレートのカスタマイズ

この例では、既存のレポート テンプレートを要件に合わせてカスタマイズする方法を説明します。レポート テンプレートを使用すると、解析結果から特定の形式のレポートを生成できます。既存のレポート テンプレートが要件に合わない場合は、テンプレートの特定の側面を変更できます。

既存のテンプレートの詳細については、Bug Finder と Code Prover のレポート (-report-template)を参照してください。

前提条件

レポート テンプレートをカスタマイズする前に以下を行います。

  • 既存のレポート テンプレートが要件を満たすかどうかを確認します。必要なレポートに近い形式のレポートを生成するテンプレートを特定します。このテンプレートを変更して使用できます。

    テンプレートをテストするには、テンプレートを使用してサンプルの結果からレポートを生成します。Polyspace の結果からのレポートの生成を参照してください。

  • MATLAB® Report Generator™ がシステムにインストールされていることを確認します。

この例では、Polyspace® Bug Finder™ に用意されている BugFinder テンプレートを変更します。

Polyspace レポート テンプレートのコンポーネントの確認

レポート テンプレートは、MATLAB Report Generator のコンポーネントに分割できます。各コンポーネントは、テンプレートを使用して生成されるレポートに含まれる情報の一部を表します。たとえば、コンポーネント [タイトル ページ] はレポートのタイトル ページの情報を表します。

この例では、BugFinder テンプレートのコンポーネントを確認します。

  1. Polyspace インストール フォルダーのサブフォルダーを指定することによって、Polyspace 固有のレポート コンポーネントにパスを追加します。MATLAB コマンド プロンプトで、次のように入力します。

    addpath(fullfile(polyspaceroot, 'toolbox', 'polyspace', 'psrptgen', 'psrptgen'));
    addpath(fullfile(polyspaceroot, 'toolbox', 'polyspace', 'psrptgen', 'templates'));
    addpath(fullfile(polyspaceroot, 'toolbox', 'polyspace', 'psrptgen', 'psrptgen', 'udd'));

    ここで、polyspaceroot は Polyspace インストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2025a です。MATLAB と Polyspace を統合した場合、MATLAB で関数 polyspaceroot を使用してインストール フォルダーの場所を検索できます。MATLAB や Simulink との Polyspace の統合を参照してください。

  2. レポート エクスプローラー インターフェイスを開きます。MATLAB コマンド プロンプトで、次のように入力します。

    report

  3. レポート エクスプローラー インターフェイスで、BugFinder テンプレートを開きます。

    BugFinder テンプレートは polyspaceroot/toolbox/polyspace/psrptgen/templates/bug_finder (polyspaceroot は Polyspace のインストール フォルダー) にあります。

テンプレートがレポート エクスプローラーで開きます。左側のペインに、テンプレートのコンポーネントが表示されます。各コンポーネントをクリックすると、右側のペインにコンポーネントのプロパティが表示されます。

BugFinder テンプレートの一部のコンポーネントとその目的を次に示します。

コンポーネント目的
Title Page (MATLAB Report Generator)

レポートの先頭にタイトル ページを挿入する

Chapter/Subsection (MATLAB Report Generator)

レポートの各部をタイトル付きの節にグループ化する

Code Verification Summary

Polyspace の解析結果の概要テーブルを挿入する

Logical If (MATLAB Report Generator)

条件を満たす場合にのみ子コンポーネントを実行する

Run-time Checks Summary Ordered by File

Polyspace Bug Finder の欠陥をファイル別にグループ化したテーブルを挿入する

テンプレートの動作を理解するには、テンプレートのコンポーネントをテンプレートを使用して生成されたレポートと比較します。

コンポーネントの詳細については、コンポーネントの取り扱い (MATLAB Report Generator)を参照してください。Polyspace 固有のコンポーネントの詳細については、レポートの生成を参照してください。

メモ

コンポーネントの一部のプロパティは、内部の式を使用して設定されています。それらの式を確認することはできますが、変更はできません。たとえば、BugFinder テンプレートの [論理 If] コンポーネントで指定される条件は、内部の式を使用して指定されています。

テンプレートのコンポーネントの変更

レポート エクスプローラー インターフェイスでは、以下を行うことができます。

  • テンプレートの既存のコンポーネントのプロパティを変更する。

  • テンプレートに新しいコンポーネントを追加したり、既存のコンポーネントを削除する。

この例では、BugFinder テンプレートにコンポーネントを追加して、レポートに [整数のゼロ除算][浮動小数点数のゼロ除算] の欠陥のみが含まれるようにします。

  1. レポート エクスプローラー インターフェイスで BugFinder テンプレートを開き、別の名前を付けて別の場所に保存します。この例では BugFinder_Division_by_Zero という名前にします。

  2. BugFinder_Division_by_Zero テンプレートからゼロ除算以外のすべての欠陥をフィルターにより除外する新しいグローバル コンポーネントを追加します。このコンポーネントは、レポートの特定の章ではなくレポート全体に適用されるためグローバルになります。

    このアクションを実行するには、以下を行います。

    1. 中央のペインの [Polyspace] の下にあるコンポーネントReport Customization (Filtering)をドラッグして、[タイトル ページ] コンポーネントの上に配置します。この位置にコンポーネントを配置することで、レポートの特定の章ではなくレポート全体にフィルターが適用されるようになります。

    2. [Report Customization (Filtering)] コンポーネントを選択します。右側のペインで、このコンポーネントのプロパティを設定できます。既定では、すべての結果をレポートに含めるようにプロパティが設定されています。

      [整数のゼロ除算][浮動小数点数のゼロ除算] の欠陥のみを含めるには、[Advanced Filters] グループにある [Check types to include] フィールドに、Integer division by zero および Float division by zero を入力します。

      このフィールドでは、MATLAB 正規表現を使用して結果を除外することもできます。たとえば、[デッド コード] 結果を除外するには、^(?!Dead code).* を入力します。Report Generator により、Polyspace の結果名に対して正規表現が適用されます。次に例を示します。

      • キャレット ^ は、後に続くパターンが文字列の先頭でなければならないことを示します。

      • 文字 (?!pattern).* は、後に続くパターンが文字列に現れてはならないことを示します。

      これらを組み合わせ、正規表現 ^(?!Dead code).* は、Dead code で始まる Polyspace の結果名がレポートから除外されなければならないことを示します。正規表現を参照してください。

      このコンポーネントをアクティブにするか非アクティブにするかを切り替えることができます。コンポーネントを右クリックして、[コンポーネントのアクティブ/非アクティブ] を選択します。

  3. 前の手順で適用したグローバル フィルターをオーバーライドしないように既存の章固有のコンポーネントを変更します。オーバーライドしないようにすると、その章固有のコンポーネントはグローバル コンポーネントのフィルターの仕様に準拠するようになります。

    このアクションを実行するには、以下を行います。

    1. 左側のペインで、Run-time Checks Details Ordered by Color/Fileコンポーネントを選択します。これは、Polyspace Bug Finder で見つかった実行時チェックの詳細を含むテーブルをレポート内に生成するコンポーネントです。

      右側のペインに、このコンポーネントのプロパティが表示されます。

    2. [Override Global Report filter] ボックスをクリアします。

    変更を行った後で、"BugFinder_Division_by_Zero" テンプレートを保存します。

  4. Polyspace のユーザー インターフェイスで、BugFinderBugFinder_Division_by_Zero の両方のテンプレートを使用して、ゼロ除算の欠陥を含む結果からレポートを作成します。2 つのレポートを比較します。

    次に例を示します。

    1. [ヘルプ][例][Bug_Finder_Example.psprj] を開きます。

      このデモの結果には [整数のゼロ除算][浮動小数点数のゼロ除算] の欠陥が含まれています。

    2. BugFinder テンプレートを使用して PDF レポートを作成します。Polyspace の結果からのレポートの生成を参照してください。

      レポートで、次を開きます。"第 5 章の欠陥" (ご使用の製品バージョンによっては、章番号が異なることがあります)。この例の結果に含まれるすべての欠陥が表示されます。レポートを閉じます。

    3. BugFinder_Division_by_Zero テンプレートを使用して PDF レポートを作成します。[レポートの実行] ウィンドウで、[参照] ボタンを使用して、BugFinder_Division_by_Zero テンプレートを既存のテンプレートのリストに追加します。

      レポートで、次を開きます。"第 6 章の 欠陥" (ご使用の製品バージョンによっては、章番号が異なることがあります)。[整数のゼロ除算][浮動小数点数のゼロ除算] の欠陥のみが表示されます。

      メモ

      テンプレートをテンプレートの既存のリストに追加した後、レポート生成前に、新しく追加したテンプレートを必ず選択してください。