如何比较两种估算方法的准确性?

Posted 麦哲思科技任甲林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何比较两种估算方法的准确性?相关的知识,希望对你有一定的参考价值。

有公司在做软件规模估算时,采用了经验法估计了代码行,又设置了难度系数,重用率,重用规模系数三个调整参数。如果初始估计规模为1KLOC,难度系数为1.1,重用率为20%,重用规模系数为50%,则调整后的规模为:1*1.1*(1-20%)+1*20%*50%=0.88+0.1=0.98KLOC。

 

我看到该估算方法后认为有些复杂,而且不好理解,有可能是做了无用功了,所以我想通过数据进行检验看看调整后的规模是否比初始的规模估计更准确,如果不如初始的规模估计更准确,则可以放弃三个调整系数。该公司A部门有11个历史项目的数据,有初始的规模估计、调整后的规模估计、以及实际规模见下表:

初始规模估计

难度系数

重用率

重用规模系数

调整后规模估计

实际规模

调整前-实际

调整后-实际

调整前离差平方和

调整后离差平方和

60

1.1

0%

0%

66

55

5

11

25

121

200

1.1

20%

100%

216

230

-30

-14

900

196

180

0.8

20%

100%

151.2

145

35

6.2

1225

38.44

100

0.8

0%

0%

80

75

25

5

625

25

80

0.7

0%

0%

56

80

0

-24

0

576

50

1.2

0%

0%

60

50

0

10

0

100

60

1.2

0%

0%

72

80

-20

-8

400

64

100

1.2

0%

0%

120

110

-10

10

100

100

240

1

0%

0%

240

260

-20

-20

400

400

230

1.3

0%

0%

299

270

-40

29

1600

841

100

1.3

0%

0%

130

110

-10

20

100

400

标准差

18

13

如何判断调整前与调整后估算的准确性呢?

1 在表格中增加了这么几列:

调整前-实际=初始规模估计-实际规模

调整后-实际=调整后规模估计-实际规模

调整前离差平方和=调整前-实际的平方

调整后离差平方和=调整后-实际的平方

          2 在表格中计算两个统计量:

调整前离差的标准差=SQRT(调整前离差平方和/项目个数)=18

调整后离差的标准差=SQRT(调整后离差平方和/项目个数)=13

因为前者大于后者,所以调整前的估计准确性不如调整后的准确性高。

3 对调整前后的残差做箱线图对比:

可以看到调整后的箱体整体趋势更接近于0,也说明调整后比调整前更准确。

从箱线图中还可以观察到,调整前的规模估计大都比实际值偏小,估计偏乐观。

有意思的是,同样采用该方法的另外一个部门B的历史数据发现,在B部门内,大家估计的结果偏悲观。但是也是调整后比调整前更准确。

历史项目的度量数据没有证明我的假设,因此就姑且让客户坚持他们定义的估算方法,不做调整。

以上是关于如何比较两种估算方法的准确性?的主要内容,如果未能解决你的问题,请参考以下文章

如何准确计算Java对象的大小

提高模型精确率的两种方法

如何评估工作量--三点估算

三点估算是质量管理的工具和方法吗

gini基尼系数,累积准确度分布,AUC(风控模型核心指标)

如何查看dcs系统负荷率