Skip to content

圈复杂度Cyclomatic complexity

什么是圈复杂度

圈复杂度(Cyclomatic complexity,简写 CC)也称为条件复杂度,是模块结构复杂度的度量,数量上表现为独立路径的条数,即合理的预防错误所需测试的最少路径条数。 成立于1976年的McCabe&Associates公司开发出了McCabe Cyclomatic Complexity Metric(圈复杂度)技术。 Metric以软件复杂度测量的数目为基础,能帮助工程师识别难于测试和维护的模块,圈复杂度已经成为评估软件质量的一个重要标准。 人们可以用圈复杂度对软件的复杂度和质量进行衡量,来安排工程进度,在成本、进度和性能之间寻求平衡。

研究表明,程序的Cyclomatic复杂性与其可维护性和可测试性之间存在相关性,这意味着对于更高复杂性的文件,在修复、增强或重构源代码时出错的概率更高。 但是要注意,McCabe度量数大的程序,不见得结构化就不好。 例如,Case语句是良结构的,但可能有很大的McCabe度量数(依赖于语句中的分支数),这可能是由于问题和解决方案所固有的复杂性所决定的。 使用者应当自己决定如何使用McCabe度量所提供的信息。

圈复杂度阈值

Cyclomatic ComplexityRisk Evaluation
1-10一个没有太大风险的简单模块
11-20具有中等风险的更复杂模块
21-50高风险的复杂模块
51 and greater风险极高的不稳定项目

我为什么建议前端重视「圈复杂度」?

https://juejin.cn/post/7340899332509368357

Contributors

作者:Long Mo
字数统计:441 字
阅读时长:1 分钟
Long Mo
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs