考虑以下三个软件项:Program-X,Program-Y的控制流程图和Program-Z的控制流程图,如下所示
McCabe的环复杂度的值分别为Program-X,Program-Y和Program-Z。
(A) 4,4,7
(B) 3、4、7
(C) 4,4,8
(D) 4,3,8答案: (A)
解释:
The cyclomatic complexity of a structured program[a] is defined
with reference to the control flow graph of the program, a directed
graph containing the basic blocks of the program, with an edge
between two basic blocks if control may pass from the first to the
second. The complexity M is then defined as.
M = E − N + 2P,
where
E = the number of edges of the graph.
N = the number of nodes of the graph.
P = the number of connected components.
Source: http://en.wikipedia.org/wiki/Cyclomatic_complexity
For first program X, E = 11, N = 9, P = 1, So M = 11-9+2*1 = 4
For second program Y, E = 10, N = 8, p = 1, So M = 10-8+2*1 = 4
For Third program X, E = 22, N = 17, p = 1, So M = 22-17+2*1 = 7
这个问题的测验