関数パラメーターの数がしきい値を超えている
説明
この欠陥は、チェッカーの定義済みしきい値を超える数の引数が含まれる関数に対して報告されます。Polyspace がパラメーターの数を計算する方法について詳しくは、関数パラメーターの数
を参照してください。
Polyspace® は、ユーザーがしきい値を指定しない限り、既定のしきい値として 5 を使用します。しきい値を指定できる選択ファイルを指定するには、オプション [ファイルごとにチェッカーを設定] (-checkers-selection-file)
または [チェッカー アクティベーション ファイル] (-checkers-activation-file)
を使用します。
polyspace-comments-import
を使用して以前の解析からコメントをインポートすると、Polyspace は以前の結果のコード メトリクスの関数パラメーターの数
に関するレビュー情報を、このチェッカーの現在の結果にコピーします。現在の結果に同じコード メトリクスが含まれている場合、レビュー情報はそのコード メトリクスにもコピーされます。
リスク
このチェッカーに違反した場合は、次のことを意味します。
関数が他の関数と、許容できないほど高い相互依存性を持つ可能性がある。
関数が 1 つの特定のタスクを実行するのではなく、複数のタスクを実行している可能性がある。ベスト プラクティスは、1 つの関数に 1 つの特定のタスクをデリゲートすることです。
関数で不測の、または計画外の状況に発展する可能性がある。
レジスタがすべてのパラメーターを保持できないため、関数がパフォーマンスの妨げとなる可能性がある。
これらの要因により、関数の保守とデバッグが困難になります。
修正方法
このチェックを修正するには、コードをリファクタリングするか、チェッカー選択 XML でしきい値を変更します。関数を特定の 1 つのタスクを実行する複数の小さなチャンクに分割し、関数がしきい値として指定された数を超えるパラメーターを取らないようにすることをお勧めします。関数で複数の関連するパラメーターを使用する場合は、それらのパラメーターを構造体にバンドルすることを検討してください。
ベスト プラクティスは、開発後のリファクタリング コストを回避するために、開発の早期段階でモジュールの複雑度をチェックすることです。
例
チェック情報
グループ: ソフトウェアの複雑度 |
言語: C | C++ |
頭字語: SC07
|
既定のしきい値: 5 |
バージョン履歴
R2021a で導入