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