クラスレベルメトリック

名前 説明 メトリックコード ID 言語
クラスのコードの行数 クラスのコードの行数の計算方法: (最後の行番号) - (最初の行番号) + 1 LOC_CLASS 65 C++、Java
メソッド数 現在のクラスで定義されているメソッドの数継承されたメソッドはカウントされません。このメトリックには、宣言がクラス内にあってもそのボディはクラスの外 (別のファイルなど) にあるメソッドが含まれています。 NOMETH 66 C++、Java
継承レベル クラスでは、これはクラス階層ツリーのクラスのレベルです。インターフェイスでは、それは常に 1 です。 LEVINHER 67 C++、Java
クラスのデータ宣言の数 クラスのフィールド数 (メソッドと継承フィールドはカウントされません) NOCLASSDATADECL 68 C++、Java
クラスのクラスデータ型の数 クラスのクラスデータ型の数 NODATACLASS 69 Java
クラスのプライベート属性の数 クラスのプライベート属性 (プライベートデータフィールド) の数 NOPRIVDATADEC 70 C++、Java
クラスで保護されているメソッドの数 クラスの保護属性 (保護データフィールド) の数 NOPROTDATADECL 71 C++、Java
クラスのパブリック属性の数 クラスのパブリック属性 (パブリックデータフィールド) の数 NOPUBDATADECL 72 C++、Java
クラスの静的属性の数 クラスの静的属性 (静的データフィールド) の数 NOSTDATADECL 73 C++、Java
クラスのプライベートメソッドの数 クラスのプライベートメソッドの数 NOPRIVMETH 74 C++、Java
クラスで保護されているメソッドの数 クラスで保護されているメソッドの数 NOPROTMETH 75 C++、Java
クラスのパブリックメソッドの数 クラスのパブリックメソッドの数 NOPUBMETH 76 C++、Java
クラスがアクセスできる方法の数 クラスにアクセスする方法の概要に関するメッセージの総数メッセージには、フレンドを持つ C++ クラスのためのプライベートメソッドと同様に、Java とC++ クラスのパブリック/保護メソッドが含まれます。 NOMSG 77 C++、Java
クラスで宣言したポインターデータアイテムの数 クラスで宣言したポインターデータアイテムの数 NOPTRDECL 78 C++、Java
クラスには、ポインターのアイテムがあり、デストラクタはありません。 クラスには、ポインターのアイテムがあり、デストラクタはありません。 HASPTRWODESTR 79 C++
クラスで定義されているインラインメソッドの数 クラスで定義されているインラインメソッドの数 NOINLINEMETH 80 C++
バイト単位のクラスのサイズ バイト単位のクラスのサイズこのメトリックの計算方法の詳細については、組み込み型のサイズの指定を参照してください。 BYTESDATADECL 81 C++
定数を宣言したメソッドの数 定数を宣言したメソッドの数 NOCONSTMETH 82 C++
クラスの純粋な仮想メソッドの数 クラスの純粋な仮想メソッドの数 NOVIRTMETH 83 C++
クラスにコメント、コードの空行なし クラスにあるコードの行数 (コメント行と空行を除く) NCNBLOC_CLASS 84 C++、Java
祖先 class-attribute インポートカップリング 下のオブジェクト指向言語のカップリングメトリクスを参照してください。 ACAIC 205 C++、Java
祖先 class-method インポートカップリング ACMIC 206 C++、Java
子孫 class-attribute エクスポートカップリング DCAEC 207 C++、Java
子孫 class-method エクスポートカップリング DCMEC 208 C++、Java
class-attribute インポートカップリング OCAIC 209 C++、Java
class-attribute エクスポートカップリング OCAEC 210 C++、Java
class-method インポートカップリング OCMIC 211 C++、Java
class-method エクスポートカップリング OCMEC 212 C++、Java
祖先 class-method-class-method インポートカップリング AMMIC 213 C++、Java
子孫 class-method-class-method エクスポートカップリング DMMEC 214 C++、Java
class-method-class-method インポートカップリング OMMIC 215 C++、Java
class-method-class-method エクスポートカップリング OMMEC 216 C++、Java

オブジェクト指向言語のカップリングメトリクス

指定のクラスでは、これらのメトリックは、ソースまたは宛先がクラスまたはそのメソッド/属性によって表わされる関係を数えます。

これらの関係はすべて、3 つの要素に従って、グループに分割されます。

  1. 指定のクラスと相互作用するクラスの関係のタイプその関係 (親子関係かそれ以外の関係か)
  2. 相互作用のタイプ (現在のクラスに属性やメソッドパラメーターがあるかどうか、他のクラスの戻り値の型、1 つのクラスの class-method が別のクラスの class-method を呼び出すかどうか)
  3. Impact の focus (クラスが属性、メソッド、メソッドタイプにより別のクラスを使用 — インポート、または、別のクラスにより使用 - エクスポート)

すべてのメトリック名は、メトリックの説明の接頭語です。接頭語の最初の文字は、これらの 3 つのタイプの相互作用を表します。ancestor の A、descendant の D、other (ancestor、descendant のいずれでもない) の O。 そして、class-attribute の CA、class-method の CM、method-method の MM、import coupling の IC、export coupling の EC は、2 番目と 3 番目の文字のエンコード作用です。

Klocwork システムレベル Java レポートのカップリングメトリクス

Klocwork システムレベル Java のレポートは、カップリングメトリクスの要約を使用して、クラスの相対接続性を示します。

使用 (エクスポート) カップリングは、各クラスの OCAEC+OMMEC+OCMEC です。

使用 (インポート) カップリングは、各クラスの OCAIC+OCMIC+OMMIC です。

----------A.java-------------
public class A extends B {
public C mal(int i) { C c = new C(); /*...*/return c; }
private B b1;
private D d1;
}
-----------------------------

----------B.java-------------
public class B extends D {
    public int mb1(D d) { int res = 0; /*....*/return res;}
    private C c1;
    private C c2;
}
-----------------------------

----------C.java-------------
public class C {
    public int mc1() { int res=k; /*...*/ return res;}
    private int k;
    private A a1;
    private A a2;
}
-----------------------------

----------D.java-------------
public class D {
    public void md1(int v) { }
}
-----------------------------

関連トピック リンク アイコンSee also