翻译自:
http://blogs.msdn.com/fxcop/archive/2007/10/03/new-for-visual-studio-2008-code-metrics.aspx
Visual Studio 2008 引入了一项新的功能,代码度量(Code Metrics),来帮助程序员找出那些复杂而不可维护的代码。
下面是针对一个虚构的应用程序做的代码度量:
从上面的运行结果可以看出,主要有五方面的度量指标,下面来分别讲解。
类型间耦合度(Class Coupling)
针对左边的每一个层次,这个度量值表示这个层次的项依赖于其他类型的个数。统计数量排除了基本数据类型和其他内建类型,比如Int32, String或者Object。
数值越高,这个项受其他依赖项的变化影响越大。数值越低,表明本项被重用的可能性越大。下图表示如何计算耦合度数值:
如图所示,Account与另外两个类型耦合,Address和Order,所以耦合度是2.但是,Country不依赖于任何其他类型,所以耦合度是0.
继承的深度(Depth of Inheritance)
在类型这个层次,继承的深度表明在继承树上,有多少个类型在这个类型之上。比如,一个类型直接从Object派生,则继承深度为1。
在命名空间和项目层次上,继承深度是它所包含的所有类型中继承深度的最大值。继承深度不考虑接口的实现深度。
继承深度越大,可能带来“过度设计”的问题,测试和维护的难度都会加大。
下面是继承深度的计算方法:
如图所示,在上面的继承关系中,ListControl和Label的继承深度为3,而Component的继承深度为1.
圈复杂度(Cyclomatic Complexity)
针对每个层次,本度量值表示代码中独立路径的总数。统计方法就是简单地计算决策点的数量,决策点包括if代码块,switch的case语句,do, while, foreach 和for loops。
这个度量值也很好的表明了要达到全覆盖测试时,需要的单元测试的数量。
通常来说,这个度量值越小越好。
下面介绍复杂度的计算原理:
代码行数(Lines of Code)
针对每个层次,本度量值表示可执行的代码的总行数,不包括空格,注释,括号,成员申明以及类型、命名空间本身占用的行。
通常来说,行数越少越好,呵呵。
下面是代码行数的计算方法:
可维护性指数(Maintainability Index)
在成员和类型层次,用0到100之间的一个数值来表明成员或者类型的可维护性。
在命名空间和程序集层次,可维护性指数是它包括的所有类型的指数的平均值。本指数基于很多其他的度量值,包括霍尔斯特德量 (Halstead Volume,霍尔斯特德提出的关于软件科学的理念,并引入物理领域的分析方法提出的一个计算软件复杂度的概念,通过分析操作符和操作数得出。),圈复杂度和代码行数。
数值越低,表明代码可维护性越差。
可维护性指数通过不同的图标来直观的表明某个项的可维护性,如下表:
图标 可维护性水平取值范围
绿色
可维护性高 20<=可维护性指数<=100
黄色
可维护性中等 10<=可维护性指数<=19
红色可维护性低
0<=可维护性指数<=9
这些指示标记让问题一目了然,方便解决。
相关推荐
架构分析是软件开发过程中不可或缺的一部分,Visual Studio 2010提供了多种工具来帮助开发者进行深入的代码分析,以提高软件质量和可维护性。 ##### 出色的代码架构分析 Visual Studio 2010内置了多种代码分析工具...
在IT领域,尤其是在数据库管理和开发中,Visual Studio作为强大的集成开发环境(IDE)扮演着重要角色。本篇文章将深入探讨Visual Studio中的两个关键组件:SQL Server Analysis Services (SSAS) 和 SQL Server ...
6. **Team Foundation Server 2008**:作为团队开发的重要组成部分,TFS 2008增加了对持续集成的支持,提供了代码度量、性能检查工具,以及改进的负载测试功能,帮助团队更有效地管理和优化项目。 7. **数据库开发*...
- **静态代码分析、代码度量**:提高代码质量和可读性。 - **编码的UI测试**:自动化的界面测试工具,确保UI的正确性。 **5. 单元测试** - 支持编写和运行单元测试,确保代码的健壮性和准确性。 **6. 专业测试...
Visual Studio 提供了“代码度量值”功能,使得开发团队能够量化这些关键因素,从而更好地理解和优化他们的代码库。 1. **可维护性指数**:这是衡量代码可维护性的指标,范围在0到100之间。一个较高的数值(20到100...
总结来说,Visual Studio Team System是企业级的项目管理解决方案,它以强大的源码管理、工作项跟踪、CI/CD、测试管理、报表分析以及协作功能,助力软件开发团队实现高效、透明的项目管理。无论你是敏捷开发的践行者...
7. **代码覆盖率分析**:解释代码覆盖率的概念,演示如何使用Visual Studio工具来度量测试对代码的覆盖程度。 8. **缺陷管理和跟踪**:介绍Visual Studio的缺陷追踪工具,学习如何记录、分类和跟踪软件缺陷,以便...
Visual Studio Code(VS Code)是一款由微软开发的免费、开源的跨平台代码编辑器,广泛用于编写现代网页和云应用。它内置了丰富的功能,尤其在软件测试方面提供了强大的支持。软件测试是确保代码质量的重要环节,它...
- **报告和分析**:支持数据驱动的决策制定,提供详尽的报表和度量指标。 #### 三、连接到 VSTS 1. **创建账户**: - 访问 VSTS 官方网站(https://www.visualstudio.com/),点击“Sign up for Team Services”...
- 在Visual Studio .NET中设置断点,然后运行程序以调试性能计数器的使用。 - 可以使用输出窗口或自定义UI显示收集到的性能数据。 6. **C++2010-03-12-如何启动操作系统性能计数器**: 压缩包中的文件可能是这个...
本文将探讨C++中常用的代码复杂度分析工具,它们的功能,以及如何在实际开发中应用这些工具。 代码复杂度分析是C++开发中不可或缺的一部分。通过使用Clang-Tidy、Visual Studio的代码度量工具、gprof等工具,开发者...
在IT行业中,源代码行数(Lines of Code, LOC)是一种常见的度量软件规模和复杂性的方法。"C#源代码行数统计工具"就是专为此目的设计的实用程序,它能够帮助开发者快速准确地计算出C#项目的源代码总量。这种工具在...
这需要运行时性能监控工具,如Visual Studio自带的性能分析器,或独立的工具如PerfMon。 总的来说,这个“软件度量实验简单的软件”项目旨在通过MFC实现一个小型应用,以此实践和学习软件度量的方法,包括功能点和...
《Visual Studio Team System XXXX 中的敏捷规划工具》 Visual Studio Team System (VSTS) 2010 提供了一系列的敏捷规划工具,旨在帮助敏捷团队进行高效且灵活的项目规划和管理。这些工具涵盖了从产品积压工作簿到...
本书旨在为那些希望利用Visual Studio 2005的强大功能来设计、构建和执行数据集成解决方案的开发者提供一个全面的入门指导。 ### SQL Server Integration Services (SSIS) SQL Server Integration Services是一种...
在实际使用中,Understand可以通过插件集成到常见的开发环境,如Visual Studio Code、Eclipse等,实现无缝的代码分析体验。它还支持命令行接口,方便自动化脚本和持续集成流程。 总的来说,Understand-3.1.670-...
《Visual Studio Team System面面观系列课程》是一个深入探讨微软开发工具Visual Studio Team System(VSTS)的全面性教程,本部分重点聚焦于VSTS在项目管理中的理论基础——Microsoft Solutions Framework (MSF)的...
【标题】"VS代码统计工具源码及运行程序"是一个专为Visual Studio(VS)项目设计的实用工具,它的主要功能是分析并统计项目中的代码行数、注释行数、空行数以及设计器生成的代码行数。通过这样的统计,开发者可以更...
在本示例中,我们将探讨如何在Visual Studio环境下创建和实现一个简单的多维数据集。 首先,让我们了解什么是多维数据集。多维数据集是一种数据组织方式,它以多维度的方式存储数据,如时间、产品、地区等,这些...