Number of Artifacts
Description: Number of architecture artifacts in checked files
Categories: Architecture
Number of Components in Deprecated Artifacts
Description: Number of components that are assigned to deprecated artifact
Categories: Architecture
Number of Components with Violations
Description: Number of components that contain architecture violations
Categories: Architecture
Number of Empty Artifacts
Description: Number of architecture artifacts that are empty in checked files
Categories: Architecture
Number of Ignored Violations (Parser Dependencies)
Description: Number of parser dependencies in ignored architecture violations
Categories: Architecture
Number of Logical Elements in Deprecated Artifacts
Description: Number of logical programming elements that are assigned to deprecated artifact
Categories: Architecture
Number of Unassigned Logical Elements
Description: Number of internal logical elements that are not assigned to any artifact
Categories: Architecture
Number of Unassigned Physical Components
Description: Number of internal physical components that are not assigned to any artifact
Categories: Architecture
Number of Violations (Component Dependencies)
Description: Number of architecture-violating component dependencies
Categories: Architecture
Number of Violations (Parser Dependencies)
Description: Number of architecture-violating parser dependencies
Categories: Architecture
Average Block Nesting Depth
Description: Weighted average of nesting depth.
Categories: Code Analysis
Component Dependencies to Remove (Components)
Description: Number of component dependencies to remove to break up all component cycles.
Categories: Code Analysis, Cycle
Component Rank (Module)
Description: Component Rank is based on Google's page rank algorithm. The total component rank over all components in the selected group adds up to 100. The higher the rank, the more 'important' a component is in a system. Having many incoming dependencies or being referenced by other important components increases rank.
Categories: Code Analysis
Component Rank (System)
Description: Component Rank is based on Google's page rank algorithm. The total component rank over all components in the selected group adds up to 100. The higher the rank, the more 'important' a component is in a system. Having many incoming dependencies or being referenced by other important components increases rank.
Categories: Code Analysis
Issue Density
Description: Calculated as the number of unresolved issues (errors, warnings) * 1000, divided by source element count
Categories: Code Analysis
Max Block Nesting Depth
Description: Nesting depth is another good complexity indicator. Minimum value is zero, each nesting level adds 1.
Categories: Code Analysis
Number of Code Duplicates
Description: Number of duplicated code blocks.
Categories: Code Analysis
Number of Duplicated Code Lines
Description: Number of duplicated lines in duplicated code blocks. The duplicated lines of each code block are calculated as the sum of involved occurrences excluding the largest, which is treated as the reference.
Categories: Code Analysis
Number of Ignored Code Duplicates
Description: Number of ignored duplicated code blocks.
Categories: Code Analysis
Parser Dependencies to Remove (Components)
Description: Number of code lines to change to break up all component cycles.
Categories: Code Analysis, Cycle
Structural Debt Index (Components)
Description: Cumulative structural debt index of component cycles.
Categories: Code Analysis
Biggest Component Cycle Group
Description: Number of components in biggest cycle.
Categories: Cycle
Number of Component Cycle Groups
Description: Number of all component cycle groups, warnings and errors.
Categories: Cycle
Number of Critical Component Cycle Groups
Description: Number of component cycle groups marked as errors.
Categories: Cycle
Number of Ignored Cyclic Components
Description: Number of ignored cyclic components.
Categories: Cycle
Relative Cyclicity (Components)
Description: Relative component cyclicity in percent.
Categories: Cycle
ACD
Description: Average component dependency according to John Lakos. Average number of components a component depends on directly and indirectly. This metric can be used to characterize the overall average coupling of internal components.
Categories: Cohesion/Coupling, John Lakos
CCD
Description: Cumulative component dependency according to John Lakos. Cumulated depends upon values.
Categories: Cohesion/Coupling, John Lakos
Depends Upon (Module)
Description: Depends upon module level according to DependsOn by John Lakos. Total number of components that a component directly and indirectly depends upon in containing module.
Categories: Cohesion/Coupling, John Lakos
Depends Upon (System)
Description: Depends upon system level according to DependsOn by John Lakos. Total number of components that a component directly and indirectly depends upon in system.
Categories: Cohesion/Coupling, John Lakos
Fan In Maintainability Level (Module)
Description: Percentage of higher-level components in the same module that depend directly or indirectly on this component.
Categories: Cohesion/Coupling
Fan In Visibility (Module)
Description: Percentage of components in the same module that depend directly or indirectly on this component.
Categories: Cohesion/Coupling, MacCormack, Rusnak, Baldwin
Fan In Visibility (System)
Description: Percentage of internal components in the system that depend directly or indirectly on this component.
Categories: Cohesion/Coupling, MacCormack, Rusnak, Baldwin
Fan Out Visibility (Module)
Description: Percentage of components in the same module that this component depends upon.
Categories: Cohesion/Coupling, MacCormack, Rusnak, Baldwin
Fan Out Visibility (System)
Description: Percentage of internal components in the system that this component depends upon.
Categories: Cohesion/Coupling, MacCormack, Rusnak, Baldwin
LCOM4
Description: Determines the number of components in a class. A component is composed of fields, methods and types defined top level including all their nested programming elements. Constructors, destructors, empty, abstract and overridden methods of classes are not included in the calculation. The metric represents the unrelated portions of code in a class. A value of 1 indicates the highest cohesion possible - which is normally desirable. High values might indicate that a class is a candidate for a refactoring. Consider that utility classes by nature have high LCOM4 values.
Categories: Cohesion/Coupling
Logical Cohesion (Module)
Description: Number of dependencies 'to' and 'from' other top-level logical programming elements in the same namespace on module level.
Categories: Cohesion/Coupling
Logical Cohesion (System)
Description: Number of dependencies 'to' and 'from' other top-level logical programming elements in the same namespace on system level.
Categories: Cohesion/Coupling
Logical Coupling (Module)
Description: Number of dependencies 'to' and 'from' other top-level logical programming elements in other namespaces on module level.
Categories: Cohesion/Coupling
Logical Coupling (System)
Description: Number of dependencies 'to' and 'from' other top-level logical programming elements in other namespaces on system level.
Categories: Cohesion/Coupling
Maintainability Level
Description: This metric estimates maintainability as a percentage. 100% is the best possible value. To do that it looks at the dependency structure between components (source files in most languages). Cyclic dependencies and low level classes with a lot of incoming dependencies have a negative influence on the metric. Keeping good vertical boundaries and not having too many layers will have a positive influence. It is also recommended to have as many components as possible that are independent, i.e. have no incoming dependencies and therefore can be changed without influencing the rest of the system. In Java and C# the metric also considers the value of the relative cyclicity metric for packages/namespaces. If you have large cycle groups they will have a negative influence on the metric value.
Categories: Cohesion/Coupling
NCCD
Description: Normalized cumulative component dependency according to John Lakos. The ratio between the cumulative component dependency and the cumulative component dependency of a balanced binary tree of the same size. A value greater than 1 indicates a more vertical design. A value less than 1 indicates a more horizontal design.
Categories: Cohesion/Coupling, John Lakos
Physical Cohesion
Description: Number of dependencies 'to' and 'from' other components in the same module.
Categories: Cohesion/Coupling
Physical Coupling
Description: Number of dependencies 'to' and 'from' other components in other modules.
Categories: Cohesion/Coupling
Propagation Cost
Description: Propagation cost metric according to MacCormack, Rusnak and Baldwin. It describes the proportion of software files that are directly or indirectly linked to each other.
Categories: Cohesion/Coupling, MacCormack, Rusnak, Baldwin
RACD
Description: Relative average component dependency. Average component dependency divided by the number of internal components multiplied by 100 (in percent).
Categories: Cohesion/Coupling, John Lakos
Used From (Module)
Description: Number of all depending elements (direct and indirect) + 1 (including self) in containing module.
Categories: Cohesion/Coupling, John Lakos
Used From (System)
Description: Number of all depending elements (direct and indirect) + 1 (including self) in system.
Categories: Cohesion/Coupling, John Lakos
Code Comment Lines
Description: Counts all comment lines excluding header comments and blank comment lines.
Categories: Size
Comment Lines
Description: Counts all comment lines excluding blank comment lines.
Categories: Size
Number of Components (Ignoring Issues)
Description: Number of components ignoring issues.
Categories: Size
Number of Types
Description: Number of types (classes, enums or similar) in container.
Categories: Size
Number of Types (Module)
Description: Number of types (classes, enums or similar) in container on module level.
Categories: Size
Number of Types (System)
Description: Number of types (classes, enums or similar) in container on system level.
Categories: Size
Source Element Count
Description: Number of programming elements (i.e. types, fields, methods, functions, ...) plus number of statements.
Categories: Size
Relational Cohesion (Module)
Description: Relation cohesion according to Craig Larman (adapted). Number of internal namespace dependencies divided by the number of top-level logical programming elements in the same namespace on module level. Higher numbers suggest more cohesion.
Categories: Craig Larman, Cohesion/Coupling
Relational Cohesion (System)
Description: Relation cohesion according to Craig Larman (adapted). Number of internal namespace dependencies divided by the number of top-level logical programming elements in the same namespace on system level. Higher numbers suggest more cohesion.
Categories: Craig Larman, Cohesion/Coupling
Abstractness (Module)
Description: Abstractness according to Robert C. Martin based on module level dependencies. Total number of abstract types divided by the total number of concrete types. The metric has a range of [0,1]. 0 means that the container contains no abstract types. 1 means that the container contains nothing but abstract types.
Categories: Robert C. Martin
Abstractness (System)
Description: Abstractness according to Robert C. Martin based on system level dependencies. Total number of abstract types divided by the total number of concrete types. The metric has a range of [0,1]. 0 means that the container contains no abstract types. 1 means that the container contains nothing but abstract types.
Categories: Robert C. Martin
Distance (Module)
Description: Distance according to Robert C. Martin based on module level dependencies. Abstractness + Instability - 1. The metric has a range of [-1,1]. This is a variation of the original metric definition. A negative sign means 'in the zone of pain' and a positive sign means 'in the zone of uselessness'. A 'good' value should be around 0.
Categories: Robert C. Martin
Distance (System)
Description: Distance according to Robert C. Martin based on system level dependencies. Abstractness + Instability - 1. The metric has a range of [-1,1]. This is a variation of the original metric definition. A negative sign means 'in the zone of pain' and a positive sign means 'in the zone of uselessness'. A 'good' value should be around 0.
Categories: Robert C. Martin
Instability (Module)
Description: Instability according to Robert C. Martin based on module level dependencies. The metric has a range of [0,1]. If there are no outgoing dependencies, then the Instability will be 0 and the measured element is stable. If there are no incoming dependencies, then the Instability will be 1 and the measured element is instable. Stable means that the element is not so easy to be changed. Instable means that it is easier to be changed.
Categories: Robert C. Martin
Instability (System)
Description: Instability according to Robert C. Martin based on system level dependencies. The metric has a range of [0,1]. If there are no outgoing dependencies, then I will be 0 and the measured element is stable. If there are no incoming dependencies, then I will be 1 and the measured element is instable. Stable means that the element is not so easy to be changed. Instable means that it is easier to be changed.
Categories: Robert C. Martin
Number of Incoming Dependencies (Module)
Description: Number of incoming dependencies on module level.
Categories: Robert C. Martin
Number of Incoming Dependencies (System)
Description: Number of incoming dependencies on system level.
Categories: Robert C. Martin
Number of Outgoing Dependencies (Module)
Description: Number of outgoing dependencies on module level.
Categories: Robert C. Martin
Number of Outgoing Dependencies (System)
Description: Number of outgoing dependencies on system level.
Categories: Robert C. Martin
Average Complexity
Description: Weighted average modified cyclomatic complexity
Categories: Thomas J. McCabe
Cyclomatic Complexity
Description: Cyclomatic complexity according to Thomas J. McCabe. Number of decision points in a method plus one for the method entry.
Categories: Thomas J. McCabe
Extended Cyclomatic Complexity
Description: As cyclomatic complexity adding the number of logical '&&' and '||' operations.
Categories: Thomas J. McCabe
Modified Cyclomatic Complexity
Description: As cyclomatic complexity but switch statements only add 1 independent from the number of cases.
Categories: Thomas J. McCabe
Modified Extended Cyclomatic Complexity
Description: As cyclomatic complexity but switch statements only add 1 independent from the number of cases and adding the number of logical '&&' and '||' operations.
Categories: Thomas J. McCabe
Code Churn (30d)
Description: Number of lines added or removed in the last 30 days
Categories: Change History
Code Churn (365d)
Description: Number of lines added or removed in the last 365 days
Categories: Change History
Code Churn (90d)
Description: Number of lines added or removed in the last 90 days
Categories: Change History
Code Churn Rate (30d)
Description: Percentage of lines added or removed in the last 30 days based on total lines
Categories: Change History
Code Churn Rate (365d)
Description: Percentage of lines added or removed in the last 365 days based on total lines
Categories: Change History
Code Churn Rate (90d)
Description: Percentage of lines added or removed in the last 90 days based on total lines
Categories: Change History
File Changes (30d)
Description: Number of committed file changes in the last 30 days
Categories: Change History
File Changes (365d)
Description: Number of committed file changes in the last 365 days
Categories: Change History
File Changes (90d)
Description: Number of committed file changes in the last 90 days
Categories: Change History
Number of Authors (30d)
Description: Number of developers who have worked on this item in the last 30 days
Categories: Change History