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.