圈复杂度和变体

Cyclomatic Complexity and variants

本质、设计复杂度、扩展圈复杂度、圈复杂度之间有什么区别?

我正在使用 IntelliJ IDEA 插件检查此指标。

概览

设计复杂性衡量一种方法对其他方法的依赖性; 圈复杂度 衡量通过一种方法的不同路径的数量; 扩展圈复杂度添加了一个控制逻辑度量来表示"the minimal number of tests necessary to completely exercise a method's control flow."

详情

Design complexity

This metric reports the design complexity of a method. The design complexity is related to how interlinked a method's control flow is with calls to other methods. Design complexity ranges from 1 to V(g), the cyclomatic complexity of the method. Design complexity also represents the minimal number of tests necessary to exercise the integration of the method with the methods it calls.

Cyclomatic complexity

This metric reports the cyclomatic complexity of each non-abstract method. Cyclomatic complexity is a graph-theoretic measure of the number of distinct paths through each method. In practice, it is basically 1 + the number of branch points in the method.

Extended cyclomatic complexity

This metric reports the extended cyclomatic complexity of each non-abstract method. Cyclomatic complexity is a graph-theoretic measure of the number of distinct paths through each method, augmented by a measure of the complexity of the decision points. In practice, it is basically 1 + the number of branch points in the method plus the number of logical 'and' and 'or' operations. Cyclomatic complexity also represents the minimal number of tests necessary to completely exercise a method's control flow.