EN JP CN

クラスレベルメトリック

クラスレベルメトリック

名前説明メトリックコードID言語
クラスのコードの行数クラスのコードの行数の計算方法: (最後の行番号) - (最初の行番号) + 1LOC_CLASS65C++、Java
メソッド数現在のクラスで定義されているメソッドの数継承されたメソッドはカウントされません。このメトリックには、宣言がクラス内にあってもそのボディはクラスの外 (別のファイルなど) にあるメソッドが含まれています。NOMETH66C++、Java
継承レベルクラスでは、これはクラス階層ツリーのクラスのレベルです。インターフェイスでは、それは常に 1 です。LEVINHER67C++, Java
クラスのデータ宣言の数クラスのフィールド数 (メソッドと継承フィールドはカウントされません)NOCLASSDATADECL68C++、Java
クラスのクラスデータ型の数クラスのクラスデータ型の数NODATACLASS69Java
クラスのプライベート属性の数クラスのプライベート属性 (プライベートデータフィールド) の数NOPRIVDATADEC70C++、Java
クラスで保護されているメソッドの数クラスの保護属性 (保護データフィールド) の数NOPROTDATADECL71C++、Java
クラスのパブリック属性の数クラスのパブリック属性 (パブリックデータフィールド) の数NOPUBDATADECL72C++、Java
クラスの静的属性の数クラスの静的属性 (静的データフィールド) の数NOSTDATADECL73C++、Java
クラスのプライベートメソッドの数クラスのプライベートメソッドの数NOPRIVMETH74C++、Java
クラスで保護されているメソッドの数クラスで保護されているメソッドの数NOPROTMETH75C++、Java
クラスのパブリックメソッドの数クラスのパブリックメソッドの数NOPUBMETH76C++、Java
クラスがアクセスできる方法の数クラスにアクセスする方法の概要に関するメッセージの総数メッセージには、フレンドを持つ C++ クラスのためのプライベートメソッドと同様に、Java とC++ クラスのパブリック/保護メソッドが含まれます。NOMSG77C++、Java
クラスで宣言したポインターデータアイテムの数クラスで宣言したポインターデータアイテムの数NOPTRDECL78C++、Java
クラスには、ポインターのアイテムがあり、デストラクタはありません。クラスには、ポインターのアイテムがあり、デストラクタはありません。HASPTRWODESTR79C++
クラスで定義されているインラインメソッドの数クラスで定義されているインラインメソッドの数NOINLINEMETH80C++
バイト単位のクラスのサイズバイト単位のクラスのサイズこのメトリックの計算方法の詳細については、組み込み型のサイズの指定を参照してください。BYTESDATADECL81C++
定数を宣言したメソッドの数定数を宣言したメソッドの数NOCONSTMETH82C++
クラスの純粋な仮想メソッドの数クラスの純粋な仮想メソッドの数NOVIRTMETH83C++
クラスにコメント、コードの空行なしクラスにあるコードの行数 (コメント行と空行を除く)NCNBLOC_CLASS84C++、Java
祖先 class-attribute インポートカップリング下のオブジェクト指向言語のカップリングメトリクスを参照してください。ACAIC205C++、Java
祖先 class-method インポートカップリングACMIC206C++、Java
子孫 class-attribute エクスポートカップリングDCAEC207C++、Java
子孫 class-method エクスポートカップリングDCMEC208C++、Java
class-attribute インポートカップリングOCAIC209C++、Java
class-attribute エクスポートカップリングOCAEC210C++、Java
class-method インポートカップリングOCMIC211C++、Java
class-method エクスポートカップリングOCMEC212C++、Java
祖先 class-method-class-method インポートカップリングAMMIC213C++、Java
子孫 class-method-class-method エクスポートカップリングDMMEC214C++、Java
class-method-class-method インポートカップリングOMMIC215C++、Java
class-method-class-method エクスポートカップリングOMMEC216C++、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) { }
}
-----------------------------