原来布置的作业在这里:
http://www.cnblogs.com/xinz/archive/2010/11/28/1890300.html
正如在现实生活中一样, 软件项目的需求也会经常发生变化. 原题假设所有电梯都停靠所有楼层, 我们改成各个电梯停靠的楼层不尽相同。这在实际生活中也很常见。
例如原来:
Elevator name | Service floor list | Passenger limit | Weight limit |
1 | All floors | 10 | 800 kg |
2 | All floors | 10 | 800 kg |
3 | All floors | 20 | 1600 kg |
4 | All floors | 20 | 2000 kg |
现在 (注意粗体字的变化):
Elevator name | Service floor list | Passenger limit | Weight limit |
1 | floors (1-15) | 10 | 800 kg |
2 | floor (1, 15-20) | 10 | 800 kg |
3 | All floors | 20 | 1600 kg |
4 | floors (1, 10-20) | 20 | 2000 kg |
那么, 乘客的行为是否有变化? 例如, 我是一个乘客, 打算从一楼到16楼。 我来到一楼, 按了 [向上] 的按钮, 一会儿之后, 电梯1 的门开了, 我知道这个电梯是到1-15 楼, 但是我不能等了(万一调度程序脑残, 直达的电梯总也不来, 怎么办?), 我先进了这个电梯, 按15楼, 到了15楼, 出电梯, 再按[向上] , 等能到 16 楼的电梯 。
上面我们做了一个假设: 乘客如果发现目前开门的电梯能让自己更靠近目的地, 他应该乘坐这个电梯, 而不会死等直达的电梯. 这是最符合实际的假设么?
在实际生活中, 当电梯是从1楼直达15楼的时候, 电梯运行的速度会大大加快,如何在测试框架中体现这一可以帮助优化的情况?
现在的问题是:
1) 原来设计的测试框架应该改变么? 应该做什么样的改变, 才能模拟并测试这样的情况? 测试数据应该改变么?
2) 你的电梯调度算法应该做什么改进?