NASA - National Aeronautics and Space Administration
Follow this link to skip to the main content
+ Site Help & Preferences
Go
ABOUT NASA LATEST NEWS MULTIMEDIA MISSIONS MyNASA WORK FOR NASA

+ NASA Home
+ IVV Home
Metrics Data Program
MDP HOME
WHAT IS THE MDP?
CONTACT THE MDP TEAM
PROJECT RECRUITING
REPOSITORY OVERVIEW
REPOSITORY LISTING ACCESS
MDP Banner
COMPLEXITY METRICS

Cyclomatic Complexity | Cyclomatic Density | Decision Density | Design Complexity | Design Density | Essential Complexity | Essential Density | Global Data Complexity | Global Data Density | Maintenance Severity | Normalized Cyclomatic Complexity | Pathological Complexity

Cyclomatic Complexity (v(G))
Handle: Cyclomatic Complexity (v(G))
Description: It is a measure of the complexity of a modules decision structure. It is the number of linearly independent paths.
Observation: This metric is generated with McCabe IQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one path - one count.
Range: Minimum is one; right now the maximum record is 456 but it is otherwise unlimited.
Usage: This metric has been used by IV&V to prioritize their inspection of software modules. The complexity analysis is also standalone and has been delivered as a product.
Relationship: It's a measure of reliability from the standpoint of what is required to test the system. It is a predictor of error.
Threshold: McCabe threshold is ten.
Validation: There are two in-house studies that show that this metric as a predictor of error. The studies also show that 20, as a threshold, is a better predictor of error than 10.

+ Top

Cyclomatic Density (vd(G))
Handle: Cyclomatic Density (vd(G))
Description: It is the ratio of the module's cyclomatic complexity to its length in NCSLOC. The intent is to factor out the size component of complexity. It has the effect of normalizing the complexity of a module, and therefore its maintenance difficulty.  .
Observation: This metric is generated with McCabe IQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one path - one count.
Range: Minimum is one; right now the maximum record is 456 but it is otherwise unlimited.
Usage: This metric has been used by IV&V to prioritize their inspection of software modules. The complexity analysis is also standalone and has been delivered as a product.
Relationship: It's a measure of reliability from the standpoint of what is required to test the system. It is a predictor of error.
Threshold: McCabe threshold is ten.
Validation: Gill and Kemerer conducted a study that indicated that this is "shown to be a statistically significant single-value predictor of maintenance productivity."

+ Top

Decision Density (dd(G))
Handle: Decision Density
Description: Calculated as: Cond / Decision.
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range:
Usage:
Relationship:
Threshold:
Validation: There are no in-house studies of this metric currently available.

+ Top

Design complexity (iv(G))
Handle: Design Complexity (iv(G))
Description: Design complexity is a measure of a module's decision structure as it relates to calls to other modules. This quantifies the testing effort related to integration.
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one call - one count.
Range: Minimum of 1; maximum by definition cannot exceed the cyclomatic complexity.
Usage: This metric has been little used at the IV&V facility.
Relationship: It is a measure of the integration effort.
Threshold: It has no threshold.
Validation: We have two studies that show it is a predictor of error.

+ Top

Design Density (id(G))
Handle: Design Density
Description: Design density is calculated as: iv(G)/v(G).
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range: Maximum is one.
Usage:
Relationship:
Threshold:
Validation: There are no in-house studies of this metric currently available.

+ Top

Essential complexity (ev(G))
Handle: Essential Complexity
Description: Essential complexity is a measure of the degree to which a module contains unstructured constructs.
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range: Minimum is one. By definition it cannot exceed the cyclomatic complexity.
Usage: This metric has been used by IV&V to prioritize their inspection of software modules. The complexity analysis is also standalone and has been delivered as a product.
Relationship: It is a measure of maintainability. It is a predictor of error.
Threshold: The McCabe threshold is 4.
Validation: There are two in-house studies that confirm that this metric is a predictor of error. In one study it is a better predictor of error than v(G). In another, it is not.

+ Top

Essential Density (ed(G))
Handle: Essential Density
Description: Essential density is calculated as: (ev(G)-1)/(v(G)-1).
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range: Maximum is one.
Usage:
Relationship:
Threshold:
Validation: There are no in-house studies of this metric currently available

+ Top

Global Data Complexity (gdv(G))
Handle: Global Data Complexity
Description: Global Data Complexity quantifies the cyclomatic complexity of a module's structure as it relates to global/parameter data. 
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range: Minimum is one. By definition it cannot exceed the cyclomatic complexity. (Note:  A value of zero in the database indicates that this is not a relevant metric for the programming language of the metric)
Usage: .
Relationship: It is a measure of maintainability. It is a predictor of error.
Threshold:
Validation: There are no in-house studies of this metric currently available.

+ Top

Global Data Density (gd(G))
Handle: Global Data Density
Description: Global Data density is calculated as: gdv(G) / v(G).
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range:
Usage:
Relationship:
Threshold:
Validation: There are no in-house studies of this metric currently available

+ Top

Maintenance Severity (MAINT_SEV)
Handle: Maintenance Severity
Description: Maintenance Severity is calculated as: ev(G)/v(G).
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range:Maximum is one.
Usage:
Relationship:
Threshold:
Validation: There are no in-house studies of this metric currently available

+ Top

Normalized Cyclomatic Complexity (Norm v(G))
Handle: Normalized Cyclomatic Complexity
Description: Normalized Cyclomatic Complexity is calculated as: v(G) / nl.
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range:
Usage:
Relationship:
Threshold:
Validation: There are no in-house studies of this metric currently available

+ Top

Pathological Complexity (pv(G))
Handle: Pathological Complexity
Description: A measure of the degree to which a module contains extremely unstructured constructs.
Observation: This metric is generated using McCabeIQ 7.1.
Frequency: Frequency is determined by the requirements of each project.
Scale: This is one unstructured path - one count.
Range:
Usage:
Relationship:
Threshold:
Validation: There are no in-house studies of this metric currently available

+ Top


+ Freedom of Information Act
+ Budgets, Strategic Plans and Accountability Reports
+ The President's Management Agenda
+ Privacy Policy and Important Notices
+ Inspector General Hotline
+ Equal Employment Opportunity Data Posted Pursuant to the No Fear Act
+ Information-Dissemination Priorities and Inventories
+ USA.gov
+ ExpectMore.gov
NASA
Editor: Jay Long
NASA Official: Lisa Montgomery
Last Updated: June 10, 2008
+ Contact IV&V
+ Contact Tools Lab
+ Metrics Data Program Usage Policy