クラスレベルメトリック
名前 | 説明 | メトリックコード | 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 つのクラスの class-method が別のクラスの class-method を呼び出すかどうか)
- 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) { } } -----------------------------