Object-Oriented Design and Implementation
CPST 320
Fall 2007
Payroll Case Study
Payroll Application
Problem Description
A simple batch oriented payroll system, requiring calculation of pay for employees based on their
salary type and rate.
Requirements Specification
- Some employees work by the hour. They are paid an hourly rate.
They submit
daily time cards that record the date and the number of hours
worked. If they work more than 8 hours per day, they are paid
1.5 times their normal rate for those extra hours.
They are paid every Friday.
- Some employees are paid a flat salary. They are paid on the last
working day of the month.
- Employee pay can be adjusted at anytime for a future payroll period.
So the system needs to be able to store the current pay, as well
as information about future pay rates.
- Some of the salaried employees are also paid a commission based
on their sales. They submit sales receipts that record the date
and the amount of the sale. The commission rate can vary by employee.
They are paid every other Friday.
- Employees can select their method of payment. They may have
their paychecks mailed to the postal address of their choice,
have their paychecks held for pickup by the paymaster, or request
that their paychecks be directly deposited into the bank account
of their choice.
- Some employees belong to the union. Union dues are the same for all
employees. Their dues must be deducted from
their pay. Also, the union may assess service charges against
individual union members from time to time. These service charges
are submitted by the union on a weekly basis and must be deducted
from the appropriate employee's next pay amount.
- The payroll application will run once each working day and pay
the appropriate employees on that day. The system will be told what
date the employees are to be paid to, so it will generate payments
for records from the last time the employee was paid up to the
specified date.