获取参考组件的呼叫计数

时间:2016-01-25 12:24:40

标签: reference visual-studio-2015 code-analysis assembly-references

我正在编写一份文档,分析大型代码库的质量和可维护性。作为本报告的一部分,我希望包括一个程序集对解决方案中另一个程序集的引用数量的计数。这将给出每个组件与另一个组件紧密耦合的概念。

Visual Studio 2015 Enterprise(或第三方插件)中是否有可以为我提供此号码的工具?

到目前为止,我已经尝试过Visual Studio的代码映射工具,但这似乎只是生成带箭头的可视化,然后我必须手动计算,而且这似乎只是类/结构级别,而不是每个类/结构中单个引用的数量。

3 个答案:

答案 0 :(得分:1)

NDepend(http://www.ndepend.com/)提供此功能。对于您描述的探索性质量分析类型,它在更一般的术语中也非常有用。

答案 1 :(得分:0)

您可以使用FxCop / Code Analysis执行此操作,其中包含maintainability rules,您可能最感兴趣的是:

  

CA1506:避免过多的类别耦合
  这个规则测量类   通过计算类型的唯一类型引用的数量来耦合   或方法包含。

我认为一个类的阈值为80,方法的阈值为30。

设置起来比较容易,基本上你只需要在项目中进行配置:

enter image description here

打开规则集可以让您选择要运行的规则集(以及它们是警告还是错误),有许多规则。

答案 2 :(得分:0)

为了扩展妮可的答案,我已经测试了NDepend的试用版,我相信我已经找到了他们正在寻找的数字,他们称之为"依赖矩阵"。我对它的理解如下。

绿色数字是当前行中的程序集引用与当前列中的数字相关的程序集的次数。蓝色数字是与当前列中的数字相关的程序集引用当前行中的程序集的次数。由于装配体不能对其自身进行外部参考,因此对角线上不会出现数字。

Dependdency Matrix

然而,我不明白为什么,例如,单元格0,4中的数字是93但是单元格4中的数字是0;不应该这些数字相等吗?装配4仅使用装配4与装配4使用装配0相同的次数 - 这些数字如何不同?

更新:我在此工具上观看了一个PluralSight视频,发现绿色框中的数字表示引用程序集中有多少方法引用引用的程序集。相应蓝色框中的数字表示引用程序集正在使用引用程序集中的方法数。这些数字都没有精确地表示一个程序集对另一个程序集的调用次数(因为一个方法可能包含多个引用)但我相信它确实提供了足够的粒度,因为方法应该符合SRP,因此方法中的所有引用都应该与单一行为有关。