Software Engineering Course Project
Parking Garage/Lot
Project designed by Ivan Marsic
Department of Electrical and Computer Engineering
Rutgers University
Project website: http://www.ece.rutgers.edu/~marsic/books/SE/projects/
This project develops a computerized system to manage parking usage and online reservations in
a parking garage. It is intended to be done by a team of 4-6 undergraduate students during an
academic semester, in conjunction with lectures and other class activities. Other related projects
and a software engineering textbook are available for download at this website:
http://www.ece.rutgers.edu/~marsic/books/SE/
PP
1. Project Description
The purpose of this project is to track and manage occupancy of a parking garage and allow
customers to find and reserve available parking places.
The system-as-is can be described as follows. The parking garage currently operates without any
computerized system. The management has concerns about inefficiencies of sub-optimal usage of
parking space (lost opportunity/profit). Congestion inside the garage is often caused by drivers
searching for vacant spots. In addition, it is well known that a great deal of traffic congestion in
cities generally is caused by drivers looking for a parking space. Currently, the management
monitors the garage occupancy by having employees walk around the decks to inspect the
occupancy of individual spots. Some parking garages already monitor the occupancy using a
Ivan Marsic Rutgers University
2
sensor system which keeps tally of the vehicle entrance and exit events that occur in the parking
structures. Our customer garage decided to develop a more advanced system, called “Park-a-lot,”
as described next.
The parking garage will be remodeled so that the parking decks above the ground level will be
accessible only using an elevator that will lift the vehicles to different decks. There will be no
other way to reach the upper decks. All vehicles will depart the garage by descending down the
designated exit pathway to the ground level. Only passenger vehicles can be parked in this
parking garage. That is, large trucks, busses, etc., cannot enter this parking garage. The ground
level will be reserved for walk-in customers. All other levels will be reserved for registered
customers that made advance reservation. The parking garage will not distribute special
electronic tags or markings for customer vehicle identification. Instead, the garage will use
camera-based license-plate recognition systems.
Customers will register at the company website in advance of using the parking garage. At the
registration time, the customer will provide demographic information and a valid email and his or
Software Engineering Course Project Parking Lot/Garage
3
her credit card number. The customer may provide the license plate numbers for his or her
vehicle(s), but this is not required to allow registration of customers who do not own vehicles, but
will use a borrowed or rented vehicle. The same vehicle may appear under several customers, for
example different family members, or vehicle borrowed from a friend, or rented from a rental
agency. In case of a borrowed or rented vehicle, the customer will specify the registration plate
number at the time of making a parking reservation. If the specified registration number is
different from the number in the customer’s profile, the software-to-be will create a temporary
association of the number to this customer, and the association will be deleted after the parking
garage is used during the requested interval.
The registration software may also support guaranteed reservations, which allow customers to
make a (monthly) contract with the parking garage for a parking spot. For example, commuters
going regularly to work need parking on a daily basis during a predetermined period. Another
example is corporate customers who wish to keep permanently reserved parking space for their
personnel and visitors. Such customers are desirable because they can provide predictable and
steady income.
The following devices will be installed inside the parking garage (see Figure 1):
S1 & S2. The garage will have installed two license-plate readers: one at the lift platform and the
other at the end of the exit pathway. The reader will use a digital camera and a license-plate
recognition system widely used in toll stations in road-tolling systems. When a vehicle drives up
on to the lift platform, the license-plate reader will read the vehicle registration number. The other
reader will record the registration number of the departing vehicles.
S3. Every parking spot has installed a sensor that senses the occupancy of the spot by a vehicle.
The sensor could be based on visible or infra-red light, ultrasound, or a similar sensing technique.
D1. There will be a digital display installed on the ground floor that will indicate available
vacancies for the walk-in customers without reservations. This display will also indicate if the
ground-level parking area is full.
D2. There will be a digital display installed in the vehicle elevator to display various messages.
Other messages will include information for non-registered customers of a denied access to upper
decks, or information for registered customers of changes in their reservation.
D3. An entrance console will be installed in the vehicle elevator. If the vehicle registration
number is not recognized by the license-plate reader (e.g., because this is a borrowed or rented
vehicle and the customer did not know the license plate number at the time he or she made the
parking reservation), then the system will display the message for and offer the driver option to
enter the reservation confirmation number on the console installed in the vehicle elevator.
To prevent the drivers from entering the upper decks via the exit driveway, there will be a one-
way barrier installed at the endpoint of the exit driveway.
1.1 Business Policies for the System-to-be
The company has decided to adopt the following business policies for the system-to-be:
Ivan Marsic Rutgers University
4
S3.
Occupancy photosensor
D2.
Elevator display
S1.
Elevator camera
D3.
Elevator console
S2.
Exit camera
Figure 1: Parking garage system-to-be: sensors, displays, and other devices.
P1. If the license-plate recognition system does not recognize the vehicle registration number as
associated with a registered customer (e.g., a walk-in customer drives on to the lift platform by
mistake), the platform will remain motionless and the display board will notify the driver that the
registration number is not recognized, and request to enter their reservation confirmation number
or membership number (as per the business policy (P2) described next) on the console installed in
the vehicle elevator, or back away from the platform and park on the ground level. Vehicles with
a missing license plate will be treated the same as those with an unrecognized registration
number.
P2. A registered customer may be allowed to walk-in without a reservation if there are currently
available parking spots. If the vehicle registration number is recognized, but the system cannot
find an existing reservation associated with the customer who owns this vehicle, then the
customer will be offered to specify the expected duration of parking or departure time using the
console installed in the vehicle elevator. If the vehicle registration number is not recognized, the
customer will be offered to type in their membership number and the expected parking duration.
If the membership number is not recognized, the customer will be asked to back away.
P3. If a customer does not show up at the start of their reserved interval, the parking spot will be
held reserved for a given “grace period” (e.g., one-half hour) after the start of the reserved
Software Engineering Course Project Parking Lot/Garage
5
interval. If the customer arrives within the holding period, he or she shall park on their reserved
spot and will be billed for the full reserved period. The customer will be offered to pay an
additional fee to hold the reservation beyond the regular grace period.
P4. If the customer arrives any time after the grace period after the start of the reserved interval,
he or she will be asked for how long he or she plans to stay. If there are vacant and unreserved
spots during the desired interval, the customer will be offered to park. The customer will be billed
from the start of their original reservation until the end of their newly reserved interval.
P5. If the customer does not arrive during their reserved interval, he or she will be billed for the
entire duration of their reserved interval.
P6. If a customer departs before their reserved period expires (“understay”), he or she will be
billed for the full reserved period. The spot’s status in the database will be changed to “vacant”
immediately as the sensor detects that the vehicle has left, and the spot will be made available to
other customers for use.
P7. The customer is allowed to extend an existing reservation one-half hour prior to the scheduled
expiration if only if there are available (not reserved or occupied spots) for the desired period.
The reservation may be extended unlimited number of times if the extension is requested one-half
hour prior to the scheduled expiration if only if there are available for the desired period.
P8. If a customer fails to depart as scheduled after their reserved period expires, he or she will be
billed for the duration of their reserved period at a regular rate and at a higher rate for the duration
of their overstay. The rate will be increased progressively with the duration of overstay. A
notification will be sent to the customer about these actions.
P9. Each customer is allowed to have multiple standing reservations on his or her names, but
these reservations cannot be contiguous. A minimum of one hour gap is imposed between any
consecutive reservations, and a maximum of three outstanding reservations is allowed. If a
customer tries to make contiguous reservations, he or she should be offered to merge the
contiguous reservations into a single one, or to cancel or modify some of the contiguous
reservations.
P10. If a customer arrives and his or her reserved spot is still occupied by a previous customer
who failed to depart as scheduled, but there are other available spots, the arriving customer will
be offered to park on an available spot. The message will be displayed on the display inside the
vehicle elevator.
P11. The system may overbook the parking space reservations. The overbooking mechanism will
be described below.
P12. If a customer arrives on a full parking garage, because of overbooking or some customers
failed to depart as scheduled, the customer will be asked to leave without
parking, and will be given a rain check.
P13. The registered customer is billed once a month by emailing a
monthly statement, which includes parking fees or penalty fees, if any.
P14. If the recognized vehicle registration number is associated with a
single registered customer, the garage usage will be billed to this customer.
If the vehicle is currently associated with more than one registered
Ivan Marsic Rutgers University
6
T
customer, the vehicle will be billed to the customer with the current temporal association with this
vehicle number, which is created at the time of the parking reservation request.
he practice of overbooking (policy (P11))—accepting reservations for more spots than are
available by forecasting the number of no-show reservations, overstays, understays, and
walk-ins, with the goal of attaining 100 percent occupancy—is common in many service
industries, such as airlines and hotels. For example, the book Hotel Front Office Management (by
James A. Bardi, 4th Edition, John Wiley & Sons, Inc., Hoboken, NJ, 2007) describes how
overbooking works in the hotel industry.
The operator always wants to minimize the financial loss due to no-shows and other issues. The
occupancy management policy is based on management of the occupancy categories into which
customers are placed: those with confirmed reservations, those with guaranteed reservations,
overstays, understays, and walk-ins. The reservation is guaranteed with a credit card number on
record in the customer’s profile, to ensure the customer’s intent of arrival and thus guarantee
payment for parking services. Here is a (partial) glossary of terms used in overbooking decisions:
Confirmed reservations represent registered customers who make reservations as the need
arises. These reservations are honored until a specified time (including the grace period after the
start of the reserved interval). Such customers represent the critical element in no-shows.
Guaranteed reservations represent the registered customers who made a contract with the
parking garage for a parking spot, such as commuters going to work who need parking on a daily
basis during a predetermined period. Such customers represent a less volatile group because they
need to show up for their work.
Overstays are currently parked customers who wish to extend their stay beyond the time for
which they made reservations.
Understays are customers who arrive on time but decide to leave before their predicted time of
departure.
Walk-ins are registered customers who arrive to the parking garage without a contract or
reservation. They are welcome because they can enhance the garage occupancy percentages (if
there are available parking spaces).
The following occupancy management formula considers confirmed reservations, guaranteed
reservations, no-show factors for these two types of reservations, predicted overstays, predicted
understays, and predicted walk-ins to determine the number of additional parking reservations
needed to achieve 100 percent occupancy. No-show factors are based on prior experience with
customers with confirmed or guaranteed reservations who did not show up.
total number of parking spots available
confirmed reservations no-show factor based on historical data
guaranteed reservations no-show factor based on historical data
predicted overstays
predicted understays
predicted walk-ins
= number of additional parking spots available to achieve 100 % occupancy
(1)
Software Engineering Course Project Parking Lot/Garage
7
1.2 Assumptions about the System-to-be
We identified the following assumptions about the parking garage system-to-be:
A1. The license-plate recognition system works correctly 100 % of time, with no errors because
of dirty or scratched license plates. If the registration number cannot be recognized, the software-
to-be will assume that this vehicle does not belong to a registered customer.
A2. If the license-plate recognition system cannot recognize the vehicle registration
number and the customer does not provide a valid confirmation number or membership
number, the customer will be asked (display message) to back away from the vehicle
elevator (business policies (P1) and (P2)). We assume that the customer will always
obey and depart. If we suspect otherwise, we may manage this risk by having the system
to notify the garage security personnel. We also need an additional sensor to sense a
vehicle presence in the elevator and assumptions about its correct operation. (Perhaps
the license-plate recognition camera can serve this purpose?)
A3. The spot-occupancy recognition system works correctly 100 % of time, with no
errors because of sensor malfunctioning or incorrect sensing. If the sensor positively
detects occupancy, we assume that this result is only due to a vehicle, and no other
object occupying the spot. For example, if the sensor is based on visible light, we assume that
“dark” is sensed is only because a vehicle is present above the sensor, rather than because of
lighting outage or some other condition; similarly, “light” is sensed is only because of a vacant
spot and not because of another accidental light source.
A4. The vehicle elevator will lift the vehicle to the appropriate deck, and will never stop on a
wrong deck by mistake.
A5. In the case of the business policy (P10), we assume that the customer will always accept the
offered parking spot and will never wish to opt out and leave the parking garage without parking
his or her vehicle.
A6. We assume that the customer will always park at their assigned spot, and will never park at
an arbitrary vacant spot. We assume that the garage currently does not have installed sensors for
continuous tracking of customers from the vehicle elevator to their assigned spot. This is a strong
assumption (and we know that people are unpredictable!), but the accuracy of the parking
reservations table depends on this assumption. If a customer parks on a wrong spot (e.g., spot B),
and the system thinks that the customer is parked correctly on spot A, then the system will direct
future customers to an already occupied spot B (or accept reservations for B), and meanwhile the
system will consider spot A as occupied, while it is actually available.
A7. If the license-plate reader successfully recognizes the vehicle registration number, the system
assumes that the driver is a registered customer. The system-to-be will not consider separately
scenarios where the driver is a non-registered customer who borrowed the vehicle from a friend
who is a registered customer, or if the vehicle was stolen from a registered customer. The
customer to be billed for the parking garage use will be decided as per the business policy (P14).
A8. It is possible that the customer is an organization with multiple individuals (rather than an
individual person).
Ivan Marsic Rutgers University
8
A9. We assume that the customer has access to email and a mobile phone with SMS
texting capabilities. We do not assume that the customer will regularly check his or her
email or will always be able to receive instantaneously SMS messages. For example,
the customer may be in a meeting with the phone turned off. Also, we do not assume
that the customer has access to a computer or smartphone while driving.
T
he above description of the system is only preliminary, provided as a reference
example. The student developers team may add, drop, or modify any of the statements as
deemed appropriate. Also, the team should consider how will the system functioning be affected
by scenarios in which the above assumptions are not satisfied.
1.3 Statement of Requirements for User Interaction
The architecture of the envisioned parking garage computer system is shown in Figure 2. A
relational database is maintained at the server. The database contains various information,
including:
Information about the registered customers
The occupancy state of each parking spot: “available,” “reserved,” or “occupied”
Current parking reservations
The record of transactions for each customer, such as past reservations, garage usages,
whether the customer showed-up late, or failed to show up during their reserved period,
etc.
Various statistics about the garage usage
The garage operator should be able to view but not edit the profiles of registered customers. The
operator should also be able to set the prices for different services, such as parking fee within the
reserved period, parking fee during overstays, and the fee for no-shows.
Internet
Remote client
Server software:
- parking occupancy monitoring
- garage access control
- user reservation management
- system administration
Database
( customers,
occupancies,
reservations,
transactions, … )
Garage
( with sensors
and displays )
Figure 2: The architecture of the parking garage computer system.