Skip to content

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

Part 1: The Floor

  • 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

image

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.

Part 2: The Kitchen

  • 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

Part 3: Additional Instructions

  • Chefs, waiters and managers may do rounds and visit tables to ensure that the customer is happy and good service has been provided.

Part 4: Program Flow

Customer flow:

image

Scene Management:

image

Customer cycle

CustomerOrderSequence.pdf

The emergency Room

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

Clone this wiki locally