メトリックしきい値構成ファイルの編集
- 設定するメトリックしきい値を特定します。
- 構成ファイルがあるディレクトリに移動し、
metrics_default.mconf
ファイルをコピーして、任意の名前で保存します。 または、任意の名前と場所を使用してメトリックしきい値構成ファイルを新規作成します。ファイル拡張子は.mconf
である必要があります。既存の構成ファイルを変更する場合は、事前にバックアップコピーを作成してください。 - 新規または変更したデフォルトのメトリックしきい値構成ファイルで、必要に応じて内容を変更します。使用する構文の概要については、次のセクションおよびメトリックしきい値規則のカテゴリの作成に説明してあります。
- ファイルを保存します。
メトリックしきい値規則の構文
メトリックしきい値構成ファイルの各行は、Klocwork に違反を検出させるメトリックしきい値 1 件を表します。ファイルの各メトリックしきい値規則には、次のフィールドがあります。
Name;Entity-type;Metric-expression;Error-threshold;Warning-threshold
以降のセクションで、各フィールドについて詳細に説明していきます。
構成ファイル構文で、コメントと空白行を使用することができます。コメント行の先頭にポンド記号 (#) を使用すると、その行は規則と見なされなくなります。
#!alias MetricCode = <expression>
。このコメント以降は、"MetricCode" の出現箇所のテキストはすべて <expression> に代えられます。
名前
[Name] は、検出されたときにレポートに記載される違反に関する簡単な説明です。たとえば、クラス宣言数などです。完全なリストについては、メトリックリファレンスにある一覧表の [名前] 列を参照してください。名前は、すべての .mconf ファイルで使用されているメトリック規則名の間で一意でなければなりません。
Entity-type
Entity-type は、メトリックしきい値が該当するソフトウェアエンティティです。同じしきい値を複数のソフトウェアエンティティに適用する場合、1 つのカンマ区切りリストに複数個指定することができます。例:
Number of paths (NP);FUNCTION,METHOD;NOINDPATHS;10;7
以降の表に、各メトリックカテゴリで使用できるエンティティタイプを示します。
各メトリックカテゴリに該当するエンティティタイプ: C/C++
メトリックカテゴリ | 適用可能なエンティティタイプ |
---|---|
ファイルレベルメトリック | FILE |
クラスレベルメトリック | CLASS、TYPE、CLASS-TEMPLATE |
関数レベルおよびメソッドレベルメトリック | FUNCTION、CLASS-METHOD、FUNCTION-TEMPLATE、TEMPLATE-MEMBER |
クラスレベルしきい値規則の TYPE は、構造と和集合を表します。
関数レベルのメトリックしきい値ルールの TEMPLATE-MEMBER は、クラステンプレートメソッドを表します。
各メトリックカテゴリに該当するエンティティタイプ: Java
メトリックカテゴリ | 適用可能なエンティティタイプ |
---|---|
ファイルレベルメトリック | FILE |
クラスレベルメトリック | CLASS |
関数レベルおよびメソッドレベルメトリック | CLASS-METHOD |
Metric-expression
Metric-expression は、次のうちのいずれかです。
- メトリックリファレンスにあるファイルレベルメトリック表の ["メトリックコード"] 列にある LOC_FILE (1 ファイルあたりのコード行数) などの簡単なメトリックコード。
- 論理演算または算術演算および関数呼び出しを含む複雑な式 (下の '関数呼び出し値' (例: log(LOC/NOROUTINES)) を参照)。
Error-threshold
Error-threshold は、メトリックのしきい値を表す数です。詳細については、(下の) 数値を参照してください。<、<=、または >= などの論理演算を接頭辞として付けることができます。詳細については、下の論理演算を参照してください。このフィールドに数だけを入力した場合、適用されるデフォルト演算は、"大なり" (>) です。このメトリックの違反は、エラーとして報告されます。たとえば、1 ファイルメトリックあたりのコード行数のエラーしきい値を <100 に設定した場合、1 ファイル内のコード行数 (LOC_FILE) が 100 未満だと、エラーが報告されます。
Warning-threshold
Warning-threshold は、式で定義されたメトリックのしきい値を表す数です。この数には、<、<=、または >= などの論理演算を接頭辞として付けることができます。このフィールドに数だけを入力した場合、適用されるデフォルト演算は、"大なり" (>) です。このメトリックの違反は、警告として報告されます。たとえば、1 ファイルメトリックあたりのコード行数の警告しきい値を <100 に設定した場合、1 ファイル内のコード行数 (LOC_FILE) が 100 未満だと、警告が報告されます。
メトリックが警告とエラーの両方のしきい値を超えた場合は、エラーメッセージのみが報告されます。
フルメトリックしきい値規則の例
Percent of comments;FILE;LINESCOMM/LOC_FILE*100;<5;<10
関数呼び出し値
[FunctionCall] には、次の関数を指定することができます。
値 | 説明 |
---|---|
abs(X) | 引数の絶対値を返します。 |
atan2(X,Y) | 範囲 -pi ~ pi における Y/X の逆正接を返します。 |
cos(X) | X (弧度で表現) の余弦を返します。 |
exp(X) | e (自然対数底) の X 乗を返します。 |
int(X) | X の整数部を返します。 |
log(X) | X の 自然対数 (底 e) を返します。 |
sin(X) | X (弧度で表現) の正弦を返します。 |
sqrt(X) | X の平方根を返します。 |
数値
[Number] は次のいずれかになります。
- 整数は、
123
や1000
のように、実数の自然数で定義されます。 - 小数は、
123.45
や.6
のように、中に小数点を含む数で定義されます。 - 浮動小数点の指数表記は、
2.3E-10
や3E-5
のように、1 ~ 10 の数に 10 の累乗を掛けた数で定義されます。
論理演算
[Logical operations] は、次のうちのいずれかです。
記号 | 説明 |
---|---|
< | 小なり |
<= | 以下 |
= | 等しい |
> | 大なり ([しきい値] フィールドに数だけ指定された場合のデフォルト) |
>= | 以上 |
!= | 等しくない |