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

表5-4

开 发 阶 段
估计所需人月数
 详细设计  6
 编码与单元测试  12
 集成测试  12
 合计  30

表5-5

开 发 阶 段
分组人数
软件工程师 程序员
 详细设计 2 0
 编码与单元测试 2 2
 集成测试 2 0


【正确答案】 D
【答案解析】这是一道考查软件开发工作量估算的试题。
由表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