阅读下列关于程序测试计划的叙述,在回答问题1至问题4。
某程序P包括A~H八个模块,其结构如图1-1所示,其中模块D与G需要调用公共模块E。
现计划采用自顶向下方法执行程序P的测试项目,该项目包括多个作业。设作业A的任务是对模块A进行测试,作业B的任务是对模块B进行测试,…,依次类推。作业P的任务是对程序P进行整体测试。表1-1列出了该项目各作业计划所需的天数、至少必须的天数(即再增大花费也不能缩短的天数)以及每缩短1天测试所需增加的费用。
表1-1
作业 | 计划所需天数 | 至少必须的天数 | 每缩短1天所需 增加的费用(元) |
A | 2 | 1 | 500 |
B | 5 | 3 | 1000 |
C | 7 | 4 | 2500 |
D | 4 | 3 | 2000 |
E | 4 | 2 | 2000 |
F | 3 | 2 | 1500 |
G | 5 | 4 | 2500 |
H | 4 | 2 | 2000 |
P | 5 | 5 |
【问题3】 (1)如果要求该测试项目比原计划提前1天完成,则至少应增加多少费用,应将哪些测试作业缩短1天 (2)如果要求该测试项目在(1)的基础上再提前1天完成,则至少应再增加多少费用,应再将哪些测试作业缩短1天 |
参考答案:
解析:[解答要点] (1)将作业A缩短1天,需要增加500元 (2)再将作业B缩短1天,需要再增加1000元
[分析]: 为了提前完成项目,必须在关键路径上缩短某些作业的时间。为了节省成本,应选择增加费用最少的作业,缩短其时间。由于缩短某作业的时间后,可能引起关键路径的变化,所以缩短多天的做法需要一次次逐步仔细考虑。 在原计划基础上,为缩短项目1天,应在关键路径上,选择最省钱(增加费用最少)的作业,缩短1天。根据题中给出的表,应选择作业A缩短其1天,增加费用500元。这样做后,关键路径尚没有变化,但作业A已经不能再缩短了。 在此基础上,为再缩短该项目1天,应选择作业B,缩短其1天,增加费用1000元。注意此时,以下三条路径都是关键路径:0-1-2-5-6-7,0-1-3-4-6-7,0-1-3-4-5-6-7。