这是来自stan4j的一些复杂性指标。
一个eclipse类结构分析工具。
我喜欢这个工具和指标。我将指标视为统计数据、指标、警告消息。有时由于某些方法或某些类确实有一些复杂的逻辑使它们变得复杂,应该做的是密切关注它们,检查它们是否需要重构它们或仔细检查它们,由于通常他们很容易出错。我也用它作为分析工具来学习源代码,因为我喜欢从复杂到简单的学习。实际上它包括其他一些指标,如 Robert C. Martin Metrics、Chidamber & Kemerer Metrics、Count Metrics 但我最喜欢这个
复杂性指标
圈复杂度度量
圈复杂度 (CC)
方法的圈复杂度是方法的控制流图中的决策点数加一。决策点出现在 if/for/while 语句、case/catch 子句和类似的源代码元素中,其中控制流不仅仅是线性的。单个(源代码)语句引入的(字节代码)决策点的数量可能会有所不同,这取决于例如布尔表达式的复杂性。一个方法的圈复杂度值越高,测试该方法控制流图的所有分支所需的测试用例就越多。
平均圈复杂度
圈复杂度指标在应用程序、库、包树或包的所有方法上的平均值。
Fat Metrics
人工制品的脂肪量度是人工制品的适当依赖图中的边数。依赖图类型取决于度量变量和选择的工件:
Fat
应用程序、库或包树的 Fat 度量是其子树依赖图的边数。此图包含包树层次结构中的所有工件的子项,因此也包括叶包。(要在合成视图中查看适当的图表,必须禁用结构资源管理器的平面包切换。如果所选工件是库,则必须启用显示库切换,否则必须禁用。)
包的 Fat 度量是其单元依赖图的边数。该图包含包的所有顶级类。
一个类的 Fat 度量是它的成员图的边数。该图包含该类的所有字段、方法和成员类。(此图和 Fat 值仅在使用 Level of Detail 成员而不是 Class 执行代码分析时可用。)
Fat for Library Dependencies (Fat - Libraries)
应用程序的 Fat for Library Dependencies 度量是其库依赖图的边数。此图包含应用程序的所有库。(要在合成视图中查看适当的图表,必须启用结构浏览器的显示库切换。)
Fat for Flat Package Dependencies (Fat - Packages)
应用程序的 Fat for Flat Package Dependencies 度量是其平面包依赖图的边数。该图包含应用程序的所有包。(要在合成视图中查看适当的图表,必须启用结构资源管理器的平面包切换,并且必须禁用显示库切换。)
一个库的 Fat for Flat Package Dependencies 度量是它的平面包依赖图的边数。该图包含库的所有包。(要在合成视图中查看适当的图表,必须启用结构浏览器的平面包和显示库切换。)
Fat for Top Level Class Dependencies (Fat - Units)
应用程序或库的 Fat for Top Level Class Dependencies 度量是其单元依赖图的边数。该图包含应用程序或库的所有顶级类。(对于合理的应用程序,它太大而无法可视化,因此无法在组合视图中显示。单元依赖关系图可能仅显示为包。)