案例11.1  项目计划总结表计划示例

 
 

 

问题提出:
  已知学生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.827.67。以LOC/Hour为单位的效率值常被工程师用于分析开发的生产率。


11.5   PSP项目计划总结表的示例

学生     学生X            日期    10/7/96     
程序                    程序号#   8      
教师     先生Z            程序设计语言  Ada    
                                               

总 结
计划
实际
累计
Minutes/LOC
    7.82    .
     7.21     .
    7.21     .
LOC/Hour
    7.67    .
    8.32    .
    8.32     .
Defects/KLOC
过程效益
A/FR
程序规模(LOC)
新开发与更改的
     26     .
    19    .
    19    .
最大规模
     36     .
最小规模
     18     .
开发阶段时间/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   .
引入的缺陷
计划
实际
累计
累计百分比
Def/Hour
计划
设计
编码
代码复查
编译
测试
  总计
排除的缺陷
计划
实际
累计
累计百分比
Def/Hour
计划
设计
编码
代码复查
编译
测试
  总计

 

11.4   PSP项目计划总结表的示例
学生     学生X            日期    10/21/96    
程序                    程序号#   9      
教师     先生Z            程序设计语言  Ada    
                                               

总 结
计划
实际
累计
Minutes/LOC
    7.21    .
            .
           .
LOC/Hour
    8.32    .
          .
           .
Defects/KLOC
过程效益
A/FR
程序规模(LOC)
新开发与更改的
     23     .
          .
          .
最大值
     31     .
最小值
     15     .
开发阶段时间/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   .
引入的缺陷
计划
实际
累计
累计百分比
Def/Hour
计划
设计
编码
代码复查
编译
测试
  总计
排除的缺陷
计划
实际
累计
累计百分比
Def/Hour
计划
设计
编码
代码复查
编译
测试
  总计

问题解决部分说明如下:

  1. Minutes/LOC。在制定程序9计划的时,先找到以前程序实际的Minutes/LOC数据。从表11.5中的程序8中,取该项的值7.21Minutes/LOC
    如果没有更好的方法,在计划新项目时,就先使用从前的实际的值。以后积累一定的数据后,在计划新项目时,就可以不再使用前一个项目的实际值,而使用以前开发的所有项目的平均值。


  2. LOC/Hour。学生X计算的LOC/Hour60/7.218.32


  3. 程序规模。学生X用第6章的方法估计新开发的和更改的代码行数、以及其最大值和最小值。在表11.4所示示例中,这些值分别为233115

  4. 开发阶段时间的总计。利用估计的规模为23行,每行代码所花费的时间7.21 Minutes/LOC ,可以计算出大概的开发时间为7.21×23166min

  5. 开发时间最大值。最长时间估计为每行代码所花费的时间乘以程序规模的最大值:7.21×31224min

  6. 开发时间最小值。最小时间估计为每行代码所花费的时间乘以程序规模的最小值:7.21×15108min

    估计总的开发时间为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的计划数据与实际数据比较接近。