メトリクスの一覧

AltAvgLineBlankAverage Number of Blank Lines (Include Inactive)

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

C/C++
Project,File,Class,Struct,Union コード例
AltAvgLineCodeAverage Number of Lines of Code (Include Inactive)

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

C/C++
Project,File,Class,Struct,Union コード例
AltAvgLineCommentAverage Number of Lines with Comments (Include Inactive)

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

C/C++
Project,File,Class,Struct,Union コード例
AltCountLineBlankBlank Lines of Code (Include Inactive)

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

C/C++
Project,File,Class,Struct,Union,Function コード例
AltCountLineCodeLines of Code (Include Inactive)

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

C/C++
Project,File,Class,Struct,Union,Function コード例
AltCountLineCommentLines with Comments (Include Inactive)

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

C/C++
Project,File,Class,Struct,Union,Function コード例
AvgCyclomaticAverage 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
AvgCyclomaticModifiedAverage 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
AvgCyclomaticStrictAverage 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
AvgEssentialAverage 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
AvgEssentialStrictModifiedAverage Essential Strict Modified Complexity

Strict Modified Essential 複雑度の平均

Ada
Project,File,Package
AvgLineAverage 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
AvgLineBlankAverage 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
AvgLineCodeAverage 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
AvgLineCommentAverage 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
CountClassBaseBase Classes

直接の基底クラス数

参考: IFANIN

C/C++
Class,Struct,Union コード例
C#
Class,Struct
Java
Class,Interface
Pascal
Class,Interface
Python
Class
CountClassCoupledCoupling 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
CountClassDerivedNumber of Children

直接の派生クラス数

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

C/C++
Class,Struct,Union コード例
C#
Class,Struct
Java
Class,Interface
Pascal
Class,Interface
Python
Class
CountDeclClassClasses

クラス数

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

クラスメソッド数

C/C++
Project,Class,Struct,Union コード例
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface
CountDeclClassVariableClass Variables

クラス変数の数

C/C++
Project,Class,Struct,Union コード例
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface
CountDeclFileNumber 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
CountDeclFunctionFunctions

関数の数

C/C++
Project,File
C#
Project,File
Java
Project,File
Python
Project,File
Web
Project,File
CountDeclInstanceMethodInstance 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
CountDeclInstanceVariableInstance 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
CountDeclInstanceVariableInternalInternal Instance Variables

internal インスタンス変数の数

C#
Project,Class,Struct
CountDeclInstanceVariablePrivatePrivate Instance Variables

private インスタンス変数の数

C/C++
Project,Class,Struct,Union コード例
C#
Project,Class,Struct
CountDeclInstanceVariableProtectedProtected Instance Variables

protected インスタンス変数の数

C/C++
Project,Class,Struct,Union コード例
C#
Project,Class,Struct
CountDeclInstanceVariableProtectedInternalProtected Internal Instance Variables

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

C#
Project,Class,Struct
CountDeclInstanceVariablePublicPublic Instance Variables

public インスタンス変数の数

C/C++
Project,Class,Struct,Union コード例
C#
Project,Class,Struct
CountDeclMethodLocal 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
CountDeclMethodAllMethods

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

参考: 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
CountDeclMethodConstLocal Const Methods

const メソッド数

C/C++
Project,Class,Struct,Union コード例
CountDeclMethodDefaultLocal Default Visibility Methods

デフォルトメソッド数

Java
Project,File,Class,Interface
CountDeclMethodFriendFriend Methods

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

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

C/C++
Project,Class,Struct,Union コード例
CountDeclMethodInternalLocal Internal Methods

internal メソッド数

C#
Project,Class,Struct
CountDeclMethodPrivatePrivate 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
CountDeclMethodProtectedProtected Methods

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

C/C++
Project,Class,Struct,Union コード例
C#
Project,Class,Struct
Java
Project,File,Class,Interface
Pascal
Project,Class,Interface
CountDeclMethodProtectedInternalLocal Protected Internal Methods

protected internal メソッド数

C#
Project,Class,Struct
CountDeclMethodPublicPublic 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
CountDeclMethodStrictPrivateLocal Strict Private Methods

strict private メソッド数

Pascal
Project,Class,Interface
CountDeclMethodStrictPublishedLocal Strict Published Methods

strict published メソッド数

Pascal
Project,Class,Interface
CountDeclModuleModules

モジュール数

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

プログラムユニット数

Fortran
Project,File
CountDeclPropertiesProperties

プロパティ数

C#
Project,Class,Struct
Pascal
Project,Class,Interface
CountDeclPropertiesAutoAuto Properties

自動実装プロパティ数

C#
Project,Class,Struct
CountDeclSubprogramSubprograms

サブプログラム数

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

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

参考: FANIN (Infomational fan-in)

C/C++
Function コード例
C#
Method
Fortran
Functino,Program,Subroutine
Java
Method
CountLinePhysical 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_HtmlHTML Lines

html の行数

Web
Project,File
CountLine_JavascriptJavascript Lines

javascript の行数

Web
Project,File
CountLine_PhpPHP Lines

php の行数

Web
Project,File,PHP Class,PHP Interface
CountLineBlankBlank 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_HtmlBlank HTML Lines

html の空白行数

Web
Project,File
CountLineBlank_JavascriptBlank Javascript Lines

javascript の空白行数

Web
Project,File
CountLineBlank_PhpBlank PHP Lines

php の空白行数

Web
Project,File,PHP Class,PHP Interface
CountLineCodeSource 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_JavascriptJavascript Source Code Lines

javascript のコード行数

Web
Project,File
CountLineCode_PhpPHP Source Code Lines

php のコード行数

Web
Project,File,PHP Class,PHP Interface
CountLineCodeDeclDeclarative 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
CountLineCodeExeExecutable 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
CountLineCommentLines 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_HtmlHTML Comment Lines

html のコメント行数

Web
Project,File
CountLineComment_JavascriptJavascript Comment Lines

javascript のコメント行数

Web
Project,File
CountLineComment_PhpPHP Comment Lines

php のコメント行数

Web
Project,File,PHP Class,PHP Interface
CountLineInactiveInactive Lines

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

C/C++
Project,File,Class,Struct,Union,Function コード例
C#
Project,File,Class,Method
CountLinePreprocessorPreprocessor Lines

プリプロセッサ行数

C/C++
Project,File,Class,Struct,Union,Function コード例
C#
Project,File,Class,Method
Ada
Project,File,Type,Entity,Function,Package,Procedure,Protected,Task
CountOutputOutputs

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

参考: FANOUT (Infomational fan-out)

C/C++
Function コード例
C#
Method
Fortran
Functino,Program,Subroutine
Java
Method
CountPackageCoupledCoupled Packages

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

Ada
Project,Package
CountPathPaths

実行可能パス数
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
CountSemicolonSemicolons

セミコロン数

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
CountStmtStatements

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

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
CountStmtDeclDeclarative 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_JavascriptJavascript Declarative Statements

javascript 宣言ステートメント数

Web
Project,File
CountStmtDecl_PhpPHP Declarative Statements

php 宣言ステートメント数

Web
Project,File,PHP Class,PHP Interface
CountStmtEmptyEmpty Statements

空のステートメント数

C/C++
Project,File,Class,Struct,Union,Function コード例
CountStmtExeExecutable 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_JavascriptJavascript Executable Statements

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

Web
Project,File
CountStmtExe_PhpPHP Executable Statements

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

Web
Project,File,PHP Class,PHP Interface
CyclomaticCyclomatic 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
CyclomaticModifiedModified 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
CyclomaticStrictStrict 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
EssentialEssential 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
EssentialStrictModifiedEssential Strict Modified Complexity

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

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

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

C/C++
Project,Function
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
MaxCyclomaticMax 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
MaxCyclomaticModifiedMax 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
MaxCyclomaticStrictMax 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
MaxEssentialMax 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
Pascal
Project,File,Class,Interface,Compunit
Python
Project,File,Class
Web
Project,File,PHP Class,PHP Interface
MaxEssentialKnotsMax Knots

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

C/C++
Project,Function コード例
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
MaxEssentialStrictModifiedMax Essential Strict Modified Complexity

Strict Modified Essential 複雑度の最大値

Ada
Project,File,Package
MaxInheritanceTreeDepth 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
MaxNestingNesting

ネスト数
制御構造(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
MinEssentialKnotsMinimum Knots

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

C/C++
Project,Function コード例
Ada
Project,Type,Entity,Function,Package,Procedure,Protected,Task
PercentLackOfCohesionLack 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
RatioCommentToCodeComment 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
SumCyclomaticSum 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
SumCyclomaticModifiedSum 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
SumCyclomaticStrictSum 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
SumEssentialSum 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
SumEssentialStrictModifiedSum Essential Strict Modified Complexity

Strict Modified Essential 複雑度の総和

Ada
Project,File,Package

About Understand

100万行を2分で解析できる「Understand」は、関数や変数、ファイルといったさまざまな要素を詳細に解析し、既存コードの理解を強力にサポートしてくれる最良のツールです。
10年来開発が続く古いソースコードであっても、数百万行に達する大規模なソースコードであっても、扱いが難しいソースコードであればあるほど「Understand」はその真価を発揮します。

Free Trial !

簡単な登録で、インストールから 15 日間、Understand のすべての機能を利用できる、無料体験版をダウンロードいただけます。

体験版をダウンロード

Back to Top

Top