单选题 某软件开发从详细设计到集成测试各阶段所需工作量估计(按软件工程师人月数估计)如表9-1所示,这几个阶段分配的软件工程师和程序员人数如表 9-2所示。假设编码与单元测试阶段,软件工程师的生产率是程序员的2倍。若在该项目的这几个阶段都增加一名软件工程师,则这几个阶段可以缩短 (111) 个月完成任务(假定各个开发阶段串行工作)。
表9-1 所需工作量估计
开发阶段
估计所需人月数
详细设计
6
编码与单元测试
12
集成测试
12
合计
30
  表9-2 分配的软件工程师和程序员人数
开发阶段
分组人数
软件工程师
程序员
详细设计
2
0
编码与单元测试
2
2
集成测试
2
0


【正确答案】 D
【答案解析】[分析] 因为试题已经假定各开发阶段串行工作,所以只要根据表9-1和表9-2,逐阶段计算就可以了。
(1)详细设计需要6软件工程师人月,但只分配2名软件工程师,所以需要3个月。
(2)编码与单元测试需要12软件工程师人月,但只分配2名软件工程师和2名程序员。因为在编码与单元测试阶段,软件工程师的生产率是程序员的 2倍,即2名程序员相当于1名软件工程师,因此共需4个月。
(3)集成测试需要12软件工程师人月,但只分配2名软件工程师,所以需要6个月。
以上三个阶段合计13个月。若在该项目的这几个阶段都增加一名软件工程师,则
(1)详细设计需要6软件工程师人月,分配3名软件工程师,所以需要2个月。
(2)编码与单元测试需要12软件工程师人月,分配3名软件工程师和2名程序员。因为在编码与单元测试阶段,软件工程师的生产率是程序员的2倍,即2名程序员相当于1名软件工程师,因此共需3个月。
(3)集成测试需要12软件工程师人月,分配3名软件工程师,所以需要4个月。
以上合计9个月,即这几个阶段可以缩短4个月完成任务。