-
Notifications
You must be signed in to change notification settings - Fork 0
Functional Requirements
Vincent Feistel edited this page Oct 23, 2023
·
14 revisions
Some general notes from the introduction:
- Requires the design of a restaurant simulator (may be simulation or ”restaurant tycoon” game).
- Restaurant contains a lot of moving parts, some small (e.g. being seated at a table) and some large (e.g. preparing a food order)
- Primary areas of the assignment are the floor and the kitchen and how they communicate
The last point seems a bit reductive; the specification shows signs of several subsystems that make up the entire application:
- Billing: how a customer is expected to pay for their meal (sub-bills, Tabs)
- Customers: customer satisfaction; how they are seated at tables
- Kitchen: how orders are taken from waiters and transformed into dishes/meals
- Tables: how tables are arranged to support differently sized parties
- The floor is where customers are seated and managed.
- Customer may request to be seated and if available given a table, mimicking a Maitre D showing you to the table.
- Waiters should come over and take your order, or come back after a while if the customer is not ready to order.
- Waiters pass orders from a customer to the kitchen, and once prepared must return the order to the customer's table.
- At the end of the dinner a bill must be presented to the table
- By request a bill may be split into sub-bills so that more than one payment may be made from various parties at the table.
- A customer should be allowed to start a Tab where they will only pay for a bill at a later date.
- Tables are managed by floor staff; as tables can combined/split to be able to fit various sized parties.
- Restaurant may have a booking system or walk in based service.
- Waiter will be assigned tables that they will take responsibility for.
Order Activity Diagram

Customer expectations need to be managed:
- Happy customers may end up tipping more
- Unhappy customers may make a complaint.
The restaurant is a ”Build-Your-Own-” restaurant:
- Customer have the ability to create an order out of a list of available options
- Customers may ask for specific methods of preparation, e.g. grilled vs. fried.
- Orders received from waiters will be taken as they come (FIFO) and start producing them.
- Different chefs will be responsible for different parts of the preparation process, e.g a head chef finishes plates and fry cook always works at the fryer.
- Dishes/orders may be passed between various stations
- All dishes return to the head chef to complete the plating before it can be sent to a customer via the waiter.
- Kitchen will notify the waiter when an order is complete, such that they can come and collect the order to take it to the table
- Chefs, waiters and managers may do rounds and visit tables to ensure that the customer is happy and good service has been provided.


If you have not identified enough distinct patterns in the design above you may choose to extend the design such that you do. Some ideas include:
- Bar with various cocktails
- Valet service
- Inventory and accounting, useful if you want to go the tycoon route