问题提出:
在程序9的后置处理阶段,学生X统计出新开发的和更改的代码行数为29,然后把这个数据需要记在项目计划总结表中;接下来,需要把时间记录日志中各阶段的实际时间数据记录在项目计划总结表中。请问如何实现?
问题解答:
问题的解决如表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.6
PSP项目计划总结表的示例
学生 学生X 日期 10/21/96 。
程序 程序号# 9 。
教师 先生Z 程序设计语言 Ada 。
。
总 结 |
|
Minutes/LOC |
|
LOC/Hour |
|
Defects/KLOC |
|
过程效益 |
|
A/FR |
|
程序规模(LOC) |
|
新开发与更改的 |
|
最大规模 |
|
最小规模 |
|
开发时间/min |
计划 |
实际 |
累计 |
累计百分比 |
计划 |
5 . |
11 . |
15 . |
4.5 . |
设计 |
0 . |
12 . |
12 . |
3.6 . |
编码 |
74 |
85 |
146 |
43.9 |
代码复查 |
|
|
|
|
编译 |
25 . |
28 . |
49 . |
14.7 . |
测试 |
52 . |
49 . |
92 . |
27.6 . |
后置处理 |
10 . |
11 . |
19 . |
5.7 . |
总计 |
166 . |
196 . |
333 . |
100.0 . |
最大时间 |
224 . |
|
|
|
最小时间 |
108 . |
|
|
|
引入的缺陷 |
|
计划 |
|
设计 |
|
编码 |
|
代码复查 |
|
编译 |
|
测试 |
|
总计 |
|
排除的缺陷 |
|
计划 |
|
设计 |
|
编码 |
|
|
|
|
代码复查 |
|
|
|
|
编译 |
|
|
|
|
测试 |
|
|
|
|
总计 |
|
|
|
|
为了完成表11.6的累计时间值的计算,学生X将此表与表11.5中此列的值加起来。表11.6中累计时间百分比的值为每个阶段的累计时间值除以总计的累计时间值333再乘100。这些值的计算过程如下:
1、总的新开发的与更改的代码行数
累计Loc=19+29=48
2、计划阶段
累计计划时间=4+11=15
累计计划时间百分比=100*15/333=4.5
3、设计阶段
累计设计时间=0+12=12
累计设计时间百分比=100*12/333=3.6
4、编码阶段
累计编码时间=61+85=146
累计编码时间百分比=100*146/333=43.9
5、编译阶段
累计编译时间=21+28=49
累计编译时间百分比=100*49/333=14.7
6、测试阶段
累计测试时间=43+49=92
累计测试时间百分比=100*92/333=27.6
7、后置处理阶段
累计后置处理时间=8+11=19.
累计后置处理时间百分比=100*19/333=5.7
8、总开发时间
总开发时间累计=137+196=333
使用程序9的数据,学生X可以估计出下一个项目中花费在每个阶段的时间。不过为了更加实用,应该使用几个项目的平均时间。累计和累计百分比列就是这样计算的。对于表11.5程序8的累计列数据使用了学生X开发程序的实际数值。当开发程序9时,他把程序8和程序9的实际数据加起来得到新的累计数据。这样,新的累计百分比数据也就是程序8和程序9的平均数。同理,对于程序10的项目计划总结表,可以使用程序8、程序9和程序10的平均数,一次类推。
总结:
项目不同,总的开发时间也是不一样的。但是,时间在各个阶段的分布却比较稳定。当然,这取决于过程的质量。最初应用PSP时,可能有三分之一到一半的时间花费在编译和测试阶段来查找和修复程序的缺陷。
|