软件测试Assignment 4

本文详细解析了Halstead复杂度的计算方法,并通过一个代码片段示例,展示了如何计算包括程序词汇表长度、预测长度、体积、级别等在内的11项指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

题目要求

  1. 计算下列代码片段的 Halstead 复杂度的11项内容:
if (month < 3) {
month += 12;
–year;
}
return dayray((int)(day + (month + 1) * 26/10 + year +
year/4 + 6 * (year/100) + year/400)% 7);

答案

OperatorNumber of OccurrencesOperandNumber of Occurrences
if1month3
<131
+=1121
-1year5
return1day1
dayray111
int1261
+6101
*241
/461
%11001
4001
71
n 1 = 11 n_1 = 11 n1=11 N 1 = 20 N_1 = 20 N1=20 n 2 = 13 n_2 = 13 n2=13 N 2 = 19 N_2 = 19 N2=19
  1. Halstead 程序词汇表长度 Program vocabulary: n = n 1 + n 2 n = n_1 + n_2 n=n1+n2 = 24
  2. Halstead 程序长度或简单长度 Program length: N = N 1 + N 2 N = N_1 + N_2 N=N1+N2 = 39
  3. 以 N^ 表示程序的预测长度 Calculated program length: N ^ = n 1 l o g 2 n 1 + n 2 l o g 2 n 2 \hat{N} = n_1 log_2 n_1 + n_2 log_2 n_2 N^=n1log2n1+n2log2n2 = 86.159464
  4. 程序体积或容量 Volume: V = N l o g 2 ( n ) V = Nlog_2(n) V=Nlog2(n) = 178.813538
  5. 程序级别 Level: L ^ = 2 n 1 ∗ n 2 N 2 \hat{L} = \frac{2}{n_1} * \frac{n_2}{N_2} L^=n12N2n2 = 0.124402
  6. 程序难度 Difficulty: D = 1 L ^ D = \frac{1}{\hat{L}} D=L^1 = 8.038462
  7. 编程工作量 Effort: E = V * D = V/L^ = 1437.385744
  8. 语言级别: L ′ = L ^ ∗ L ^ ∗ V L^{&#x27;} = {\hat{L}} * {\hat{L}} *V L=L^L^V = 2.767289
  9. 编程时间 (hours): T ^ = E S ∗ f \hat{T} = \frac{E}{S * f} T^=SfE = 0.022182
  10. 平均语句大小: N 语 句 数 \frac{N}{语句数} N = 9.75
  11. 程序中的错误数预测值: B = V 3000 = N l o g 2 ( n ) 3000 B = \frac{V}{3000} = \frac{Nlog_2(n)}{3000} B=3000V=3000Nlog2(n) = 0.059605
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值