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


【正确答案】 D
【答案解析】[分析] 因为试题已经假定各开发阶段串行工作,所以只要根据表15-1和表15-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个月完成任务。