メインコンテンツ

Polyspace デスクトップ ユーザー インターフェイスでの結果のフィルター処理とグループ化

このトピックでは、Polyspace® デスクトップ製品のユーザー インターフェイスで、結果のフィルター処理、グループ化、その他の管理を行う方法を説明します。Polyspace Access™ Web インターフェイスでの同様のワークフローについては、Polyspace Access Web インターフェイスでの結果のフィルタリングと並べ替え (Polyspace Access)を参照してください。

Polyspace 解析の結果を開くと、欠陥 (Bug Finder)、実行時チェック (Code Prover)、コーディング ルール違反などの結果のフラット リストが表示されます。レビューを整理するには、リストを絞り込むか、ファイルまたは結果のタイプ別に結果をグループ化します。

A typical list of Polyspace results. You can filter to specific types of results or group the results.

使用できるフィルター処理方法の種類の一部を以下に示します。

  • 特定のタイプの欠陥または実行時チェックのみを表示できます。

    たとえば、Bug Finder では、影響度の高い欠陥のみを表示できます。影響度による欠陥の分類を参照してください。

  • 前回の解析以降に見つかった新しい結果のみを表示できます。

  • 正当化されていない結果のみを表示できます。

結果のフィルター

結果のリストを使ったフィルター処理

Click the filter icon on results list columns to narrow down to specific types of results.

[結果のリスト] ペインの列を使用してフィルター処理できます。列ヘッダーの アイコンをクリックすると、利用可能なフィルターが表示されます。次に例を示します。

  • 影響度の高い Bug Finder 欠陥のみを表示するには、[情報] 列のフィルターで、[影響: 高] 以外のすべてのフィルターをオフにします。

  • 正当化されていない結果のみを表示するには、[正当化] 列の [真] フィルターをクリアします。既定でこの列が表示されていない場合があります。列を表示するには、列ヘッダーを右クリックして、[正当化] を選択します。

    正当化の詳細については、Polyspace ユーザー インターフェイスでのバグ修正または正当化による結果への対処を参照してください。

列に関する詳細は、以下を参照してください。

前回の解析以降に見つかった結果は、横にアスタリスク (*) が付いた状態で表示されます。これらの前回の解析以降の結果のみを表示するには、[新規] ボタンをクリックします。コマンド ラインで解析を実行する場合 (またはユーザー インターフェイスで初めて解析を実行する場合でも)、まず [新規] ボタンでベースラインを作成するために以前の解析からインポートしなければなりません。以前の Polyspace 解析からレビュー情報をインポートを参照してください。

列の正確なコンテンツでフィルターしない場合は、代わりにカスタム フィルターを使用できます。たとえば、特定のフォルダーのサブフォルダーをフィルターで除外するとします。[フォルダー] 列で各サブフォルダーをフィルターで除外する代わりに、フィルターのドロップダウンから [カスタム] を選択します。doesn’t contain フィルターにルート フォルダー名を指定します。

カスタム フィルターにはワイルドカード文字を使用できます。ワイルドカード ? は 0 文字または 1 文字を表し、* は 0 文字以上の文字列を表します。

このようにフィルターを適用すると、そのフィルターは次回の解析に引き継がれます。また、フィルターのサブセットに名前を付けて保存し、複数のプロジェクトで使用することもできます。フィルターの名前付きセットを適用するには、[すべての結果] リストからこのフィルター セットを選択します。このリストに新しいエントリを作成するには、[ツール][基本設定] を選択し、[レビュー スコープ] タブに独自のフィルターのセットを作成します。

ダッシュボードを使ったフィルター処理

The Dashboards pane in the Polyspace user interface shows pie charts with defect distribution by impact in Bug Finder or check distribution by color in Code Prover.

[ダッシュボード] ペインのグラフをクリックして、結果をフィルター処理できます。次に例を示します。

  • Bug Finder で影響度の高い欠陥のみを表示するには、[影響度別欠陥分布] チャートの対応するセクションをクリックします。

  • Code Prover でレッド チェックのみを表示するには、[チェックの分布] チャートの対応するセクションをクリックします。

すべての結果を再度表示するには、リンク [このスコープのすべての結果を表示] をクリックします。

オレンジ ソースを使用するフィルター

オレンジ ソースによって、Code Prover で複数のオレンジ チェックが生じる可能性があります。同じソースのすべてのオレンジ チェックを表示して、まとめてレビューすることができます。

たとえば、以下のコードでは、未知の値 input によってオーバーフローおよびゼロ除算が発生する可能性があります。変数 input は、2 つのオレンジ チェックの原因となるオレンジ ソースです。

void func (int input) {
int val1;
double val2;
val1 = input++;
val2 = 1.0/input;
}

最初に、[ウィンドウ][ビューの表示/非表示][オレンジ ソース] を選択します。オレンジ ソースのリストが表示されます。オレンジ ソースを選択して、このソースが原因で生じるすべてのオレンジ チェックを確認します。

The Orange Sources pane in the Polyspace user interface shows stubbed functions, volatile variables, and other sources likely to lead to orange checks.

使用しているフィルターの確認

You can see which filters you used to narrow down the results list and the number of results displayed. The image below shows a typical list of filters.

[結果のリスト] ヘッダーに、[x/y を表示中] という形式で結果の数が表示されます (例: [100/250 を表示中])。この数字の横のドロップダウンをクリックして、現在アクティブなフィルターを確認します。このドロップダウンからアクティブなフィルターをクリアすることもできます ([すべての結果] ドロップダウンで選択したフィルターの名前付きセットを除く)。

フィルターに関する以下の情報が表示されます。

  • レビュー スコープ: [すべての結果] ドロップダウンからフィルターの名前付きセットを選択した場合、このフィルター セットが表示されます。

  • 新しい結果のみ: [新規] ボタンを使用して新しい結果のみを表示する場合、このフィルターが有効になり表示されます。

  • フィルター処理された結果: Polyspace ユーザー インターフェイスにおいて (結果のリスト、ダッシュボード、オレンジ ソースなど任意の方法で) フィルター処理された結果の数が表示されます。

  • 非表示の結果: コード注釈を使用して非表示にされた結果の数が表示されます。これらの結果を表示するには、[コードで正当化済みの結果を非表示] をオフにします。

    コード注釈による結果の非表示の詳細については、Polyspace ユーザー インターフェイスでのバグ修正または正当化による結果への対処を参照してください。

  • アクティブなフィルターをもつ列: 結果のフィルター処理に使用した [結果のリスト] ペインの列 (または [ダッシュボード] ペインのグラフに対応する列) が表示されます。

結果のグループ化

[結果のリスト] ペインで、 のリストからオプション (ファイルによるグループ化など) を選択します。または、列ヘッダーをクリックして、列の内容をアルファベット順に並べ替えることができます。

Polyspace results grouped by file.

グループ化に使用できるオプションは以下です。

  • なし: グループ化せずに結果を表示します。

  • ファミリ: 結果のタイプ別にグループ分けされた結果を表示します。

    結果はチェック (Code Prover)、欠陥 (Bug Finder)、グローバル変数 (Code Prover)、コーディング ルール違反、コード メトリクスのタイプ別に整理されます。各タイプごとに、さらにグループ分けされます。

    • 欠陥 (Bug Finder) は欠陥グループによって整理されます。グループについての詳細は、欠陥を参照してください。

    • チェック (Code Prover) は色別にグループ分けされます。各色により、チェックはチェック グループにまとめられます。グループについての詳細は、実行時チェックを参照してください。

    • グローバル変数 (Code Prover) はその使用法別にグループ分けされます。詳細については、グローバル変数を参照してください。

    • コーディング ルール違反はコーディング ルールのタイプ別にグループ分けされます。詳細については、コーディング規約を参照してください。

    • コード メトリクスはメトリクスのスコープ別にグループ分けされます。詳細については、コード メトリクスを参照してください。

  • ファイル: ファイル別にグループ化された結果を表示します。

    各ファイル内で、結果は関数別にグループ分けされます。特定の関数に関連付けられていない結果は [ファイル スコープ] でグループ分けされます。

    Code Prover では、ファイル名または関数名にそのファイルまたは関数に含まれる最悪のチェックの色が示されます。チェックの色の重大度は、レッド、グレー、オレンジ、グリーンの順で低下します。

  • クラス (C++ コードのみ): クラス別にグループ分けされた結果を表示します。

    各クラス内で、結果はメソッド別にグループ分けされます。特定のクラスに関連付けられていない結果は [グローバル スコープ] でグループ分けされます。

参考

トピック