2017-05-29 213 views
2

我要计算圈复杂度为仅包含一个evaluate像COBOL程序这一个:圈复杂度 - Cobol语言

EVALUATE x 
    WHEN x<0 ... 
    WHEN x=0 ... 
    WHEN x between 1 and 10 ... 
    WHEN OTHER ...` 
END EVALUATE.` 

我也计算圈复杂度为仅包含一个IF语句COBOL程序像这样:`

IF x<0 ... 
ELSE IF x=0 ... 
ELSE ... 

什么是计算CC的算法? 谢谢你的时间。

+1

您选择的标签说算法“是根据通过源代码的不同可能路径的数量来计算的......” –

回答

1

您可以在Wikipedia找到Cyclomatic Complexity的算法。

你将不得不画流程图和计算边缘和路径...有了这个和一些认为你应该能够做到这一点。

有两个有用的提示可以帮助你。

1)在一个结构化程序(没有gotos)中,CC结果等于条件数加上1。 2)如果仔细考虑它,你的EVALUTE语句和你的IF语句集合看起来就像是等价的代码。所以你应该期望计算出的CC值是相同的。