可维护(Maintainability)性弱点度量

可维护性度量是CISQ给出的4个通过静态代码可以度量的指标之一。

本文件描述了CISQ自动化系统中包含的20个弱点漏洞。可维修性的质量特性测量。这些描述已经简化。根据已发布的OMG®规范中的描述,该规范使用了来自其他公司的形式。OMG元模型,用于指定机器可处理XMI中表示的弱点符号。下表给出了每个弱点及其唯一的cisq标识符描述性名称,并对作为建议的缺陷

 

进行更全面的描述补救。

可维护性弱点

软件包含的弱点使软件难以理解的程度的度量。或改变,导致维修时间和成本过多,缺陷注入率更高。

 

CISQ标识符

描述

陈述

ASCMM-MNT-1

跳转到switch语句之外

移除控制流转移到switch语句之外(例如,使用go to、continue、break 语句)

ASCMM-MNT-2

继承于过多的类

移除一个类继承于过多的父类(默认的继承于类的阈值为1)

ASCMM-MNT-3

硬编码

移除一个固定文字用于初始化一个变量、字段、成员等(除了简单的整型和和静态常量、字段、成员等)

ASCMM-MNT-4

过度耦合

移除扇出值过大的函数、方法、过程,存储过程、子例程等。也就是说,引用太多应用程序中的其他对象。(默认扇出数阈值为5)

ASCMM-MNT-5

修改循环条件值

移除循环体内修改局部变量、字段、成员等影响循循环执行的语句

ASCMM-MNT-6

过量注释掉的代码

移除函数、方法、过程、存储过程、子例程等包含太多注释的代码(默认注释掉指令的最大阈值为2%)。

ASCMM-MNT-7

圆形依赖关系

移除一个模块又引用到自身的模块(例如,这种模式在java中意味着循环引用包)

ASCMM-MNT-8

过大的文件

移除一个有太多代码行的文件(默认阈值是1000行)

ASCMM-MNT-9

过多或过少的水平层

移除应用架构层包括太多和太少的水平层(不包括垂直使用层),阈值是4-8之间。

ASCMM-MNT-10

层跨越组件

移除定义在一个应用架构层下的两个架构层中的部分函数、方法、过程、存储过程、子程序等

ASCMM-MNT-11

过大的圈复杂度

移除圈复杂度过大的功能、方法、过程、存储过程、子例程等。(默认最大圈复杂度阈值是20)

ASCMM-MNT-12

跨层调用

移除高水平层直接调用不在应用架构层定义,又不与上层相邻的调用低水平层的功能,函数、方法、过程,存储过程、子程序等(这不包括可从任何水平层)

ASCMM-MNT-13

过多的参数

移除函数、方法、过程,存储过程、子例程等中已签名的过多参数(默认阈值为7)

ASCMM-MNT-14

过多数据操作的控制元素

移除有过多SQL或文件操作的功能、方法、过程、存储过程、子例程等。(默认阈值为7)

ASCMM-MNT-15

公有的数据元素

移除公有的变量、字段、成员等

ASCMM-MNT-16

交叉元数据存取

移除从类的方法存取一个字段,或从其它类成员存取一个字段

ASCMM-MNT-17

过多的继承层次

移除过大的类的继承层次(默认阈值是7)

ASCMM-MNT-18

过多的子类

移除具有过大子类数的子类(默认阈值是7)

ASCMM-MNT-19

元素冗余

移除功能、方法、过程、存储过程、子例程等中的拷贝-粘贴的代码

ASCMM-MNT-20

死代码

一个功能或方法中没有被应用中的任何其它代码所引用。(应用定义了代码调用功能或方法所能搜索的范围)

A4.1软件工程学院(SEI)可维护性指数

代码模块(如程序)集合的可维护性通过以下公式计算:

171-5.2(ln(avev))-0.23(aveV(g’)-16.2(ln(aveLOC))+50(sin(sqrt(2.4(perCM)))

其中aveV是平均Halstead volume,aveV(g’)是平均圈复杂度,aveLOC是代码行数,perCM是模块中注释的百分比。

每一个平均值都是模块计数上各个度量的比率。perCM是一个RatioMeasure模块总行数上注释的行数。

每个生成的度量都被重新调整为相同的度量单位,命名为维护性索引点。

aveV重新校准50–5.2(ln(aveV)

aveV(g’)重新校准50–0.23(aveV(g’)

aveLOC重新校准21–ln(aveLOC)

perCM重新校准50(sin(sqrt(2.4(percmCM)))

然后,SEI索引是上述四个模块的一个集合度量,作为聚合器添加。

除非另有说明,否则将使用知识发现元模型(KDM)对引用的软件工件进行建模。

 

一行代码是任何不是注释或空行的程序文本行,不管语句的数量如何。或语句的片段。这具体包括包含程序头、声明和可执行和不可执行语句2这里的代码行意味着完全扩展的代码行,包括拷贝书籍,包括和评论。

 

(完)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值