【答案解析】这是一道考查软件开发工作量估算的试题。
由表5-4可知,编码与单元测试阶段所花费的时间大约是12个人月,即1名软件工程师需要12个月的时间才能完成。根据题目的假设:该阶段软件工程师的生产率是程序员的2倍,则1名程序员需要花费24个月才能完成。
根据表5-4和表5-5给出的数据,可得到如表5-6所示的开发时间。
表5-6 开发阶段 | 估计需人月数 | 分组人数 | 所需时间(月) | 软件工程师 | 程序员 | | 详细设计 | 6 | 2 | 0 | 6/2=3 | | 编码与单元测试 | 12 | 2 | 2 | 12/(2+1)=4 | | 集成测试 | 12 | 2 | 0 | 12/2=6 | | 合计 | 30 | | | 3+4+6=13 | |
若按照表5-5的人员配置总共需要13个月才能完成这3个阶段的工作。若在每个阶段都增加1名软件工程,则得到如表5-7所示的开发时间。此时只需9个月就可以完成这3个阶段的工作,因此可以将工作缩短13-9=4个月。
表5-7 开发阶段 | 估计需人月数 | 分组人数 | 所需时间(月) | 软件工程师 | 程序员 | | 详细设计 | 6 | 3 | 0 | 6/3=2 | | 编码与单元测试 | 12 | 3 | 2 | 12/(3+1)=3 | | 集成测试 | 12 | 3 | 0 | 12/3=4 | | 合计 | 30 | | | 2+3+4=9 | |