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

表1 工作量估计表              表2 人员分配表

开发阶段
估计所需人月数
开发阶段
分组人数
详细设计
6
软件工程师
程序员
编码与单元测试
16
详细设计
2
0
集成测试
12
编码与单元测试
3
2
合计
34
集成测试
3
0

A.1.2 B.2.8 C.3.6 D.4.2

【正确答案】 B
【答案解析】[解析] 由表1可知,编码与单元测试阶段所花费的时间大约是15个月,即1名软件工程师需要15个月的时间才能完成。根据题目的假设:该阶段软件工程师的生产率是程序员的2倍,则 1名程序员需要花费30个月才能完成。
根据表1和表2给出的数据,可得到如表3所示的开发时间。

表3 开发信息表

开发阶段
估计所需人月数
分组人数
所需时间(月)
软件工程师
程序员
详细设计
6
2
0
6/2=3
编码与单元测试
16
3
2
16/(3+1)=4
集成测试
12
3
0
12/3=4
合计
34
3+4+1=11

若按照表2的人员配置总共需要11个月才能完成这3个阶段的工作。若在每个阶段都增加1名软件工程,则得到如表4所示的开发时间。此时只需8.2个月就可以完成这3个阶段的工作,因此可以将工作缩短11-8.2=2.8个月。

表4 人员配置表

开发阶段
估计所需人月数
分组人数
所需时间(月)
软件工程师
程序员
详细设计
6
3
0
6/3=2
编码与单元测试
16
4
2
16/(4+1)=3.2
集成测试
12
4
0
12/4=3
合计
34
2+3.2+4=8.2