1 软件度量值指标

1.1 可维护性指数

  表示源代码的可维护性,数值越高可维护性越好。该值介于0到100之间。绿色评级在20到100之间,表明该代码具有高度的可维护性;黄色评级在10到19之间,表示该代码适度可维护;红色评级在0至9之间,表示低可维护性。

1.2 圈复杂度

  它是通过计算程序流中不同代码路径的数量来创建的,用来表示一个程序的复杂性。具有复杂控制流的程序需要更多的测试才能获得良好的代码覆盖率,并且不易维护。

  以下两种情况会在计算圈复杂度时加1:

  •   分支(if、while、do)

  •   switch中的case语句  

  例如:

//圈复杂度1

public void Method()

{

Console.WriteLine("Hello World!");

}

//圈复杂度3

public void Method(bool condition1, bool condition2)

{

if (condition1 || condition2)

{

Console.WriteLine("Hello World!");

}

}

//圈复杂度8

public void Method(DayOfWeek day)

{

switch (day)

{

case DayOfWeek.Monday:

Console.WriteLine("Today is Monday!");

break;

case DayOfWeek.Tuesday:

Console.WriteLine("Today is Tuesday!");

break;

case DayOfWeek.Wednesday:

Console.WriteLine("Today is Wednesday!");

break;

case DayOfWeek.Thursday:

Console.WriteLine("Today is Thursday!");

break;

case DayOfWeek.Friday:

Console.WriteLine("Today is Friday!");

break;

case DayOfWeek.Saturday:

Console.WriteLine("Today is Saturday!");

break;

case DayOfWeek.Sunday:

Console.WriteLine("Today is Sunday!");

break;

}

}

1.3 继承深度

  计算在继承层次结构中的继承深度,继承树中层次结构越深,类的开发、测试和维护就越复杂,因为层次结构越深,理解特定方法和字段的定义和(或)重新定义的难度也就越大。

1.4 类耦合度

  类耦合是一个类是如何与另一个类连接或依赖的度量。好的做法是总是实现较少的依赖类或低级耦合。

1.5 代码行数

  表示代码行数,计数基于IL代码,因此不是源代码文件中的确切行数。一个非常高的计数可能表明一种类型或方法试图做太多的工作,应该分开。它还可能表明类型或方法可能难以维护。

2 计算代码度量值

Step 01 运行“计算代码度量值”

Step 02 查看“代码度量值结果”

Step 03 使用“代码度量值结果”

  筛选:

  导出:

  列管理:

  计算代码度量值:

参考文档:https://www.codeguru.com/csharp/csharp/cs_network/improving-code-quality-with-visual-studio-code-metrics.html

原文:http://www.cnblogs.com/MeteorSeed/p/7865426.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

通过 Visual Studio 的“代码度量值”来改进代码质量相关推荐

  1. Visual Studio使用技巧,创建自己的代码片段

    1.代码片段的使用示例 在编写代码中常会使用代码片段来提高我们的编写代码的效率,如:在Visual Studio中编写一个 for(int i = 0; i < length;i++) { } ...

  2. Visual studio 中调试ASP程序、Javascript 代码 - 刘稻博客

    2019独角兽企业重金招聘Python工程师标准>>> PS: 1.在调试asp时,要先附加进程(附加到:自动:与具体调试网站对应的 dllhost.exe 或 w3wp.exe . ...

  3. mingw w64 v8.0.0_使用Visual Studio Code和MinGW编译运行C++代码

    官网:<Using Mingw in Visual Studio Code>,本文稍做了简化,喜英文版可直接移步. 工具准备 首先应该准备如下工具: 安装对应版本的Visual Studi ...

  4. Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

    前言 最近想要切换编辑工具,之前工作中使用过 Source Insight,Eclipse,CLion 来写 C++ 代码.目前来说 Source Insight 已经非常古老,只有编写代码还说得过去 ...

  5. visual studio如何运行并调试C语言代码

    首先点击visual studio 启动应用 点击创建新项目选项 选择空项目,再点击下一步 输入项目名称,项目的存储位置可以根据自己的需求选择,然后点击创建即可 如何新建代码源文件 找到解决方案资源管 ...

  6. Visual Studio DSL 入门 13---结合T4生成代码

    在前面的几节里,我们已经完成了一个简单的状态机设计器,通过这个状态机可以设计出一个状态流,但是如果只是这样,我们直接使用UML设计工具就行了,何必自己开发呢? 我们走的是模型驱动开发路线,呵呵,注意哥 ...

  7. Visual Studio/AnkhSVN在VS中出现SVN代码冲突的解决方法

    写代码,团队开发,涉及到公共文件,偶尔翻车代码冲突在所难免,在Visual Studio2013集成了AnkhSVN代码管理插件遇到代码冲突,解决方法如下: 1.查看哪里代码冲突 在报冲突的Confl ...

  8. Visual Studio 打开程序提示仅我的代码怎么办

    工具-->选项--->调试---->常规-->禁用"启动仅我的代码"

  9. 利用Visual Studio的搜索功能和正则表达式统计代码行数

    在"整个解决方案"中使用"正则表达式"查找以下字段即可: ^:b*[^:b#/]+.*$

最新文章

  1. 剑指offer:面试题37. 序列化二叉树
  2. 【图像处理】透视变换 Perspective Transformation
  3. Angular组件——投影
  4. IEEE R10 2021 Special Call For Proposals Related To CoViD‘19
  5. win oracle 重启命令,Windows下命令行如何启动Oracle10g?
  6. MySQL存储过程相互调用
  7. 详解Go语言的计时器
  8. diag开关什么意思_1P空气开关便宜、好用,为什么电工师傅却要我们买2P空气开关?...
  9. 《实战化白帽人才能力白皮书》发布 | 三阶能力展现白帽人才态势
  10. 如果你需要从不同的服务器(不同域名)上获取数据就需要使用跨域 HTTP 请求...
  11. 【LeetCode】【数组】题号:485,最大连续1的个数
  12. android窗口动画和壁纸关系,Android壁纸管理(Android N)
  13. 分享一份适合写进简历的软件测试项目
  14. 自己制作深度学习数据集教程
  15. 中国过氧化二异丙苯市场投资状况分析与前景趋势研究报告2022年版
  16. C++写的简易的控制台游戏
  17. 大数据时代网络舆情与社会治理研究
  18. Python正则表达式-re模块奇技淫巧
  19. java map 队列_JavaSE-List/Map/Queue
  20. 最全面的Java面试题-----是你更好的掌握java知识

热门文章

  1. mybatis中mysql转义讲解
  2. 有没有一段代码,让你觉得人类的智慧也可以璀璨无比?【转】
  3. 在Ant的javac中指定源文件编码方式,以避免警告: 编码 GBK 的不可映射字符的错误...
  4. 黄聪:wordpress如何开启文章格式post format
  5. C++学习之路: 线程封装(基于对象编程)
  6. 淘宝快捷通道——百汇家园
  7. 【原创】在C#中调用其它程序
  8. 什么是Session?
  9. ABP Framework 5.2 RC 版本发布及新增功能介绍
  10. 微服务之 EShop on dapr概览