软件测试作业5

计算下列代码片段的Halstead复杂度的11项内容

if(month < 3){
	month = month + 12;
	year = year - 1;
}
return dayray((int)(day + (month + 1) * 26/10 + year + year / 4 + 6 * (year/100) + year / 400) % 7);

操作符出现次数
if1
<1
+=1
1
+6
*2
/4
%1
操作数出现次数
month3
year5
dayray1
day1
31
121
11
261
101
41
61
1001
4001
71

由两个表格可以得知:n1 = 8, N1 = 16, n2 = 14, N2 = 20;

  1. Halstead 程序词汇表长度 Program vocabulary: n = n 1 + n 2 = 8 + 14 = 22
  2. Halstead 程序长度或简单长度 Program length: N = N1 + N2 = 16 + 20 = 36
  3. 以 N^ 表示程序的预测长度 Calculated program length: N^ = n1log2(n1) + n2log2(n2) = 8 *log2(8) + 14 * log2(14) = 77.3
  4. 程序体积或容量 Volume: V = Nlog2(n) = 36 * log2(22) = 160.5384
  5. 程序级别 Level: L^ = (2/n1)(n2/N2) = (2/8)(14/20) = 2.8
  6. 程序难度 Difficulty: D = 1/L^ = 1/2.8 = 0.357
  7. 编程工作量 Effort:E = V * D = 160.5384 * 0.357 = 57.3122088
  8. 语言级别: Lʹ = L^ * L^ * V = 2.8 * 2.8 * 160.5384 = 1258.62106
  9. 编程时间 (hours): T^ = E/(S * f) = 57.3122088/(3600*18) = 0.00088445
  10. 平均语句大小: N/语句数 = 36 / 5 = 7.2
  11. 程序中的错误数预测值: B = V/3000 = 160.5384/3000 = 0.0535128
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值