Cyclomatic complexity 具有多个出口点的代码的圈复杂度

Cyclomatic complexity 具有多个出口点的代码的圈复杂度,cyclomatic-complexity,Cyclomatic Complexity,如何找到具有多个出口点的函数的圈复杂度? 维基页面上说 p-s+2,其中p是决策点的数量,s是退出点的数量 但是,更多的出口点是否应该增加圈复杂度,因为它可能导致更独立的路径 干杯 阿曼为什么不试一试?它将计算圈复杂度和许多其他代码度量。CC度量线性独立的路径。退出点不会向代码中添加路径,而是终止路径,从而减少CC(或者至少,它们肯定不会增加CC) 换句话说,添加出口点的唯一方法是添加更多路径(如IF)。否则,“裸”退出点之后的代码将无法访问,因此增加复杂性的是条件,而不是退出点。谢谢micha

如何找到具有多个出口点的函数的圈复杂度? 维基页面上说 p-s+2,其中p是决策点的数量,s是退出点的数量

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

干杯


阿曼

为什么不试一试?它将计算圈复杂度和许多其他代码度量。

CC度量线性独立的路径。退出点不会向代码中添加路径,而是终止路径,从而减少CC(或者至少,它们肯定不会增加CC)


换句话说,添加出口点的唯一方法是添加更多路径(如IF)。否则,“裸”退出点之后的代码将无法访问,因此增加复杂性的是条件,而不是退出点。

谢谢michael。在我发布问题后,我意识到了我的错误。我的错误源于JavaNcss(使用源文件)和Xdepend (使用jar文件)对于一段有多个退出点的代码,两者似乎都高估了CC。我已经发布了代码。 但使用公式p-s+2,答案似乎是4。有什么简单的解释我不知道吗

@理查德:我试过Xdepend(Ndepend的非.NET版本)。它看起来是个好工具。但是当它使用jar文件时,它高估了CC(他们在文档中接受了CC)。在这个阶段,我正在探索不同的工具。你知道有更好的吗

干杯