问题提出:
已知学生X完成的程序8的项目计划总结表如表11.5所示,据此,请完成学生X完成程序9时填写的项目计划总结表的计划部分?
问题解答:
问题的解决如表10.3中所示,学生X使用了以前的程序或作业编号日志中的历史数据7.82
Minutes/LOC。当然,如果没有以前的数据,就不得不猜测了。
除非你有特别好的理由使用另外的方法进行估计,否则就使用历史平均效率,从作业标号日志中最近程序的平均时间中得出。
总结部分的第二项是LOC/Hour(每小时编写的代码行数)。同样,把开始作业之前的估计值和完成作业之后得到的实际值填入表格。LOC/Hour是用60除以Minutes/LOC得到的。在表10.3的示例里,学生X计划的Minutes/LOC的值是7.82,所以计划的Minutes/Hour就是60/7.82=7.67。以LOC/Hour为单位的效率值常被工程师用于分析开发的生产率。
表11.5
PSP项目计划总结表的示例
学生 学生X 日期 10/7/96 。
程序 程序号# 8 。
教师 先生Z 程序设计语言 Ada 。
。
总 结 |
|
Minutes/LOC |
|
LOC/Hour |
|
Defects/KLOC |
|
过程效益 |
|
A/FR |
|
程序规模(LOC) |
|
新开发与更改的 |
|
最大规模 |
|
最小规模 |
|
开发阶段时间/min |
计划 |
实际 |
累计 |
累计百分比 |
计划 |
10 . |
4 . |
4 . |
2.9 . |
设计 |
19 . |
0 . |
0 . |
0 . |
编码 |
118 |
61 |
61 |
44.6 |
代码复查 |
|
|
|
|
编译 |
12 . |
21 . |
21 . |
15.3 . |
测试 |
29 . |
43 . |
43 . |
31.4 . |
后置处理 |
15 . |
8 . |
8 . |
5.8 . |
总计 |
203 . |
137 . |
137 . |
100.0 . |
最大时间 |
282 . |
|
|
|
最小时间 |
141 . |
|
|
|
引入的缺陷 |
|
计划 |
|
设计 |
|
编码 |
|
代码复查 |
|
编译 |
|
测试 |
|
总计 |
|
排除的缺陷 |
|
计划 |
|
设计 |
|
编码 |
|
|
|
|
代码复查 |
|
|
|
|
编译 |
|
|
|
|
测试 |
|
|
|
|
总计 |
|
|
|
|
表11.4
PSP项目计划总结表的示例
学生 学生X 日期 10/21/96 。
程序 程序号# 9 。
教师 先生Z 程序设计语言 Ada 。
。
总 结 |
|
Minutes/LOC |
|
LOC/Hour |
|
Defects/KLOC |
|
过程效益 |
|
A/FR |
|
程序规模(LOC) |
|
新开发与更改的 |
|
最大值 |
|
最小值 |
|
开发阶段时间/min |
计划 |
实际 |
累计 |
累计百分比 |
计划 |
5 . |
. |
. |
. |
设计 |
0 . |
. |
. |
. |
编码 |
74 . |
|
|
|
代码复查 |
|
|
|
|
编译 |
12 . |
21 . |
21 . |
15.3 . |
测试 |
29 . |
43 . |
43 . |
31.4 . |
后置处理 |
15 . |
8 . |
8 . |
5.8 . |
总计 |
203 . |
137 . |
137 . |
100.0 . |
最大时间 |
282 . |
|
|
|
最小时间 |
141 . |
|
|
|
引入的缺陷 |
|
计划 |
|
设计 |
|
编码 |
|
代码复查 |
|
编译 |
|
测试 |
|
总计 |
|
排除的缺陷 |
|
计划 |
|
设计 |
|
编码 |
|
|
|
|
代码复查 |
|
|
|
|
编译 |
|
|
|
|
测试 |
|
|
|
|
总计 |
|
|
|
|
问题解决部分说明如下:
- Minutes/LOC。在制定程序9计划的时,先找到以前程序实际的Minutes/LOC数据。从表11.5中的程序8中,取该项的值7.21Minutes/LOC。
如果没有更好的方法,在计划新项目时,就先使用从前的实际的值。以后积累一定的数据后,在计划新项目时,就可以不再使用前一个项目的实际值,而使用以前开发的所有项目的平均值。
- LOC/Hour。学生X计算的LOC/Hour为60/7.21=8.32。
- 程序规模。学生X用第6章的方法估计新开发的和更改的代码行数、以及其最大值和最小值。在表11.4所示示例中,这些值分别为23、31和15。
- 开发阶段时间的总计。利用估计的规模为23行,每行代码所花费的时间7.21
Minutes/LOC ,可以计算出大概的开发时间为7.21×23=166min。
- 开发时间最大值。最长时间估计为每行代码所花费的时间乘以程序规模的最大值:7.21×31=224min。
- 开发时间最小值。最小时间估计为每行代码所花费的时间乘以程序规模的最小值:7.21×15=108min。
估计总的开发时间为166min,再利用表11.5中的累计百分比的数据就可以估计出开发程序9各个阶段所需时间。学生X进行了如下的计算:
a、计划
估计的计划阶段所用时间为2.9×166/100=4.81,或大约5min。
b、设计
估计的设计阶段所用时间为0×166/100=0。
c、编码
估计的编码阶段所用时间为44.6×166/100=74.04,大约时74min。
d、编译
估计的编译阶段所用时间为15.3×166/100=25.40,大约时25min。
e、测试
估计的测试阶段所用时间为31.4×166/100=52.12,大约时52min。
f、后置处理
估计的后置处理阶段所用时间为5.8×166/100=9.63,大约时10min。
总结:
当第一次用PSP开发程序时候,没有以前的项目数据可参考。由于学生X在程序8的设计时没有历史数据,只好靠猜测。因此,通过比较表11.5的计划的和实际的数据可以看出:实际的时间分布与猜测有很大差别。对于程序9,学生X的计划数据与实际数据比较接近。
|