博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过 Visual Studio 的“代码度量值”来改进代码质量
阅读量:5108 次
发布时间:2019-06-13

本文共 1875 字,大约阅读时间需要 6 分钟。

原文:

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 使用“代码度量值结果”

  筛选:

  导出:

 

  列管理:

   计算代码度量值:

 

参考文档:

posted on
2017-12-27 15:15 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/8125891.html

你可能感兴趣的文章
[笔记]STM32使用非8M晶振时如何修改代码
查看>>
个人对vue生命周期的理解
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
Section 1.2 dualpal
查看>>
存储(硬件方面的一些基本术语)
查看>>
Dithering-视觉的奇特现象
查看>>
观察者模式
查看>>
转】MyEclipse使用总结——MyEclipse文件查找技巧
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Java-文件上传和下载
查看>>
Memory and Trident(CodeForces 712B)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
投资策略 ——摘自凤凰网
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>
spring boot 整合 云之讯 demo
查看>>
CoolBlog开发笔记第4课:数据库模型设计
查看>>
翻译:给19岁有志青年的建议 Advice for ambitious 19 year olds
查看>>
DenyHosts 阻止SSH暴力攻击
查看>>