Last Modified :

August 12, 2002

Subsystem    Specification

Classes / Abstraction






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.





Input customer info into system.

Override system.


put your idea

put your idea



Back up current state of world.

Store data for report.


put your idea

put your idea



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.




Communicate with scheduler.


Reference to cab object

put your idea



Contain the dispatcher information.


id / name

log on time


put your idea



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)


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.



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.



Contain the customer information.


id / name

phone number


pick up time

pick up location / zone #

destination / zone #

credit card info


put your idea



Contain the zone information.


id / number


cab list


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.