- AltAvgLineBlank
- 関数・メソッドの空白行数の平均(非アクティブ行を含む)
| | C | | C | |
- AltAvgLineCode
- 関数・メソッドのコード行数の平均(非アクティブ行を含む)
| | C | | C | |
- AltAvgLineComment
- 関数・メソッドのコメント行数の平均(非アクティブ行を含む)
| | C | | C | |
- AltCountLineBlank
- 空白行数(非アクティブ行を含む)
| | C | C | C | |
- AltCountLineCode
- コード行数(非アクティブ行を含む)
| C | C | C | C | |
- AltCountLineComment
- コメント行数(非アクティブ行を含む)
| C | C | C | C | |
- AvgCyclomatic
- 関数・メソッドの Cyclomatic 複雑度の平均
| | ACSFJPV | | CSJP | |
- AvgCyclomaticModified
- 関数・メソッドの Modified?Cyclomatic 複雑度の平均
| | ACSFJPV | | CSJP | |
- AvgCyclomaticStrict
- 関数・メソッドの Strict Cyclomatic 複雑度の平均
| | ACSJ | | CSJP | |
- AvgEssential
- 関数・メソッドの Essential 複雑度の平均
| | ACSFJ | | CSJ | |
- AvgLine
- 関数・メソッドの行数の平均
| | ACSFPV | | CSJ | |
- AvgLineBlank
- 関数・メソッドの空白行数の平均
| | ACSFPV | | CSJ | |
- AvgLineCode
- 関数・メソッドのコード行数の平均
| | ACSFPV | | CSJ | |
- AvgLineComment
- 関数・メソッドのコメント行数の平均
| | ACSFPV | | CSJ | |
- CountClassBase
- 基底クラス数(継承の最上位数)
| | | | CSJ | IFANIN |
- CountClassCoupled
- クラスの結合度.
結合度とは、クラスから型、データ、メンバーが使用されていることを意味する。低い値の方が好ましいとされる。
| | | | CSJ | CBO (Coupling Between Object classes) |
- CountClassDerived
- クラス内のサブクラス数
| | | | CSJ | NOC (Number of Children) |
- CountDeclClass
- クラス数
| CSJ | CSJ | | | |
- CountDeclClassMethod
- クラスメソッド数(静的メソッド数)
| | | | CSJ | NCM (Number of Class Methods) |
- CountDeclClassVariable
- クラス変数の数(静的変数の数)
| | | | CSJ | NCV (Number of Class Variables) |
- CountDeclFile
- ファイル数
Understand プロジェクトファイルに定義されていない include ファイルは含まれない。
| ACSFJPV | | | | |
- CountDeclFileCode
- ソースコードファイル数
| C | | | | |
- CountDeclFileHeader
- ヘッダーファイル数
| C | | | | |
- CountDeclFunction
- 関数の数
| CSJ | CSJ | | | |
- CountDeclInstanceMethod
- インスタンスメソッド数
| | | | CSJ | NIM (Number of Instance Methods) |
- CountDeclInstanceVariable
- インスタンス変数の数
| | | | CSJ | NIV (Number of Instance Variables) |
- CountDeclInstanceVariablePrivate
- private インスタンス変数の数
| | | | C | |
- CountDeclInstanceVariableProtected
- protected インスタンス変数の数
| | | | C | |
- CountDeclInstanceVariablePublic
- public インスタンス変数の数
| | | | C | |
- CountDeclLibunit
- ライブラリユニットの数
| A | | | | |
- CountDeclMethod
- (継承ではない)ローカルメソッド数
| | | | CSJ | |
- CountDeclMethodAll
- 継承メソッドを含む実装メソッド数
| | | | CSJ | RFC (Response For Class) |
- CountDeclMethodConst
- const メソッド数
| | | | C | |
- CountDeclMethodDefault
- デフォルトスコープ メソッド数
| | | | J | |
- CountDeclMethodFriend
- (継承ではない)friend メソッド数
| | | | C | NFM (Number of Friend Methods) |
- CountDeclMethodPrivate
- (継承ではない)private メソッド数
| | | | CSJ | NPRM (Number of PRivate Methods) |
- CountDeclMethodProtected
- (継承ではない)protected メソッド数
| | | | CSJ | |
- CountDeclMethodPublic
- (継承ではない)public メソッド数
| | | | CSJ | NPM (Number of Public Methods) |
- CountDeclModule
- モジュール数
| FP | FPV | F | | |
- CountDeclProgUnit
- プログラムユニット数
| F | F | | | |
- CountDeclSubprogram
- サブプログラム数
| FPV | FPV | FPV | V | |
- CountInput
- 関数に対する入力の数
Useしているグローバルオブジェクト・メンバーオブジェクト・パラメータ+CalledByしている関数
| | | CSJ | | FANIN (Infomational fan-in) |
- CountLine
- 行数
| ACSFJPV | ACSFJPV | ACSFJPV | ACSJV | NL (Number of Lines) |
- CountLineBlank
- 空白行数
| ACSFJPV | ACSFJPV | ACSFJPV | ACSJV | BLOC (Blank Lines of Code) |
- CountLineCode
- コード行数
クラスの場合、クラスのメンバー関数の CouneLineCode の総和。
| ACSFJPV | ACSFJPV | ACSFJPV | ACSJV | LOC (Lines of Code) |
- CountLineCodeDecl
- 宣言コード行数
| | ACS | ACS | ACS | |
- CountLineCodeExe
- 実行可能コード行数
| | ACS | ACS | ACS | |
- CountLineComment
- コメント行数
| ACSFJPV | ACSFJPV | ACSFJPV | ACSJV | CLOC (Comment Lines of Code) |
- CountLineInactive
- 非アクティブ行数
#if や #ifdef で FALSE の部分。
| C | C | C | C | |
- CountLinePreprocessor
- プリプロセッサ行数
| C | C | C | C | |
- CountOutput
- 関数に対する出力の数
Set/Modifyしているグローバルオブジェクト・メンバーオブジェクト・パラメータ+Callしている関数+戻値がvoid以外の場合関数自身
| | | CSJ | | FANOUT (Infomational fan-out) |
- CountPath
- 実行可能パス数
exit や goto 文で終了する異常ケースは除く。
| | | CSFJ | A | NPATH |
- CountSemicolon
- セミコロン数
| ACJ | ACJ | ACJ | AJ | |
- CountStmt
- 宣言・実行可能ステートメント数
| ACSFJV | ACSFJPV | ACSFJPV | ACSJV | |
- CountStmtDecl
- 宣言ステートメント数
| ACSFJPV | ACSFJPV | ACSFJPV | ACSJV | |
- CountStmtEmpty
- 空白ステートメント数
| C | C | C | C | |
- CountStmtExe
- 実行可能ステートメント数
| ACSFJPV | ACSFJPV | ACSFJPV | ACSJ | |
- Cyclomatic
- Cyclomatic 複雑度(サイクロマティック複雑度)
一般的には10以下であればシンプルな構造、30以上の場合には構造に問題があるとされる。
| | | ACSFJPV | A | CC (Cyclomatic Complexity) |
- CyclomaticModified
- Modified Cyclomatic 複雑度
Switch-Case の様な条件文 (switch in C/Java, Case in Ada, computed Goto and arithmetic if in FORTRAN) において、個々の条件をカウントせずに条件文全体で 1 とカウントする。
| | | ACSFJPV | A | CC3 |
- CyclomaticStrict
- Strict Cyclomatic 複雑度
個々の Boolean オペレータを 1 とカウントする。
| | | ACSJPV | A | CC2 |
- Essential
- Essential 複雑度
| | | ACFJ | A | ev(G) |
- Knots
- ノット値
プログラムの実行制御構造複雑度(break 文や goto 文のようにコントロールフローの経路が交差する数)
| | | AC | A | |
- MaxCyclomatic
- Cyclomatic 複雑度の最大値
| | CSJ | | CSJ | |
- MaxCyclomaticModified
- Modified Cyclomatic 複雑度の最大値
| | CSJ | | CSJ | |
- MaxCyclomaticStrict
- Strict Cyclomatic 複雑度の最大値
| | CSJ | | CSJ | |
- MaxEssentialKnots
- 構造化プログラミング構造が削除された後の最大ノット値
| | | AC | A | |
- MaxInheritanceTree
- 継承ツリー構造の最大深度
ルートノードでの値は 0 であり、継承ツリーが深くなるほど、値が大きくなる。
| | | | CSJ | DIT (Depth of Inheritance Tree) |
- MaxNesting
- 制御構造(if, while, for, switch など)の最大ネストレベル値
| | | ACSFJPV | A | |
- MinEssentialKnots
- 構造化プログラミング構造が削除された後の最小ノット値
| | | AC | A | |
- RatioCommentToCode
- コード行に占めるコメント行の割合
コードとコメントの両方を含む行がある場合、コメント率は1を超える場合がある。 コメント率は、20%(=0.20)以下程度が好ましい(多すぎるコメントは逆に可読性・理解性を下げるため)とする例もある。
| ACSFJPV | ACSJPV | ACSFJPV | ACSJV | |
- PercentLackOfCohesion
- クラス凝集度の欠如
LCOM2に100を乗じてノーマライズした値
LCOM2 = 1 - sum(mA) / (m * a)
m :クラス中のメソッド数
a :クラス中のフィールド数
mA :フィールドにアクセスしているメソッド数
sum(mA) :クラス中の各mAの総和
低い値ほど凝集性が高く好ましいとされる。
| | | | CSJ | LCOM2 (Lack of Cohesion in Methods) ※LCOM*(LCOM3)とは異なる |
- SumCyclomatic
- Cyclomatic 複雑度の総和
| | CSJ | | CSJ | WMC (Weighted Methods Per Class) |
- SumCyclomaticModified
- Modified Cyclomatic 複雑度の総和
| | CSJ | | CSJ | |
- SumCyclomaticStrict
- Strict Cyclomatic 複雑度の総和
| | CSJ | | CSJ | |
- SumEssential
- Essential 複雑度の総和
| | CSJ | | CSJ | |