scitools.com

Understand Metrics

Understand computes a large set of code metrics - from simple counts like lines of code to more involved ones like McCabe cyclomatic complexity - for functions, files, classes, architectures, and the project as a whole. Metric plugins let you add your own. The tables below list every metric Understand offers - the Default Metrics are ready to use, and the Additional Metrics are mostly plugins you enable from the Plugin Manager.

See What metrics does Understand have? or Interpret key metrics for more.

Default Metrics

NameAlso Known AsAPI IDLanguages
All MethodsNumber of Methods (NM), Response for a Class (RFC)CountDeclMethodAllBasic, C#, C++, Java, Pascal, Python, Web
Auto-Implemented PropertiesCountDeclPropertyAutoC#
Average Blank LinesAvgCountLineBlankAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Average Blank Lines (Includes Inactive)AvgCountLineBlankWithInactiveC++
Average Code LinesAverage Method Size (AMS)AvgCountLineCodeAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Average Code Lines (Includes Inactive)AvgCountLineCodeWithInactiveC++
Average Comment LinesAvgCountLineCommentAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Average Comment Lines (Includes Inactive)AvgCountLineCommentWithInactiveC++
Average Cyclomatic ComplexityAvgCyclomaticAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Average Essential ComplexityAvgEssentialAda, Basic, C#, C++, Fortran, Java, Jovial, Python, Rust, Web
Average LinesAvgCountLineAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Average Modified Cyclomatic ComplexityAvgCyclomaticModifiedAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Average Strict Cyclomatic ComplexityAvgCyclomaticStrictAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Average Strict Modified Cyclomatic ComplexityAvgCyclomaticStrictModifiedAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Average Strict Modified Essential ComplexityAvgEssentialStrictModifiedAda
Base ClassesIFANINCountClassBaseBasic, C#, C++, Java, Pascal, Python, Web
Blank LinesBlank Lines of Code (BLOC)CountLineBlankAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Blank Lines (HTML)CountLineBlankHtmlWeb
Blank Lines (Includes Inactive)CountLineBlankWithInactiveC++
Blank Lines (JavaScript)CountLineBlankJavascriptWeb
Blank Lines (PHP)CountLineBlankPhpWeb
Changed LinesCountLineChangedAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Class MethodsCountDeclClassMethodBasic, C#, C++, Java, Pascal, Web
Class VariablesNumber of Variables (NV)CountDeclClassVariableBasic, C#, C++, Java, Pascal, Web
ClassesCountDeclClassBasic, C#, C++, Java, Pascal, Python, Web
Code FilesCountDeclFileCodeC++
Code LinesLines of Code (LOC), Source Lines of Code (SLOC)CountLineCodeAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Code Lines (Includes Inactive)CountLineCodeWithInactiveC++
Code Lines (JavaScript)CountLineCodeJavascriptWeb
Code Lines (PHP)CountLineCodePhpWeb
CodeCheck Violation Density by Code LinesCCViolDensityCodeAny
CodeCheck Violation Density by LinesCCViolDensityLineAny
CodeCheck Violation TypesCountCCViolTypeAny
CodeCheck ViolationsCountCCViolAny
Comment LinesComment Lines of Code (CLOC)CountLineCommentAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Comment Lines (HTML)CountLineCommentHtmlWeb
Comment Lines (Includes Inactive)CountLineCommentWithInactiveC++
Comment Lines (JavaScript)CountLineCommentJavascriptWeb
Comment Lines (PHP)CountLineCommentPhpWeb
Comment to Code RatioRatioCommentToCodeAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Const MethodsCountDeclMethodConstC++
Coupled ClassesCoupling Between Objects (CBO)CountClassCoupledBasic, C#, C++, Java, Pascal, Python
Coupled Classes ModifiedCountClassCoupledModifiedBasic, C#, Java, Pascal, Python
Coupled PackagesCountPackageCoupledAda
Cyclomatic ComplexityCyclomatic Complexity (CC)CyclomaticAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Declarative Code LinesCountLineCodeDeclAda, Assembly, C#, C++, Fortran, Java, Pascal, Python
Declarative StatementsCountStmtDeclAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, VHDL, Web
Declarative Statements (Javascript)CountStmtDeclJavascriptWeb
Declarative Statements (PHP)CountStmtDeclPhpWeb
Default MethodsCountDeclMethodDefaultJava
Derived ClassesNumber of Children (NOC)CountClassDerivedBasic, C#, C++, Java, Pascal, Python, Web
Empty StatementsCountStmtEmptyC++
Essential Complexityev(G)EssentialAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Executable Code LinesCountLineCodeExeAda, Assembly, C#, C++, Fortran, Java, Pascal, Python
Executable StatementsCountStmtExeAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, VHDL, Web
Executable Statements (JavaScript)CountStmtExeJavascriptWeb
Executable Statements (PHP)CountStmtExePhpWeb
Executable UnitsCountDeclExecutableUnitAda, Basic, C#, Fortran, Java, Pascal, Python, Web
FilesCountDeclFileAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Friend MethodsNumber of Friend Methods (NFM), Number of Friends (NF)CountDeclMethodFriendC++
FunctionsCountDeclFunctionAssembly, C#, C++, Java, Python, Rust, Web
Header FilesCountDeclFileHeaderC++
Inactive LinesCountLineInactiveC#, C++, Pascal
InputsFANIN (Infomational fan-in)CountInputC#, C++, Fortran, Java
Instance MethodsNumber of Instance Methods (NIM)CountDeclInstanceMethodBasic, C#, C++, Java, Pascal, Python, Web
Instance VariablesNumber of Instance Variables (NIV)CountDeclInstanceVariableBasic, C#, C++, Java, Pascal, Python, Web
Internal Instance VariablesCountDeclInstanceVariableInternalC#
Internal MethodsCountDeclMethodInternalC#
KnotsKnotsAda, C#, C++, Java, Rust
LinesNumber of Lines (NL)CountLineAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Lines (HTML)CountLineHtmlWeb
Lines (JavaScript)CountLineJavascriptWeb
Lines (PHP)CountLinePhpWeb
Max Cyclomatic ComplexityMaxCyclomaticAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Max Essential ComplexityMaxEssentialAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Max Essential KnotsMaxEssentialKnotsAda, C#, C++, Java, Rust
Max Inheritance TreeDepth of Inheritance Tree (DIT)MaxInheritanceTreeC#, C++, Java, Pascal, Python, Web
Max Modified Cyclomatic CompexityMaxCyclomaticModifiedAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Max NestingMaxNestingAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Max Strict Cyclomatic ComplexityMaxCyclomaticStrictAda, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Max Strict Modified Cyclomatic ComplexityMaxCyclomaticStrictModifiedAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Max Strict Modified Essential ComplexityMaxEssentialStrictModifiedAda
MethodsWeighted Methods per Class (WMC)CountDeclMethodBasic, C#, C++, Java, Pascal, Python, Web
Min Essential KnotsMinEssentialKnotsAda, C#, C++, Java, Rust
Modified Cyclomatic ComplexityModified Cyclomatic Complexity (CC3)CyclomaticModifiedAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
ModulesCountDeclModuleFortran, Jovial, Pascal
New LinesCountLineNewAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
OutputsFANOUT (Infomational fan-out)CountOutputC#, C++, Fortran, Java
PathsNPATHCountPathAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Paths Log(x)CountPathLogAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Percent ChangedPercentChangedAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Percent Lack Of CohesionLCOM2, Lack of Cohesion in Methods (LCOM/LOCM)PercentLackOfCohesionAda, Basic, C#, C++, Java, Pascal
Percent Lack Of Cohesion ModifiedPercentLackOfCohesionModifiedBasic, C#, Java, Pascal
Preprocessor LinesCountLinePreprocessorAda, C#, C++
Private Instance VariablesCountDeclInstanceVariablePrivateC#, C++, Web
Private MethodsNumber Private Methods (NPRM)CountDeclMethodPrivateBasic, C#, C++, Java, Pascal, Web
Program UnitsCountDeclProgUnitFortran
PropertiesCountDeclPropertyC#, Pascal
Protected Instance VariablesCountDeclInstanceVariableProtectedC#, C++, Web
Protected Internal Instance VariablesCountDeclInstanceVariableProtectedInternalC#
Protected Internal MethodsCountDeclMethodProtectedInternalC#
Protected MethodsCountDeclMethodProtectedBasic, C#, C++, Java, Pascal, Web
Public Instance VariablesCountDeclInstanceVariablePublicC#, C++, Web
Public MethodsNumber of Public Methods (PM, NPM)CountDeclMethodPublicBasic, C#, C++, Java, Pascal, Web
Removed LinesCountLineRemovedAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
SemicolonsCountSemicolonAda, C#, C++, Java
StatementsCountStmtAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Strict Cyclomatic ComplexityStrict Cyclomatic Complexity (CC2)CyclomaticStrictAda, Assembly, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, VHDL, Web
Strict Modified Cyclomatic ComplexityCyclomaticStrictModifiedAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Strict Modified Essential ComplexityEssentialStrictModifiedAda
Strict Private MethodsCountDeclMethodStrictPrivatePascal
Strict Published MethodsCountDeclMethodStrictPublishedPascal
SubprogramsCountDeclSubprogramAda, Basic, Fortran, Jovial, Pascal
Sum Cyclomatic ComplexityWeighted Methods per Class (WMC)SumCyclomaticAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Sum Essential ComplexitySumEssentialAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Sum Modified Cyclomatic ComplexitySumCyclomaticModifiedAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Sum Strict Cyclomatic ComplexitySumCyclomaticStrictAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Sum Strict Modified Cyclomatic ComplexitySumCyclomaticStrictModifiedAda, Basic, C#, C++, Fortran, Java, Jovial, Pascal, Python, Rust, Web
Sum Strict Modified Essential ComplexitySumEssentialStrictModifiedAda

Additional Metrics

Not enabled by default - must be turned on manually in the Plugin Manager.

NameAlso Known AsAPI IDLanguages
Analysis ErrorsCountAnalysisErrorAny
Analysis WarningsCountAnalysisWarningAny
AuthorsGitAuthorsAny
Bidirectional Dependencies FoundBidirectionalDepsFoundAny
Bidirectional Dependency PercentageBidirectionalDepsPercentAny
Call By Count Line CodeCallByCountLineCodeAny
Call By DepthCallByDepthAny
Call By NodesCallByNodesAny
Call By Sum CyclomaticCallBySumCyclomaticAny
Call Count Line CodeCallCountLineCodeAny
Call NodesCallNodesAny
Call Sum CyclomaticCallSumCyclomaticAny
Called ByCountCallbyAny
CallsCountCallsAny
ChildrenCountArchChildrenAny
Children (Recursive)CountArchChildrenRecursiveAny
Cognitive ComplexityCognitiveComplexityC, C++
Comment Lines (Includes Comments Before Functions)CountLineCommentWithBeforeAny
Comment to Code Ratio (Includes Comments Before Functions)RatioCommentsWithBeforeToCodeAny
CommitsGitCommitsAny
Complexity Thresholds Exceeded (CBRI)CBRIThresholdViolationsAny
Component ReuseComponentReuseC, C++
Core PercentageCorePercentageAny
Core SizeCoreSizeAny
Coupled Classes (Batch)CountClassCoupledBatchC, C++
Coverage Functions FoundCoverageFunctionsFoundAny
Coverage Functions HitCoverageFunctionsHitAny
Coverage Functions PercentCoverageFunctionsPercentAny
Coverage HitsCoverageHitsAny
Coverage Lines FoundCoverageLinesFoundAny
Coverage Lines HitCoverageLinesHitAny
Coverage Lines PercentageCoverageLinesPercentAny
Days since creationGitDaysSinceCreatedAny
Days since modifiedGitDaysSinceLastModifiedAny
Dependencies InCountDepsInAny
Dependencies OutCountDepsOutAny
Dependency References InCountDepRefsInAny
Dependency References OutCountDepRefsOutAny
DepthArchCurDepthAny
Direct Dependencies InCountDirectDepsInAny
Direct Dependencies OutCountDirectDepsOutAny
Direct Dependency References InCountDirectDepRefsInAny
Direct Dependency References OutCountDirectDepRefsOutAny
Direct Fan In (DFI)DirectFanInAny
Direct Fan Out (DFO)DirectFanOutAny
Direct Propagation CostDirPropagationCostAny
Duplicated Lines of CodeDuplicateLinesOfCodeAny
Duplicated Lines of Code PercentageDuplicateLinesOfCodePercentAny
Early ExitsCountEarlyExitAny
EntitiesCountArchEntsAny
Entities (Recursive)CountArchEntsRecursiveAny
ExitsCountExitAny
External Functions UsedCountCFileExternalFunctionsUsedC, C++
External Macros UsedCountCFileExternalMacrosUsedC, C++
External Types UsedCountCFileExternalTypesUsedC, C++
External Variables UsedCountCFileExternalVariablesUsedC, C++
Git Average CouplingGitAvgCouplingAny
Git CohesionGitCohesionAny
Git Coupled FilesGitCoupledFilesAny
Git Max CouplingGitMaxCouplingAny
Git Strongly Coupled FilesGitStrongCoupledFilesAny
Global ConstantsCountCFileGlobalConstantsC, C++
Global FunctionsCountCFileGlobalFunctionsC, C++
Global MacrosCountCFileGlobalMacrosC, C++
Global TypesCountCFileGlobalTypesC, C++
Global VariablesCountCFileGlobalVariablesC, C++
Globals ModifiedCountGlobalsModifiedC, C++, Pascal, Python, Web
Globals SetCountGlobalsSetC, C++, Pascal, Python, Web
Globals UsedCountGlobalsUsedC, C++, Pascal, Python, Web
Globals Used/Set/ModifiedCountGlobalsUsedSetModifiedC, C++, Pascal, Python, Web
Goto StatementsCountGoToC, C++
Halstead Difficulty (D)HalsteadDifficultyAny
Halstead Distinct Operands (n2)HalsteadDistinctOperandsAny
Halstead Distinct Operators (n1)HalsteadDistinctOperatorsAny
Halstead Effort (E)HalsteadEffortAny
Halstead Length (N)HalsteadLengthAny
Halstead Maintainability IndexHalsteadMaintainIdxAny
Halstead Total Operands (N2)HalsteadTotalOperandsAny
Halstead Total Operators (N1)HalsteadTotalOperatorsAny
Halstead Vocabulary (n)HalsteadVocabularyAny
Halstead Volume (V)HalsteadVolAny
Include By Count Line CodeIncludeByCountLineCodeAny
Include By DepthIncludeByDepthAny
Include By NodesIncludeByNodesAny
Include By Sum CyclomaticIncludeBySumCyclomaticAny
Include Count Line CodeIncludeCountLineCodeAny
Include DepthIncludeDepthAny
Include NodesIncludeNodesAny
Include Sum CyclomaticIncludeSumCyclomaticAny
Included ByCountIncludeByC, C++
IncludesCountIncludesC, C++
Lack of Cohesion in Methods (LCOM4)LCOM4C, C++
Language Scope (VOCF)LanguageScopeAny
Local ConstantsCountCFileLocalConstantsC, C++
Local Function-Static VariablesCountCFileLocalFunctionStaticVariablesC, C++
Local FunctionsCountCFileLocalFunctionsC, C++
Local MacrosCountCFileLocalMacrosC, C++
Local TypesCountCFileLocalTypesC, C++
Local VariablesCountCFileLocalVariablesC, C++
Major ContributorsGitMajorContributorsAny
Major Dependencies InCountMajorDepsInAny
Major Dependencies OutCountMajorDepsOutAny
Max CBO (CBRI)CBRIMaxCBOAny
Max Child DepthArchMaxChildDepthAny
Max RFC (CBRI)CBRIMaxRFCAny
Max WMC (CBRI)CBRIMaxWMCAny
Max WMC-McCabe (CBRI)CBRIMaxWMCMAny
Maximum Call DepthMaxCallDepthAny
Member FunctionsCountCFileMemberFunctionsC, C++
Member TypesCountCFileMemberTypesC, C++
Member VariablesCountCFileMemberVariablesC, C++
Minimum Recursive DepthMinRecursiveDepthAny
Minor ContributorsGitMinorContributorsAny
MISRA HIS Subset Violations (NOMV)HISNOMVC, C++
ModifiesCountModifiesAny
Nested ComplexityNestedComplexityAda, C, C++, Fortran, Java
Objects ModifiedCountObjectsModifiedAny
Objects SetCountObjectsSetAny
Objects UsedCountObjectsUsedAny
Objects Used/Set/ModifiedCountObjectsUsedSetModifiedAny
Overly Complex Files (CBRI)CBRIOverlyComplexFilesAny
Overly Complex Files Percentage (CBRI)CBRIOverlyComplexFilesPercentAny
OwnershipGitOwnershipAny
ParametersCountParamsAny
Percent of Parent Code LinesPercentOfParentCodeLinesAny
Percent of Parent EntitiesPercentOfParentEntitiesAny
Percent of Root Code LinesPercentOfRootCodeLinesAny
Percent of Root EntitiesPercentOfRootEntitiesAny
Propagation CostPropagationCostAny
RecursiveIsRecursiveAny
Recursive (Pointers)IsRecursiveUsePtrAny
Second Core SizeSecondCoreSizeAny
Set/Modify to Use RatioRatioSetModifyToUseAny
SetsCountSetsAny
Stability IndexStabilityIndexAny
Unique Called ByCountCallbyUniqueAny
Unique CallsCountCallsUniqueAny
Unique Globals ModifiedCountGlobalsModifiedUniqueC, C++, Pascal, Python, Web
Unique Globals SetCountGlobalsSetUniqueC, C++, Pascal, Python, Web
Unique Globals UsedCountGlobalsUsedUniqueC, C++, Pascal, Python, Web
Unique Globals Used/Set/ModifiedCountGlobalsUsedSetModifiedUniqueC, C++, Pascal, Python, Web
Unique ModifiesCountModifiesUniqueAny
Unique Objects ModifiedCountObjectsModifiedUniqueAny
Unique Objects SetCountObjectsSetUniqueAny
Unique Objects UsedCountObjectsUsedUniqueAny
Unique Objects Used/Set/ModifiedCountObjectsUsedSetModifiedUniqueAny
Unique SetsCountSetsUniqueAny
Unique UsesCountUsesUniqueAny
Unique Uses/Sets/ModifiesCountUseSetModifyUniqueAny
Use to Sets/Modify RatioRatioUseToSetModifyAny
Useful Comment Lines (CBRI)CBRIUsefulCommentsAny
Useful Comment To Code Ratio (CBRI)CBRIUsefulCommentToCodeRatioAny
Useful Lines of Code (CBRI)CBRIUsefulLOCAny
UsesCountUsesAny
Uses/Sets/ModifiesCountUseSetModifyAny
Visible Fan In (VFI)VisibleFanInAny
Visible Fan Out (VFO)VisibleFanOutAny