代码改变世界

[转载]VS2008 的计算代码度量值

2008-06-19 07:45  金色海洋(jyk)  阅读(2200)  评论(1编辑  收藏  举报
VS2008 里面加了一个 计算代码度量值的功能,那么到底是什么呢?我在msdn 里找到了这个,拷贝下来做个记录。 

摘自 http://msdn.microsoft.com/zh-cn/library/bb385914.aspx

Visual Studio Team System
代码度量概述

代码度量是一组软件度量值,使开发人员可以更好地了解他们正在开发的代码。利用代码度量,开发人员可以了解哪些类型和/或方法应该返工或进行更彻底的测试。开发团队可以识别潜在的风险、了解项目的当前状态,并跟踪软件开发的进度。

下面的列表显示了 Visual Studio 计算的代码度量结果:

  • 可维护性指数 – 计算一个介于 0 和 100 之间的指数值,表示维护代码的相对容易度。值越大表示可维护性越好。

  • 圈复杂度 – 衡量代码在结构上的复杂程度。它通过计算程序流中的不同代码路径的数目来创建。具有复杂控制流的程序需要更多测试才能实现良好的代码覆盖率,并且不容易维护。

  • 继承深度 – 指明扩展到类层次结构根的类定义的数目。层次结构越深,则越难了解特定方法和字段是在何处定义或/和重新定义的。

  • 类耦合 – 通过参数、本地变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及属性修饰来衡量与唯一类的耦合。良好的软件设计要求类型和方法应具有较高的内聚力和较低的耦合。耦合较高表示设计难以重用和维护,这是因为它与其他类型之间存在许多依存关系。

  • 代码的行数 – 指明代码中的大概行数。该计数基于 IL 代码,因此并不是源代码文件中的确切行数。计数过高可能表示某个类型或方法正在尝试执行过多的工作,应予以拆分。还可能表示该类型或方法可能难以维护。

“匿名方法”就是没有名称的方法。匿名方法通常用于将代码块作为委托参数进行传递。在某个成员(如方法或访问器)中声明的匿名方法的度量结果与声明该方法的成员相关联,而不与调用该方法的成员关联。

有关代码度量如何处理匿名方法的更多信息,请参见匿名方法和代码分析

某些软件工具和编译器会生成一些代码并添加到项目中,而项目开发人员看不到这些代码,或者不能更改这些代码。在代码度量计算度量值时,通常会忽略生成的代码。这样,度量值便可以反映开发人员能够看到和更改的内容。

不会忽略为 Windows 窗体生成的代码,因为开发人员可以看到和更改这些代码。

当 Visual Studio 分析代码后,将在“代码度量结果”窗口中显示结果。该窗口顶部有一个工具栏,还有一些用于显示计算结果的列。

“层次结构”列包含一个代码层次结构树视图,您可以展开或折叠此视图以查看所需的详细信息级别。其余各列显示计算的结果。您可以根据需要隐藏或排列结果列。有关更多信息,请参见如何:添加、移除列或对列进行重排

“可维护性”列中除了数字结果外还包含一个图标。绿色图标表示可维护性程度相对较高。黄色图标表示中等可维护性程度。红色图标表示可维护性低或存在潜在的故障点。这些颜色指示符与 FxCop 规则 AvoidUnmaintainableCode 所使用的严重级别相对应。如果可维护性指数低于 10,则此规则将激发错误;如果指数介于 10 和 20 之间,则激发警告;如果指数高于 20,则既不激发错误,也不激发警告。可维护性指数是以下三种度量值的综合体现:圈复杂度、代码行数以及算术复杂度。可维护性指数的值没有单位。

您可以按任何列对该窗口中的结果进行排序。若要进行排序,请单击列标题。再次单击该列标题,该窗口将按相反的顺序排序。

2