• Imagix 4D ユーザガイド
  • 目次

関数レベルのメトリクス

以下のメトリクスは、プロジェクト・ソースコードで関数(メソッド)用に生成されるものです。ライブラリ関数(定義が存在しないソースコード内の関数)に関しては、論理入力数のメトリクスのみが適用されます。

サイズ・メトリクス

サイズ-関数行数関数内の行数です。
サイズ: ソースコードの行数関数内のソースコードの行数。すなわち空行、コメントのみの行、プリプロセッサ条件によって省略された行を除くすべての行数。
関数内の変数の数関数内に存在するパラメータおよびローカル変数の数です。
精確な数値を算出するには(0を除く)、必ず -locals オプションを有効にしてデータを収集してください。

McCabe 複雑度メトリクス

McCabeサイクロマティック複雑度関数のサイクロマティック複雑度です(McCabe v(G))。これは、関数内の条件分岐の数を表します。また、関数を使用する線形に独立したテストパスの数も示します。ユーザは、その他のサイクロマティック複雑度の計算方法として、Myer の1979年版拡張定義である条件分岐内の述部をカウントする方法、または修正された定義である並列の case を単一の条件分岐としてカウントする方法を選択することもできます。
McCabeデシジョン(サイクロマティック)密度関数の条件分岐の密度(サイクロマチック密度)です。関数内の文の行数に対するサイクロマティック複雑度の比率として計算されます。
McCabe本質的な複雑度関数の本質的な複雑度(McCabe ev(G))です。これは体系化されていない構成体を含む関数の条件分岐の数を表します。
McCabe本質的な密度関数の本質的な密度、または体系化されていない度合を表します。サイクロマティック複雑度に対する本質的な複雑度の比率として計算されます。

その他の複雑度メトリクス

デシジョンの深さ関数内の条件分岐もしくは制御文におけるネストされたレベルの数です。
Halsteadインテリジェントコンテント関数の内容量(複雑度)における言語独立性の測定値です(Halstead I)。
Halsteadメンタルエフォート関数の作成あるいは理解に必須となる、基本的な知的作業量の測定値です(Halstead E)。
Halsteadプログラム量関数の情報量における測定値です(Halstead V)。
Halsteadプログラム困難度関数がそのアルゴリズムをコンパクトに実装する度合の測定値です(Halstead D)。これは Halstead Program Level(抽象度)に相反するメトリクスとなります。
ノットの数関数の複雑度および体系化されていない度合の測定値です(Woodward、Hennell、Hedley によるノット)。

制御フローのメトリクス

呼び出し側関数の論理入力数-直接直接もしくは関数ポインタを通して、関数を呼び出したり読み込んだりするプロジェクトにロードされるソースファイル内の関数の数です。
呼び出される関数の論理出力数直接関数に直接もしくは関数ポインタを通して、呼び出されたり読み取られたりする関数の数です。
使用されるグローバル変数関数によって設定 / 読み取りが行われるグローバル変数の数です。
使用される静的変数関数によって設定 / 読み取りが行われる静的変数の数です。
呼び出し側関数の論理入力数-間接関数ポインタを使用する呼び出しを含め、間接的に関数を呼び出したり読み取ったりするプロジェクトにロードされるソースファイル内の関数の数です。
呼び出される関数の論理出力数-間接関数ポインタを使用する呼び出しを含め、関数によって間接的に呼び出されたり読み取られたりする関数の数です。

プロファイル・メトリクス

すべてのプロファイル・メトリクスでは、適切なプロファイル・データのロードが求められます。
プロファイルデータ - カバレッジ実行されたコードのブロックの割合です。
プロファイルデータ - 実行頻度実行中に関数が呼び出された回数です。
プロファイルデータ - 実行時間関数の実行に費やされる時間です。