今天我们探讨一下VS2017中【计算代码度量值】涉及到的相关指标。
可维护性指数
可维护性指数用一个公式计算,考虑到了圈复杂性、代码行以及Halstead量,Halstead量也是一个度量,考虑操作符和操作数的总数。该指数的范围是0~100,数值越高就越容易维护。
圈复杂度
圈复杂度(Cyclomatic complexity)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。
在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系。
继承深度
类具有多少个父类。类并非越深越好,不同于生物分类学,在构造类以及类的继承关系时,应该充分考虑抽象的深度和广度,做到恰如其分,客观上深度不应超过6个。
类耦合度
耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。
内聚性是一个和耦合性相对的概念,一般而言低耦合性代表高内聚性,反之亦然。耦合性和内聚性都是由提出结构化设计概念的赖瑞·康斯坦丁所提出[1]。低耦合性是结构良好程序的特性,低耦合性程序的可读性及可维护性会比较好。
从学习软件编程的第一天起,就倾听老师的教诲,软件模块之间要做到高内聚、低耦合,当然绝对的无耦合是不存在的事物,无耦合往往意味着无所作为;而内聚性有体现出模块是否具有相对独立的职责且职责明确,模块与模块之间没有职责重叠。
代码行数
LOC(Lines of code),采用不同语言编写具有同样功能的程序,代码行数的量级上往往有很大差别,代码行数是衡量和评估软件系统规模的参考指标,但并不是衡量程序员绩效的金标准。
下面我们来看看如何通过VS2017计算代码度量值。
在解决方案上,依次进行【右键】【计算代码度量值】:
如下将显示代码度量值结果:
在软件开发过程中,应该每固定周期衡量一下解决方案的代码度量值;如果在组织中进行开发,应该尽早设定各个代码度量值的阈值,因为指标过低或越界,就意味着一定的代码坏味道,是时候进行适当的重构。