Waiter System
THREE-Tier Application
Objectives
The main objectives of this pilot system are to enhance your understanding of 3 tier applications
and OO principles and to enable you to
Work with multiple forms.
Implement good OO programming principles
Use inheritance and composition.
Use collections and control arrays
Maintain all the waiters in the system
Use dynamic events
Effectively schedule waiters for their shifts.
Test the system extensively using both black box and white box testing approaches.
System Specifications (Not all of this will be implemented in the workshops)
The GoodFood restaurant chain, one of Phumla Kamnandi’s main customers, came to know
about your development team’s expertise, and approached you to develop a much needed waiter
system. The Waiter System (WaS) will initially be used as an example to implement,
investigate and understand OO and database concepts over a series of C#.NET lab sessions and
help would be developers to gain confidence. At a later stage the WaS system will then be
implemented at the different restaurants of the GoodFood chain to ensure the efficient scheduling
of their waiters. An extension of this system will incorporate the customer bookings at a later
stage. The restaurants in the GoodFood chain employ different kinds of waiters, fulfilling different
roles in the restaurants. This system that will be developed as a pilot for one specific restaurant,
will focus mostly on the waiter role. In general three types of waiters exist: head waiters,
waiters and runners. For this restaurant there will only be three head waiters and each head
waiter only works one 8 hour shift per day and a maximum of 5 shifts per week, except for those
cases when one of the headwaiters is on holiday. Only one headwaiter will be on duty during a
shift, but there will be two 8 hour shifts every day, from 8 to 16:00 and from 16:00 until midnight.
Waiters and runners are often students working at the restaurant to earn pocket money and
thus prefer to work often but for shorter durations. They will work 4 hour shifts. Each shift will
have 3 waiters and 2 runners. Head waiters are normally permanent staff and will receive a
monthly salary. Waiters will receive a basic rate
1
per shift as well as the 80% of the tips they earned during their shift. Each runner will receive 10%
of the waiters’ total tips as they need to provide efficient service throughout their shift. The
restaurant employs 8 waiters and 20 runners and the waiters and runners are supposed to work at
least 5 shifts per week, unless they are on holiday. They are allowed to work 2 shifts per day.
Implementation
The Pilot System WaS will be developed over 4 phases. For the first phase your system should
also be able to add an employee (waiter, runner or headwaiter) to the database. For the system to
work effectively, to be scalable and maintainable, you therefore will have to set up a logical structure
for the classes in this system. Each employee is firstly a person. In this system each employee will
have a role. This role can either be that of head waiter, waiter or runner.
Phase two of this system will add a multi-document interface (MDI) to the solution, to allow for
better navigation from one form to the next. This phase will also include the functionality of listing
of all the waiters, head waiters and runners. Your system should also be able to list the employees
by role.
A main business value of this system is to allow the restaurant to create and manage the shifts the
shifts for the waitrons. This will be left for the third phase of this project, which can later be
expanded to include the shift for the runners as well.