Metric | Symbol | Description | Calculation | Value Range |
# of methods (modules) | n | The total number of methods in the application | Count of methods in the application | 1 ≤ n ≤ ∞ |
Design complexity | S0 | The size or volume of the application design | S0 = ∑iv | 1 ≤ S0 ≤ ∞ |
Integration complexity | S1 | The size of the high level integration basis set of subtrees | S1 = S0 − n + 1 | 1 ≤ S1 ≤ ∞ |
Cyclomatic complexity | v or vg | The number of decision predicates in the module; the size of a basis set of paths for unit level testing | # design predicates + 1; v = e − n + 2 where e is the # of edges and n is the number of nodes in a flowgraph | 1 ≤ v ≤ ∞ v > 10 is considered risky; higher v is riskier |
Essential complexity | ev or evg | How well structured is the code; how easily is the code modularized (decomposed); how easily is the code maintained | The v of a reduced flowgraph where only single-entry, single-exit constructs are logically eliminated | 1 ≤ ev ≤ v; ev = 1 is considered good, higher ev is riskier |
Module design complexity | iv or ivg | The number of decision predicates (plus 1) that significantly impact calls to subroutines; the size of a basis set of paths for low level integration testing; iv risk is based on where the module is located; a management module should have a high iv, higher iv is riskier | The v of a reduced flowgraph where design predicates that do not significantly impact calls to subroutine are logically eliminated | 1 ≤ iv ≤ v |
Local data complexity | ldv (sdvlocal data) | The number of decision predicates (plus 1) that significantly impact the use of local data; the size of a basis set of paths for local data testing | The v of a reduced flowgraph where design predicates that do not significantly impact the use of local data | 0 ≤ ldv ≤ v; lower ldv is riskier |
Public global data complexity | pgdv (sdvglobal data) | The number of decision predicates (plus 1) that significantly impact the use of public global data; the size of a basis set of paths for public data testing | The v of a reduced flowgraph where design predicates that do not significantly impact the use of public global data | 0 ≤ pgdv ≤ v; higher pgdv is riskier |
Parameter data complexity | pdv (sdvparameter data) | The number of decision predicates (plus 1) that significantly impact the use of parameter data; the size of a basis set of paths for parameter data testing | The v of a reduced flowgraph where design predicates that do not significantly impact the use of parameter data | 0 ≤ pdv ≤ v; lower pdv is riskier |