ローカルの非静的変数の数がしきい値を上回っている
説明
この欠陥は、チェッカーの定義済みしきい値を超える数のローカルの非静的変数が含まれる関数に対して報告されます。Polyspace が、関数に含まれるローカルの非静的変数の数を計算する方法について詳しくは、ローカルの非静的変数の数を参照してください。
Polyspace® は、ユーザーがしきい値を指定しない限り、既定のしきい値として 20 を使用します。しきい値を指定できる選択ファイルを指定するには、オプション [ファイルごとにチェッカーを設定] (-checkers-selection-file) または [チェッカー アクティベーション ファイル] (-checkers-activation-file) を使用します。
polyspace-comments-import を使用して以前の解析からコメントをインポートすると、Polyspace は以前の結果のコード メトリクスのローカルの非静的変数の数に関するレビュー情報を、このチェッカーの現在の結果にコピーします。現在の結果に同じコード メトリクスが含まれている場合、レビュー情報はそのコード メトリクスにもコピーされます。
リスク
このチェッカーに違反している場合は、次の可能性があります。
関数が過剰に長い。
関数が 1 つの特定のタスクを実行するのではなく、複数のタスクを実行する。
これらの要因により、モジュールの保守とデバッグが困難になります。
修正方法
このチェックを修正するには、コードをリファクタリングするか、チェッカーのしきい値を変更します。コードをリファクタリングする場合は、次のようにします。
関数を小さなモジュールに分割して、各関数で特定の 1 つのタスクを実行するようにすることを検討する。
同様の役割を持つ変数を、クラス、構造体、ベクトル、マップなどのコンテナーにバンドルすることを検討する。
ベスト プラクティスは、開発後のリファクタリング コストを回避するために、開発の早期段階でモジュールの複雑度をチェックすることです。
例
チェック情報
| グループ: ソフトウェアの複雑度 |
| 言語: C | C++ |
頭字語: SC08
|
| 既定のしきい値: 20 |
バージョン履歴
R2021a で導入