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