Rule Definition
The effort and time for diagnosis of deficiencies or causes of failures, or for identification of parts to be modified is directly related to the number of execution paths, i.e. the complexity of the control flow.
Analyzability declines with increasing Cyclomatic Complexity.
Each modification must be correct for all execution paths. Cyclomatic Complexity computes the number of the linearly independent paths, a lower bound of all execution paths ignoring multiple iterations.
Changeability declines with increasing Cyclomatic Complexity.
Complete testing requires coverage of all execution paths. Cyclomatic Complexity computes the number of the linearly independent paths, a lower bound of all execution paths ignoring multiple iterations.
Testability declines with increasing Cyclomatic Complexity.
Remediation
Review the design of the Artifact to reduce number of independent paths. E.g.: Reduce the number of conditional statements.
Reference
Carnegie Mellon's Software Engineering Institute on Cyclomatic Complexity
http://www.sei.cmu.edu/reports/95cm028.pdf
NIST (National Institute of Standards and Technology)
Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric
http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/sttoc.htm
Related Technologies
ASP
DB2 Server
Forms
Visual Basic
.Net
Cobol
C++
PL/SQL
JEE
Microsoft T-SQL
Sybase T-SQL
DB2 z/OS
Technical Criterion
CWE-1121 - Excessive McCabe Cyclomatic Complexity
About CAST Appmarq
CAST Appmarq is by far the biggest repository of data about real IT systems. It's built on thousands of analyzed applications, made of 35 different technologies, by over 300 business organizations across major verticals. It provides IT Leaders with factual key analytics to let them know if their applications are on track.