Last Modified : |
August 12, 2002 |
Subsystem Specification
Classes / Abstraction |
Members |
Interface |
Note |
MODEL
Keep current state of world. Communicate with dispatcher, storage, scheduler, and cab console.
|
Customer event list. Busy cab list. Zone list.
Reference to dispatcher UI, storage, scheduler, cab console. |
Interface with DispatcherUI and Cab Consoles using RMI. Since the Scheduler, DataStore, and Mapper all reside on the same central system as the Model, methods are called using regular method calls on references to each component. |
|
DISPATCHER UI
Input customer info into system. Override system.
|
put your idea |
put your idea |
|
STORAGE
Back up current state of world. Store data for report.
|
put your idea |
put your idea |
|
SCHEDULER
Schedule customer for ride. Communicate with cab console and dispatcher.
|
Reference to the Model Mapper function |
put your idea |
Compute customer zone. Find free cab in the zone. Confirm reservation with driver through cab console. Send the result to model and dispatcher.
|
CAB CONSOLE
Communicate with scheduler.
|
Reference to cab object |
put your idea |
|
DISPATCHER
Contain the dispatcher information.
|
id / name log on time
|
put your idea |
|
CAB
Contain the cab information.
|
id / number driver id state (busy, break, free) size (van, sedan) mileage (so far / day) $$ (so far/day) # of pickups (so far / day) location meter info |
Cabs are objects within the Model that represent the actual location of a real-life taxi. Each cab has its own reference to a driver at all times and to a customer when the taxi is busy. The cab's placement is an indication of its state. If the cab is placed in the busy cab list, then that means it has either been reserved to a customer or it is currently driving the customer to its destination. If the cab is in a zone's cab list, then it is waiting to be scheduled with a customer. |
|
CAB DRIVER
Contain the cab information.
|
id / name
|
Cab drivers are placed into a cab object when a Cab Console registers with the Model. The cab driver is used for maintaining statistics on drivers to be used in reports requested by a manager or supervisor. |
|
CUSTOMER
Contain the customer information.
|
id / name phone number priority pick up time pick up location / zone # destination / zone # credit card info
|
put your idea |
|
ZONE
Contain the zone information.
|
id / number perimeter cab list info |
Zones are held within a list located in the Model. Each zone maintains a queue of cabs currently waiting in the zone. Zones are specified upon boot-up. |