Metrics

Understand 3.1 のメトリクス

AltAvgLineBlank - Average Number of Blank Lines (Include Inactive)

空白行数の平均(非アクティブ行を含む)

C/C++
Project,File,Class,Struct,Union

AltAvgLineCode - Average Number of Lines of Code (Include Inactive)

コード行数の平均(非アクティブ行を含む)

C/C++
Project,File,Class,Struct,Union

AltAvgLineComment - Average Number of Lines with Comments (Include Inactive)

コメント行数の平均(非アクティブ行を含む)

C/C++
Project,File,Class,Struct,Union

AltCountLineBlank - Blank Lines of Code (Include Inactive)

空白行数(非アクティブ行を含む)

C/C++
Project,File,Class,Struct,Union,Function

AltCountLineCode - Lines of Code (Include Inactive)

コード行数(非アクティブ行を含む)

C/C++
Project,File,Class,Struct,Union,Function

AltCountLineComment - Lines with Comments (Include Inactive)

コメント行数(非アクティブ行を含む)

C/C++
Project,File,Class,Struct,Union,Function

AvgCyclomatic - Average Cyclomatic Complexity

Cyclomatic 複雑度の平均

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface,Compunit
PL/M
Project,File
Python
Project,File,Class
VHDL
Project,File,Architecture
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

AvgCyclomaticModified - Average Modified Cyclomatic Complexity

Modified Cyclomatic 複雑度の平均

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface,Compunit
PL/M
Project,File
Python
Project,File,Class
VHDL
Project,File,Architecture
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

AvgCyclomaticStrict - Average Strict Cyclomatic Complexity

Strict Cyclomatic 複雑度の平均

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Java
Project,File,Class,Interface
Pascal
Project,File,Class,Interface,Compunit
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

AvgEssential - Average Essential Cyclomatic Complexity

Essential 複雑度の平均

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

AvgEssentialStrictModified - Average Essential Strict Modified Complexity

Strict Modified Essential 複雑度の平均

Ada
Project,File,Package

AvgLine - Average Number of Lines

行数の平均

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface
PL/M
Project,File
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

AvgLineBlank - Average Number of Blank Lines

空白行数の平均

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface
PL/M
Project,File
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

AvgLineCode - Average Number of Lines of Code

コード行数の平均

参考: Lorenz & Kidd - Average Method Size (AMS)

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface
PL/M
Project,File
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

AvgLineComment - Average Number of Lines with Comments

コメント行数の平均

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface
PL/M
Project,File
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

CountClassBase - Base Classes

直接の基底クラス数

参考: IFANIN

C/C++
Class,Struct,Union
C#
Class,Struct
Java
Class,Interface
Pascal
Class,Interface
Python
Class

CountClassCoupled - Coupling Between Objects

クラス結合度
ClassA が、ClassB の型,データ,メンバーなどを使用している場合、A は B と結合している
遠心性結合(Efferent Coupling / Ce)とも呼ばれる

参考: Chidamber & Kemerer - Coupling Between Objects (CBO)

C/C++
Class,Struct,Union
C#
Class,Struct
Java
Class,Interface
Pascal
Class,Interface

CountClassDerived - Number of Children

直接の派生クラス数

参考: Chidamber & Kemerer - Number of Children (NOC)

C/C++
Class,Struct,Union
C#
Class,Struct
Java
Class,Interface
Pascal
Class,Interface
Python
Class

CountDeclClass - Classes

クラス数

C/C++
Project,File
C#
Project,File
Java
Project,File
Pascal
Project,File
Python
Project,File
Web
Project,File

CountDeclClassMethod - Class Methods

クラスメソッド数

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface

CountDeclClassVariable - Class Variables

クラス変数の数

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface

CountDeclFile - Number of Files

ファイル数

C/C++
Project
C#
Project
Ada
Project
Fortran
Project
Java
Project
Jovial
Project
Pascal
Project
PL/M
Project
Python
Project
VHDL
Project
COBOL
Project
Web
Project

CountDeclFunction - Function

関数の数

C/C++
Project,File
C#
Project,File
Java
Project,File
Python
Project,File
Web
Project,File

CountDeclInstanceMethod - Instance Methods

インスタンスメソッド数

参考: Number of Instance Methods (NIM)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface
Python
Project,Class

CountDeclInstanceVariable - Instance Variables

インスタンス変数の数

参考: Number of Instance Variables (NIV)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface
Python
Project,Class

CountDeclInstanceVariableInternal - Internal Instance Variables

internal インスタンス変数の数

C#
Project,Class,Struct

CountDeclInstanceVariablePrivate - Private Instance Variables

private インスタンス変数の数

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct

CountDeclInstanceVariableProtected - Protected Instance Variables

protected インスタンス変数の数

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct

CountDeclInstanceVariableProtectedInternal - Protected Internal Instance Variables

protected internal インスタンス変数の数

C#
Project,Class,Struct

CountDeclInstanceVariablePublic - Public Instance Variables

public インスタンス変数の数

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct

CountDeclMethod - Local Methods

メソッド数(継承メソッドを含まない)

参考: Chidamber & Kemerer - Weighted Methods per Class (WMC)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface
Python
Project,Class

CountDeclMethodAll - Methods

メソッド数(継承メソッドを含む)

参考: Chidamber & Kemerer - Response For a Class (RFC), Lorenz & Kidd - Number of Methods (NM)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,Class,Interface
Pascal
Project,Class,Interface
Python
Project,Class

CountDeclMethodConst - Local Const Methods

const メソッド数

C/C++
Project,Class,Struct,Union

CountDeclMethodDefault - Local Default Visibility Methods

デフォルトメソッド数

Java
Project,File,Class,Interface

CountDeclMethodFriend - Friend Methods

friend メソッド数(継承メソッドを含まない)

参考: Lorenz & Kidd - Number of Friends (NF), Number of Friend Methods (NFM)

C/C++
Project,Class,Struct,Union

CountDeclMethodInternal - Local Internal Methods

internal メソッド数

C#
Project,Class,Struct

CountDeclMethodPrivate - Private Methods

private メソッド数(継承メソッドを含まない)

参考: Number Private Methods (NPRM)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface

CountDeclMethodProtected - Protected Methods

protected メソッド数(継承メソッドを含まない)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface

CountDeclMethodProtectedInternal - Local Protected Internal Methods

protected internal メソッド数

C#
Project,Class,Struct

CountDeclMethodPublic - Public Methods

public メソッド数(継承メソッドを含まない)

参考: Lorenz & Kidd - Number of Public Methods (PM, NPM)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface

CountDeclMethodStrictPrivate - Local strict private methods

strict private メソッド数

Pascal
Project,Class,Interface

CountDeclMethodStrictPublished - Local strict published methods

strict published メソッド数

Pascal
Project,Class,Interface

CountDeclModule - Modules

モジュール数

Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Jovial
Project,File
Pascal
Project,File
PL/M
Project

CountDeclProgUnit - Program Unites

プログラムユニット数

Fortran
Project,File

CountDeclSubprogram - Subprograms

サブプログラム数

Ada
Project,Package
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Compunit,Function,Procedure

CountInput - Inputs

関数に対する入力の数
Use しているグローバル変数・パラメータ + 該当関数を CalledBy している関数の数

参考: FANIN (Infomational fan-in)

C/C++
Function
C#
Method
Fortran
Functino,Program,Subroutine
Java
Method

CountLine - Physical Lines

物理行数

参考: Number of Lines (NL)

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File,Class,Function
VHDL
Project,File,Procedure,Function,Process,Architecture
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

CountLine_Html - HTMLLines

html の行数

Web
Project,File

CountLine_Javascript - Javascript Lines

javascript の行数

Web
Project,File

CountLine_Php - PHP Lines

php の行数

Web
Project,File,PHP Class,PHP Interface

CountLineBlank - Blank Lines of Code

空白行数

参考: Blank Lines of Code (BLOC)

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File,Class,Function
VHDL
Project,File,Procedure,Function,Process,Architecture
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

CountLineBlank_Html - Blank html lines

html の空白行数

Web
Project,File

CountLineBlank_Javascript - Blank javascript lines

javascript の空白行数

Web
Project,File

CountLineBlank_Php - Blank php lines

php の空白行数

Web
Project,File,PHP Class,PHP Interface

CountLineCode - Source Lines of Code

コード行数
コードとコメントいずれも含む行は、CountLineCode, CountLineComment いずれにもカウントされる
クラスにおいては、メンバー関数の CountLineCode の和となる

参考: Lines of Code (LOC), Source Lines of Code (SLOC)

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File,Class,Function
VHDL
Project,File,Procedure,Function,Process,Architecture
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

CountLineCode_Javascript - Javascript source code lines

javascript のコード行数

Web
Project,File

CountLineCode_Php - PHP Source Code Lines

php のコード行数

Web
Project,File,PHP Class,PHP Interface

CountLineCodeDecl - Declarative Lines of Code

宣言コード行数
int i = 0;
の様な行は、CountLineCodeDecl, CountLineCodeExe いずれにもカウントされる

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
Python
Project,File,Class,Function

CountLineCodeExe - Executable Lines of Code

実行可能コード行数
int i = 0;
の様な行は、CountLineCodeDecl, CountLineCodeExe いずれにもカウントされる

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
Python
Project,File,Class,Function

CountLineComment - Lines with Comments

コメント行数
コードとコメントいずれも含む行は、CountLineCode, CountLineComment いずれにもカウントされる

参考: Comment Lines of Code (CLOC)

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File,Class,Function
VHDL
Project,File,Procedure,Function,Process,Architecture
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

CountLineComment_Html - HTML Comment Lines

html のコメント行数

Web
Project,File

CountLineComment_Javascript - Javascript Comment Lines

javascript のコメント行数

Web
Project,File

CountLineComment_Php - PHP Comment Lines

php のコメント行数

Web
Project,File,PHP Class,PHP Interface

CountLineInactive - Inactive Lines

非アクティブ行数
#if や #ifdef で FALSE の部分

C/C++
Project,File,Class,Struct,Union,Function

CountLinePreprocessor - Preprocessor Lines

プリプロセッサ行数

C/C++
Project,File,Class,Struct,Union,Function
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task

CountOutput - Outputs

関数に対する出力の数
Set/Modify しているグローバルオブジェクト・パラメータの数 + Call している関数(戻り値が void 以外の場合自分自身もカウント)の数

参考: FANOUT (Infomational fan-out)

C/C++
Function
C#
Method
Fortran
Functino,Program,Subroutine
Java
Method

CountPackageCoupled - Coupled Packages

関連する他パッケージの数

Ada
Project,Package

CountPath - Paths

実行可能パス数
exit や goto 文で終了する異常ケースは除く

参考: NPATH

C/C++
Project,Function
C#
Project,Method
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,Module,Block Data,Function,Program,Subroutine
Java
Project,Method
Pascal
Project,Compunit,Function,Procedure
Python
Project,File,Function
Web
Project,File

CountSemicolon - Semicolons

セミコロン数

C/C++
Project,File,Function
C#
Project,File,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Java
Project,File,Class,Interface,Method

CountStmt - Statements

宣言・実行可能ステートメント数

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File
VHDL
Project,File
COBOL
Project,File
Web
Project,File

CountStmtDecl - Declarative Statements

宣言ステートメント行数

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File,Class,Function
VHDL
Project,File
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

CountStmtDecl_Javascript - Javascript Declarative Statements

javascript 宣言ステートメント数

Web
Project,File

CountStmtDecl_Php - PHP Declarative Statements

php 宣言ステートメント数

Web
Project,File,PHP Class,PHP Interface

CountStmtEmpty - Empty Statements

空のステートメント数

C/C++
Project,File,Class,Struct,Union,Function

CountStmtExe - Executable Statements

実行可能ステートメント数

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Subroutine
Pascal
Project,File,Class,Interface,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File,Class,Function
VHDL
Project,File
COBOL
Project,File
Web
Project,File,PHP Class,PHP Interface

CountStmtExe_Javascript - Javascript Executable Statements

javascript の実行可能ステートメント数

Web
Project,File

CountStmtExe_Php - PHP Executable Statements

php の実行可能ステートメント数

Web
Project,File,PHP Class,PHP Interface

Cyclomatic - Cyclomatic Complexity

Cyclomatic 複雑度(サイクロマティック複雑度)
関数の制御フローグラフにおいて、e - n + p で計算される
e = 制御グラフ内のエッジ数
n = 制御グラフ内のノード数
p = 連結されたコンポーネントの数
一般的には 10 以下であればシンプルな構造、30 以上の場合には構造に問題があるとされる

参考: McCabe - McCabe Cyclomatic Complexity, CC

C/C++
Project,Function
C#
Project,Method
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,Module,Block Data,Function,Program,Subroutine
Java
Project,Method
Jovial
Project,Subroutine
Pascal
Project,Compunit,Function,Procedure
PL/M
Project,Procedure
Python
Project,File,Function
VHDL
Project,Procedure,Function,Process
COBOL
Project,File,Paragraph,Section
Web
Project,File

CyclomaticModified - Modified Cyclomatic Complexity

Modified Cyclomatic 複雑度
複数分岐制御構造(C や Java における switch, Ada における Case など)におけるそれぞれの分岐はカウントせず、全体として1とカウントする

参考: McCabe - McCabe Modified Cyclomatic Complexity, CC3

C/C++
Project,Function
C#
Project,Method
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,Module,Block Data,Function,Program,Subroutine
Java
Project,Method
Jovial
Project,Subroutine
Pascal
Project,Compunit,Function,Procedure
PL/M
Project,Procedure
Python
Project,File,Function
VHDL
Project,Procedure,Function,Process
COBOL
Project,Paragraph,Section
Web
Project,File

CyclomaticStrict - Strict Cyclomatic Complexity

Strict Cyclomatic 複雑度
個々の論理演算(and, or, xor など)をそれぞれ 1 とカウントする

参考: McCabe - McCabe Strict Cyclomatic Complexity, CC2

C/C++
Project,Function
C#
Project,Method
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
Java
Project,Method
Jovial
Project,Subroutine
Pascal
Project,Compunit,Function,Procedure
Python
Project,File,Function
Web
Project,File

Essential - Essential Complexity

Essential 複雑度
単純な条件構造(単純な if-else, while, do-while など)を、単一のステートメントで置き換えた制御グラフにおいて計測した複雑度

C/C++
Project,Function
C#
Project,Method
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,Module,Block Data,Function,Program,Subroutine
Java
Project,Method
Pascal
Project,Compunit,Function,Procedure
Python
Project,File,Function
Web
Project,File

EssentialStrictModified - Essential Strict Modified Complexity

Strict Modified Essential 複雑度
短絡演算子 (and then/or else) をそれぞれ 1 とカウントし、Case は 全体で 1 とカウントする。

Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task

Knots - Knots

ノット値
break,goto などにより、制御フローの経路が交差する数
ノットの多さは制御フローの複雑さに比例する

C/C++
Project,Function
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task

MaxCyclomatic - Max Cyclomatic Complexity

Cyclomatic 複雑度の最大値

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface,Compunit
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

MaxCyclomaticModified - Max Modified Cyclomatic Complexity

Modified Cyclomatic 複雑度の最大値

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface,Compunit
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

MaxCyclomaticStrict - Max Strict Cyclomatic Complexity

Strict Cyclomatic 複雑度の最大値

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface,Compunit

MaxEssential - Max Essential Complexity

Essential 複雑度の最大値

Ada
Project,File,Package

MaxEssentialKnots - Max Knots

Essential ノットの最大値
単純な条件構造(単純な if-else, while, do-while など)を、単一のステートメントで置き換えた制御グラフにおいて計測したノットの最大値

C/C++
Project,Function
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task

MaxEssentialStrictModified - Max Essential Strict Modified Complexity

Strict Modified Essential 複雑度の最大値

Ada
Project,File,Package

MaxInheritanceTree - Depth of Inheritance Tree

継承ツリー構造の最大深度
ルートノードでの値は 0 であり、継承ツリーが深くなるほど、値が大きくなる

参考: Chidamber & Kemerer - Depth of Inheritance Tree (DIT)

C/C++
Project,Class,Struct,Union
C#
Project,Class,Struct
Java
Project,Class,Interface
Pascal
Project,Class,Interface
Python
Project,Class

MaxNesting - Nesting

ネスト数
制御構造(if, while, for, switch など)の最大ネストレベル値

C/C++
Project,File,Function
C#
Project,File,Class,Struct,Method
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Module,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
Python
Project,File,Class,Function
Web
Project,File,PHP Class,PHP Interface

MinEssentialKnots - Minimum Knots

Essential ノットの最小値
単純な条件構造(単純な if-else, while, do-while など)を、単一のステートメントで置き換えた制御グラフにおいて計測したノットの最小値

C/C++
Project,Function
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task

PercentLackOfCohesion - Lack of Cohesion in Methods

クラス凝集度の欠如
LCOM2 の値(0~1)を百分率表示(LCOM2 * 100)した値
LCOM2 は以下で表される
LCOM2 = 1 - sum(mA) / (m * a)
m :クラス中のメソッド数
a :クラス中のフィールド数
mA :フィールドにアクセスしているメソッド数
sum(mA) :クラス中の各mAの総和
クラス凝集度の欠如の値が低いほど、クラス凝集度が高く好ましいとされる

参考: Chidamber & Kemerer - Lack of Cohesion in Methods (LCOM/LOCM)

C/C++
Class,Struct,Union
C#
Class,Struct
Ada
Package
Java
Class,Interface
Pascal
Class,Interface

RatioCommentToCode - Comment to Code Ratio

コード行に占めるコメント行の割合
コードとコメントの両方を含む行がある場合、コメント率は 100 を超える場合がある

C/C++
Project,File,Class,Struct,Union,Function
C#
Project,File,Class,Method
Ada
Project,,File,Type,Entity,Function,Package,Procedure,Protected,Task
Fortran
Project,File,Block Data,Function,Program,Subroutine
Java
Project,File,Class,Interface,Method
Jovial
Project,File,Module,Subroutine
Pascal
Project,File,Class,Interface,Compunit,Function,Procedure
PL/M
Project,File,Procedure
Python
Project,File,Class,Function
VHDL
Project,File,Procedure,Function,Architecture
Web
Project,File

SumCyclomatic - Sum Cyclomatic Complexity

Cyclomatic 複雑度の総和

参考: Chidamber & Kemerer - Weighted Methods per Class (WCM)

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface,Compunit
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

SumCyclomaticModified - Sum Modified Cyclomatic Complexity

Modified Cyclomatic 複雑度の総和

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

SumCyclomaticStrict - Sum Strict Cyclomatic Complexity

Strict Cyclomatic 複雑度の総和

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Jovial
Project,File
Pascal
Project,File,Class,Interface,Compunit
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

SumEssential - Sum Essential Complexity

Essential 複雑度の総和

C/C++
Project,File,Class,Struct,Union
C#
Project,File,Class,Struct
Ada
Project,File,Package
Fortran
Project,File
Java
Project,File,Class,Interface
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface

SumEssentialStrictModified - Sum Essential Strict Modified Complexity

Strict Modified Essential 複雑度の総和

Ada
Project,File,Package