现代软件工程系列 结对编程 (II) 电梯调度程序新需求

原来布置的作业在这里:

    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) 你的电梯调度算法应该做什么改进?  

原文地址:https://www.cnblogs.com/xinz/p/1903759.html