如何找到有多个出口点的函数的圈复杂度? 维基页面提示  P-S + 2,其中p为决策点和s的数量的出口点的数量。

但不应该更出口点增加圈复杂度,因为它可能导致更多的独立路径?

干杯,

阿曼

有帮助吗?

解决方案

为什么不试试 NDepend的的审判?它会计算圈复杂度以及许多其他代码度量。

其他提示

CC措施线性独立的路径。出口点不添加路径的代码,它们TERMINATE路径,从而减少了CC(或在最起码,他们当然不增加 CC)。

要换句话说,添加出口点的唯一方式是增加更多的路径(像条件IF)。否则,“裸”退出点之后的代码不可达,所以它是增加了复杂性的条件语句,而不是出口点。

感谢迈克尔。我已经意识到我的错误后,我张贴的问题。我的错误从观察到JavaNcss(使用源文件)和Xdepend朵朵 (使用的jar文件)两者似乎高估一段代码其中有多个出口点的CC。我在这里发布的代码。 但是,使用公式P-S + 2的答案似乎是4.是否有一些简单的解释我丢失?

@Richard:我试图Xdepend(NDepend的所述的非.NET版本)。它看起来的好工具。但是,当它使用的jar文件,它高估了CC(这是他们自己的文档中已接受)。在这个阶段,我正在探索不同的工具。你知道任何一个更好的?

干杯。

scroll top