restaurant automation analysis&designdoc_v3.1
DESCRIPTION
Analysis and design document of Restaurant Automation project for Object Oriented Software Engineering. Engineered requirements, created use case, sequence, class and system architecture diagram using Rational Rhapsody Applied various design patterns such as Creator, Controller, Low coupling & High cohesion, Information Expert in design phase Implemented using Java in compliance with design specifications using OOP concepts such as inheritance, abstraction, function and operator overloading etc.TRANSCRIPT
Analysis and Design DocumentVersion 3.112/13/2013
Restaurant Management SystemObject Oriented Software EngineeringSE 6301
Ajit Gogul Balakrishnan Kannan
Harika Jammula
Narla Sandeep Narla Saibaba
Prabhakar Ganesamurthy
Sai Madhu Saranya Kachireddy
Page 1
Revision History
Page 2
Version Date Description AuthorInception draft 11/4/2013 First draft. To be refined
primarily during elaboration.…
Elaboration 1 Draft 1 11/16/2013 First draft. To be refined primarily later
…
Elaboration 1 Draft 2 12/3/2013 Second draft. To be refined primarily later
…
Elaboration 1 Draft 3 12/13/2013 Revised draft.
Table of Contents
1. Use Case Diagram …42. Use Case Descriptions ...83. Domain Model ...174. System Sequence Diagram ...205. Operation Contracts ...246. Subsystem Diagram ...357. Use case Realization …388. Design Class Diagram …429. Glossary of terms …4410. Screenshots …46
Page 3
1. Use Case DiagramsVersion 2.1
12/3/2013
Restaurant Management System
Page 4
Revision History
Page 5
Version Date Description AuthorInception draft 11/16/2013 Inception draft. To be refined
primarily later…
Elaboration 1 Draft 1 11/16/2013 First draft. To be refined primarily later
…
Elaboration 2 Draft 1 12/3/2013 Second draft. To be refined primarily later
…
Use Case Diagram - Restaurant Management System
Restaurant Management System
Manage order
Process order
Assign waiter to table
Manage Restaurant InformationLogin
«include»
«include»
«include»
«include»
Manage table status
«include»
Handle Payment
«include»
Updatetable status
View tablestatus
WaiterWaiter
ManagerManager
Kitchen StaffKitchen Staff
HostHost
BusboyBusboy
TimeTime
Page 6
Use Case Prioritization:
1. Manage order
2. Process order
3. Manage table status
4. Handle payment
5. Assign waiter to table
6. Manage restaurant information
Fully Dressed Casual Brief
1.Manage order 3.Process order 7.Manage restaurant information
2.Login 4.Manage table status
5.Handle payment
6.Assign waiter to table
Page 7
2. Use Case DescriptionsVersion 2.0
11/16/2013
Restaurant Management System
Page 8
Revision History
Version Date Description Author
1.0 Inception draft
11/16/2013 Refined
2.0 Elaboration 1 draft 1
11/16/2013 First draft. To be refined primarily later
3.0 Elaboration 2 draft 1
12/13/2013 Refined draft.
Page 9
Brief Use case descriptions:
1.Manage order:
The waiter selects the table from the floor status screen and adds the item ordered by the user to the tables tab which gets added to the order queue which is viewed by the kitchen staff.
The waiter can cancel/modify the order. The waiter can check the status of the order whether it is ready or not. If the order status is ready waiter serves the order.
2.Login:
The user enters his/her credentials and they are welcomed by a welcome page which is user-role specific.
The welcome page is for:
Waiter : Floor status screen
Kitchen staff: Order queue
Busboy : Floor status screen
Host : Floor status screen
Manager : Restaurant management screen
3.Process order:
Kitchen staff selects order from the order queue in a first-come-first-serve basis and updates order status as 'Processing' when the order is being prepared.
Once the order is ready to be served, the kitchen staff updates the status of the order as ready.
4.Manage table status:
The host views table status screen and identifies available tables to which customers are assigned.
After the customer sits in an available table ,the waiter selects that table and updates its status as occupied(yellow).
Page 10
After the order in a table is closed, the waiter assigned to that table, selects that table and updates its status as dirty(red).
The busboy identifies dirty tables from the table status screen.
After cleaning the table marked as dirty(red), Busboy selects that table and updates its status as available(green).
5.Handle Payment:
The waiter selects the mode of payment for the order. If the mode of payment is by credit card, then the waiter swipes the card in the card reader, the card is validated and payment is processed. if the customer pays by cash, the waiter registers the payment as 'by cash ' in the system and completes the payment.
6.Assign waiter to a table:
The host assigns a waiter to a set of tables. The waiter is responsible for this set of tables.
7. Manage Restaurant Information
Time triggers the system to store data in the database about employees, menu items, customers and their orders in day-by-day and hourly intervals. This data is used by the manager for analysis.
The manager can track the status of the various inventories available in the restaurant, analyze the sales of items such as identifying the most popular item, revenue generated by each item etc., tracks employee’s activities such as number of hours worked, performance by accessing the database.
The manager can also authorizes the activities which are restricted to the waiter by the selecting that waiter by ID and authorizing him/her.
The manager alters the floor plan by adding, removing and moving tables in the system. The manager can create/ modify employee profile in the system.
Fully-dressed format:
Use Case: Manage order
Page 11
ID: UC-1
Brief description: The waiter selects the table from the floor status screen and adds the item ordered by the user to the order which gets added to the order queue when order is placed. Waiter can cancel/modify/close order. Waiter can also know when order is ready by checking the order status for 'Ready'.
Primary actors: Wait Staff
Secondary actors: Kitchen staff
Preconditions: Update table status to occupied
Main flow:
1. Include : Login.
2. Select table from the floor status screen.
3. System provides waiter with an electronic menu
4. For each item ordered by the user
4.1 The waiter selects the item from electronic menu and adds it to the order
5. After all ordered items have been added, the waiter places the order.
6. The order gets added to the order queue
7. System notifies the kitchen staff that a new order has been placed in the order queue.
8.If order needs to be modified
8.1 Select order
8.2 if order status != 'Processing'
8.2.1 Add/Remove items in the order
8.2.2 Update order
else
8.2.1 Display 'Order cannot be modified'
9.If order needs to be cancelled
Page 12
9.1 Select order
9.2 if order status != 'Processing'
9.2.1 Cancel order
9.2.2 Update order status as 'Cancelled'.
9.2.3 Order is removed from the queue.
else
9.2.1 Display order cannot be cancelled.
Post conditions:
If order is placed/modified:
1. The order is closed when order is served, payment for the order is complete and customer leaves the table.
If order is cancelled:
1.Order is removed from the order queue if it is not processed.
Non-Functional requirements:
The waiter needs to place the order in minimal time, so the electronic menu should be organized and quick to use
The order placed must be placed in the order queue within 1 second.
Order modifications/cancellation should be reflected in the order queue within 1 second.
Technology and Data Variation List: None
Open Issues: None
Page 13
Use case: Login
ID: UC-2
Brief description: The user enters the login credentials to access their profile.
Primary actors: Kitchen staff, Waiter, Bus-boy, Manager, Host
Secondary actors: None
Preconditions: Access to a terminal which has access to the system network
Main flow:
1. User selects the login button on the screen
2. System prompts for username and password
3. The user enters the required information
4. The system validates the input of the user and the appropriate user interface is displayed. Waiter : Floor status screen
Kitchen staff: Order queue
Busboy : Floor status screen
Host : Floor status screen
Manager : Restaurant management screen
Post conditions: The user is successfully logged into the system and is greeted by a welcome screen.
Non-Functional requirements: Login authentication should take not more than 3 seconds.
Technology and Data Variation List: None
Open Issues: None
Page 14
3.Domain ModelVersion 2.1
12/10/2013
Page 15
Revision history:
Version Date Description AuthorElaboration 1 Draft 1 11/16/2013 First draft. To be refined
primarily later…
Elaboration 2 Draft 1 12/10/2013 Refined draft …
Page 16
Restaurant Management System:
Employee
FirstName:String
EmpType:String
LastName:String
Salary:int
EmpI D:int
Busboy
BusboyID:int
Waiter
WaiterID: int
TableList:int
Host
HostID:intassigns
1*
Kitchen_Staff
KitchenStaffID:int
OrderList:int
Manager
ManagerID:int
Order
orderID:int
orderItem:int
OrderStatus:String
Manages
1
*
processes
1
*Customer
PartCount:int
CustomerID:int
QueueNum:int
attends
1
*
Menu
Category:String
FoodItem:FoodItems
made_from
*
1
Employee_DB
Designation:String
EmpHours:int
EmpID:int
EmpName:String
accesses
1
1Order_DB
KitchenStaffID:int
OrderID: int
WaiterID:int
OrderItemID:int
accesses
1
1Inventory_DB
ItemCount:int
ItemID:int
ItemName:String
Price: int
accesses
1
1Table
TableID:int
TableStatus:String
assignedTo 1
*
cleans
1
*
Bill
Amount: int
BillID: int
PaymentMode:String
Status:String
Has
1
1
pays
1
1
generates
1
1
FloorPlan
TablePositionID:int
Table:Table
PlanID:int
Alters
1
1
Views1
1
Views1
1
Views1
1
OrderQueue
OrderID: int
OrderStatus:String
added_to
*
1
CustomerQueue
CustomerID: int
CustomerPosition:int
added_to
*
1
Page 17
4.System Sequence DiagramVersion 2.0
12/3/2013
Page 18
Revision history:
Version Date Description AuthorElaboration 1 Draft 1 11/16/2013 First draft. To be refined
primarily later…
Elaboration 2 Draft 1 12/3/2013 Refined draft …
Elaboration 3 Draft 1 12/13/2013 Revised draft
Page 19
ManageOrder:
Page 20
[for each items ordered]loop [for each items ordered]loop
[else]
[For each item to be added]loop
[For each item to be removed]loop
[If order_status!=processing||ready]alt
[If modify_order==true]opt
[else]
[For each item to be added]loop
[For each item to be removed]loop
[If order_status!=processing||ready]alt
[If modify_order==true]opt
[else]
[If order_status!=processing||ready]alt
[If Cancel_order==true]opt
[else]
[If order_status!=processing||ready]alt
[If Cancel_order==true]opt
System
Notify()
Update()order in database
Place() order in order queue
Notify()
Update() order in database
Remove() order from order queue
Notify() Kitchen staff
Remove() order from Database
Place() order in order queue
:Waiter
Select()
Table selected
Menu
select() category
Category items list
Select() item
Item added to order
Place() order
Order placed
Select()
order details
Add()
Item added
Remove()
Item removed
Update()
Order updated
order cannot be modified
Select() order
order details
Cancel() order
Order cancelled
Order cannot be cancelled
Logout()
Login
Ref
Page 21
Login:
[I f Authentication==Failure]
[I f Employee==Waiter| |Busbo||Host]opt
[I f Employee==Manager]opt
[I f Employee==KitchenStaff]opt
[I f Authentication== Successful]alt
[I f Authentication==Failure]
[I f Employee==Waiter| |Busbo||Host]opt
[I f Employee==Manager]opt
[I f Employee==KitchenStaff]opt
[I f Authentication== Successful]alt
[I f Authentication==Failure]
[I f Employee==Waiter| |Busbo||Host]opt
[I f Employee==Manager]opt
[I f Employee==KitchenStaff]opt
[I f Authentication== Successful]alt
System
Authenticate()
:Employee
EnterCredentials()
FloorStatusScreen
RestaurantManagementScreen
OrderQueueScreen
Authentication Failed
Page 22
5.Operation ContractsVersion 1
11/16/2013
Page 23
Revision history:
Version Date Description AuthorElaboration 1 Draft 1 11/16/2013 First draft. To be refined
primarily later…
Elaboration 2 Draft 1 12/3/2013 Refined draft …
Page 24
Contract CO1:Enter credentials
Operation: Enter Credentials()
Cross references:login
Pre conditions:The user should be an employee of the restaurant
Post Condition:The user credentials should be received by the system
Contract CO2: Authenticate
Operation:Authenticate()
Cross references: login
Pre conditions: The user should enter the credentials
Post Condition: The authentication is acknowledged
Contract CO3:Floor Status Screen
Operation: Floor Status Screen()
Cross references: login
Pre conditions: The employee should be a waiter or Busboy or Host and authenticated
Post Condition: Floor status screen is returned to the employee
Page 25
Contract CO4:Restaurant Management Screen
Operation: Restaurant Management Screen()
Cross references: login
Pre conditions: Employee should be a manager and authenticated
Post condition:Restaurant management screen is returned to the employee
Contract CO5:Order Queue Screen
Operation: Order Queue Screen()
Cross references:login
Pre conditions: The employee should be a kitchen staff and authenticated
Post condition:Order queue screen should be returned
Contract CO6: Authentication failed
Operation: Authentication failed()
Cross references:login
Pre conditions: Employee credentials should be incorrect
Post condition: Authentication failure is acknowledged
Page 26
Contract CO7: Select table
Operation: Select table()
Cross references: Manage order, Update table status, View table status, Assign waiter to table
Pre conditions: User must be logged in
Post Condition: The desired table object has been selected
Contract CO8: Table selected
Operation: Display table status()
Cross references: View table status
Pre conditions: The desired table object has been selected
Post condition: The status attribute of the selected table object is displayed
Contract CO9: Menu
Operation: Display menu()
Cross references: Manage order
Pre conditions: The status attribute of the selected table object is changed to ‘occupied’.
Page 27
Post conditions: The menu object is invoked.
Contract CO10: Select category
Operation: Select category ()
Cross reference: Manage order
Pre-condition: The menu object is invoked.
Post-condition: The desired category attribute of the menu object is selected.
Contract CO11: Category items list
Operation: Display category ()
Cross reference: Manage order
Pre-condition: The desired category attribute of the menu object is selected.
Post-condition: The list of items belonging to the selected category attribute is displayed
Contract CO12: Select item
Operation: Select item()
Cross reference: Manage order
Pre-condition: The list of items belonging to the selected category attribute is displayed
Page 28
Post-condition: The desired item object is invoked.
Contract CO13: Item added to order
Operation: Update order()
Cross reference: Manage order
Pre-condition: The desired item object is invoked
Post-condition: A order instance o is created. Attributes of o are initialized.
Contract CO14: Place order
Operation: Place order()
Cross reference: Manage order
Pre-condition: A order instance o is created.
Attributes of o are initialized.
Post-condition: o is associated with kitchen staff
The attributes of order object are initialized.
Contract CO15: Notify
Operation: Notify()
Cross reference: Manage order
Page 29
Pre-condition: o is associated with kitchen staff
The attributes of order object are initialized.
Post-condition: The pending order attribute is set to true.
Contract CO16: Update order in database
Operation: Update order DB()
Cross reference: Process order
Pre-condition: The pending order attribute is set to false
Post-condition: A order_DB instance odb is created
Attributes of odb are initialized
odb is associated with kitchen staff
Contract CO17: Order placed
Operation: Order placed()
Cross reference: Process order
Pre-condition: A order_DB instance odb is created
Attributes of odb are initialized
odb is associated with kitchen staff
Post-condition: The order status attribute of o is updated as ‘ready’
Page 30
Contract C018: Select order
Operation: Select order
Cross reference: Manage order
Pre-condition: The user should login
The orderID attribute of o exists
Post-condition: The desired orderID attribute is selected
Contract C019: Order details
Operation: Display order()
Cross reference: Manage order
Pre-condition: The desired orderID attribute is selected
Post-condition: The attributes of o are displayed
Contract C020: Add Item
Operation: Add item()
Page 31
Cross reference: Manage order
Pre-condition: The desired orderID attribute is selected
The attributes of o are displayed
Post-condition: o is associated with the kitchen staff
The attributes of order object are updated.
Contract C021: Add Item
Operation: Remove Item
Cross reference: Manage order
Pre-condition: The desired orderID attribute is selected
Post condition: The order item attribute of the selected orderID is removed
o is associated with the kitchen staff
Contract C022: Add Item
Operation: Update order
Cross reference: Manage order
Pre-condition: The desired orderID attribute is selected
The attributes of o are displayed
Post condition: The order item attributes of the selected orderID is updated
o is associated with the kitchen staff
Page 32
Contract C023: Cancel order
Operation: Cancel order()
Cross reference: ManageOrder
Pre-condition: The desired orderID attribute is selected and order status attribute is not processed
Post condition The order object of the selected order ID is destroyed
o is associated with the kitchen staff
Contract C024: Order cannot be modified
Operation: Order cannot be modified
Cross reference: Manage order
Pre-condition: The desired orderID is attribute is selected and order status attribute is processed
Post condition: None
Contract C025: Order cannot be cancelled
Page 33
Operation: Order cannot cancelled
Cross reference: Manage order
Pre-condition: The desired orderID is attribute is selected and order status attribute is processed
Post condition: None
6.Sub-system DiagramVersion 2
12/3/2013
Page 34
Revision history:
Version Date Description AuthorElaboration 1 Draft 1 11/16/2013 First draft. To be refined
primarily later…
Elaboration 2 Draft 1 12/3/2013 Refined draft …
Page 35
Login_Subsystem
Inventory_Subsystem
UserInterface_Subsystem
Waiter
Database_Subsystem
OrderManagement_Subsystem
OrderDBInventoryDB
EmployeeDB
Manager
KitchenStaff
Host
Busboy
TableStatusscreen Login Screen
OrderQueueScreen
Menu
OrderQueueSystem
OrderStatusSystem
AddEmployeeControl
RemoveEmployeeControl
PayrollControl
SelectItemControl
QueueControl
TakeOrderControl
CompleteOrderControl
ManageOrderControl
TableStatusControl
TableStatusControl
AuthenticationControl
InventoryStatisticsControl
Restaurant Automation System
Page 36
7.Use Case RealizationVersion 2
12/10/2013
Page 37
Revision history:
Version Date Description AuthorElaboration 2 Draft 1 12/3/2013 First draft. To be refined later. …
Elaboration 3 Draft 1 12/10/2013 Refined draft
Page 38
Manage Order:
Page 39
[for each item to be added]loop [for each item to be added]loop
[for each item to be removed]loop [for each item to be removed]loop
[order not confirmed]
[order is confirmed]alt
[order not confirmed]
[order is confirmed]alt
[order not confirmed]
[order is confirmed]alt
[else]
[for each item to be removed]loop
[for each item to be added]loop
[order not confirmed]
[order is confirmed]alt
[if(orderStstus!=Processing||Ready)]
opt
[if modify_order=true]loop
[else]
[for each item to be removed]loop
[for each item to be added]loop
[order not confirmed]
[order is confirmed]alt
[if(orderStstus!=Processing||Ready)]
opt
[if modify_order=true]loop
[else]
[if order_status!=processing||ready]alt
[if cancel_order=true]alt
[else]
[if order_status!=processing||ready]alt
[if cancel_order=true]alt
:KitchenStaffGUI
:OrderDB:OrderQueue:Order
getOrderQ ueue()
orderList
set_WaiterID,TableID
:ControllerOrder
get_order()
order_details
store_order(order)
create(waiterID,tableID)
update_item_list(order,ItemsList)
update_item_list(order,ItemsList)
store_order(order)
remove_item_from_list(itemID)
success
set_order_status_InQueue
remove_order(orderID)
order_created
item_added
order
orderID
success
order_details
item_removed
add_item_to_list(itemID)
item_added
order_removed
set_order_status_InQueue
:Menu:ControllerGUI
place_order_request(order)
create_order_request(WaiterID,TableID)
getCategories()
get_category_items(name)
add_items_request(order,ItemsList)
add_items_request(order,AddedItemsList)
place_order_request(order)
order_placed
remove_item_request(itemID)
orderStatus
remove_order_request(orderID)
order
categories
category_ items
order
order
order_placed
orderStatus
category_ items
get_category_items(name)
item_added
add_item_request(itemID)
item_removed
order_cancelled
:WaiterGUI
create_order_request(WaiterID, TableID)
select_category(name)
add_items_request(order,AddedItemsList)
add_items_request(order,AddedItemsList)
CheckOrderStatus(orderID)
remove_item(itemID)
order_confirmed(order)
order_placed
CheckOrderStatus(orderID)
removel_order(orderID)
order
categories
category_ items
get_menu()
order_details
update_items_list
select_category(name)
category_ items
select_item(itemID)
item added
item_removed
order_details
order_cancelled
order
order
order_confirmed(order)
order_placed
update_items_list
:Waiter
select_table()
create_order()
select_category(name)
select_list_item()
Remove()
place_order()
confirm_order()
not_confirmed()
SelectOrder()
remove_item(itemID)
modify_order()
remove_order()
select_ list_item(itemI D)
Add()
menu_categories
select_list_item()
ModifyOrder()
menu_category_items
added_ item_list
updated_item_list
confirm_order
Stored
confirm_order()
added_items_list
not_confirmed()
list_ item_selected
confirm_order
select_category(name)
category_ items
select_item(itemID)
added_item_list
categories
updated_item_list
Updated
added_items_list
Order_cannot_be_modified
order_cancelled
table_tab
order_cannot_be_cancelled
table_tab
Select_order()
Login
Ref
Login:
Page 40
[else if designation=kitchen_staff]
[if designation=waiter]alt
[if authentication==success]alt
[if ID=valid]alt
[else if designation=kitchen_staff]
[if designation=waiter]alt
[if authentication==success]alt
[if ID=valid]alt
[else if designation=kitchen_staff]
[if designation=waiter]alt
[if authentication==success]alt
[if ID=valid]alt
:OrderQueue:EmployeeDB:KitchenStaffGUI
order_queue
get_order_queue()
:WaiterGUI
getTables(UserID)
tables_list
:ControllerGUI
get_details(ID)
Create(designation)
password,designation
authenticate(pass)
Create(designation)
:LoginGUI
send_credentials(ID, pass)
:employee
enter_credentials(ID, pass)
waiter_table_screen
8.Design Class DiagramVersion 1
12/11/2013
Revision history:
Page 41
[else if designation=kitchen_staff]
[if designation=waiter]alt
[if authentication==success]alt
[if ID=valid]alt
[else if designation=kitchen_staff]
[if designation=waiter]alt
[if authentication==success]alt
[if ID=valid]alt
[else if designation=kitchen_staff]
[if designation=waiter]alt
[if authentication==success]alt
[if ID=valid]alt
:OrderQueue:EmployeeDB:KitchenStaffGUI
order_queue
get_order_queue()
:WaiterGUI
getTables(UserID)
tables_list
:ControllerGUI
get_details(ID)
Create(designation)
password,designation
authenticate(pass)
Create(designation)
:LoginGUI
send_credentials(ID, pass)
:employee
enter_credentials(ID, pass)
waiter_table_screen
Version Date Description AuthorElaboration 2 Draft 1 12/3/2013 First draft. To be refined later. …
Elaboration 3 Draft 1 12/11/2013 Refined
Page 42
Design Class Diagram:
LoginGUI
EmpID:String
pass:String
enter_cred...
EmployeeDB
Designation:Str...
EmpID:int
Fname:String
Lname:String
get_details():St...
WaiterGUI
Item_list:String
Table_list:int
place_order():...
update_order(...
waiter_table_s...
select_table():...
select_order()...
order_details()...
remove_item()...
order_placed()...
order_update...
ControllerGUI
authenticate()
authentication_faile...
cancel_order():void
create_order_reque...
floor_status_screen...
order_confirmed():void
order_queue_scree...
order_updated():void
remove_item():void
select_category():void
select_category_na...
manages
1 1
accesses
1
1manages
1
1
Order
OrderID:int
OrderItemI...
OrderStatu...
add_item_to_list():void
create_order():void
remove_item_from_list():void
get_order():void
OrderQueue
OrderID:int
OrderStat...
get_order...
place_ord...
remove_f...
placed_in
*
1
OrderDB
KitchenStaffID...
OrderItemID:int
OrderrID:int
TableID:int
get_order_details():void
remove_order():void
update_order():void
store_order():void
stores 1*
Menu
Category:String
CategoryItem...
ItemID:int
ItemName:Str...
categories():void
category_items():void
get_categories():void
get_category_items():void
select_list_item()
retrieves1 1
ControllerOrder
add_item_req...
cancel_order_...
create_order_...
get_order_det...
item_added():...
item_removed...
order_cancelle...
order_created...
order_details()...
order_placed()...
order_update...
place_order_r...
manages 1
*
requests 11
updates
1
1
updates
11
KitchenStaffGUI
attribute_2:int
Order_queue:...
notify()
Create():void
manages
1
1
contains
1
1
Page 43
9.Glossary of terms
1. Employee – Any individual who is involved in the day to day activities of the
restaurant, including cooks, bus boys, kitchen staff, waiters, managers and hosts.
2. Manager – Type of employee with the highest administrative authority, with the power to change the status of all other employee types, and access to restaurant statistics and floor plan.
3. Customer – Any individual who is benefitted by the restaurant automation system and the employees working within its framework.
4. Kitchen Staff – Type of employee who is responsible for processing the orders submitted by the waiter in the order queue.
5. Waiter – Type of employee who is responsible to interact with the customer by creating, modifying and cancelling orders and to keep the order queue up to date
6. Host – Type of employee who welcomes the customer and directs them to an available table. The role of host can be performed by both manager and waiter.
7. Bus Boy – Type of employee who is responsible to keep the tables clean and to change the status of the table from dirty to clean upon completion.
8. Table – A physical object in which the prepared food is presented to the customer, for which a waiter is assigned.
9. Table Status – Shows the status of a table and the waiter who is assigned to that table.
10. Dirty – A type of table status indicating the condition which implies that it is not being currently occupied by any customers and needs to be cleaned to make it available to a new customer.
11. Busy – A type of table status indicating the condition where it cannot be assigned to a new customer and also that it cannot be cleaned.
12. Ready – A type of table status indicating the condition that it is ready for service and that it can be assigned to a new customer.
13. Order – A description submitted by the waiter, which is to be cooked and eventually
delivered to the table from which it has been ordered.
14. Order Status – Used to know the status of the order placed by the customer based on which the waiter decides what needs to be done.
15. Processing – A type of order status which means that the order is currently being cooked and the order cannot be modified after this.
Page 44
16. Ready – A type of order status which means that the order has been cooked and ready to be served to the customer.
17. Payroll – Used for calculating the salary of an employee based on the number of hours worked. It
differs based on the designation of the employee.
18. Menu – List of dishes available in the restaurant from which the waiter chooses from based on the request from the customer.
19. Floor Plan – Shows the arrangement of all the tables in the restaurant which can be modified only by the manager when required.
Page 45
10.ScreenshotsVersion 1
12/13/2013
Page 46
Login Screen:
Waiter Table Screen:
Page 47
Waiter Table Tab:
Page 48
Create Order Screen:
Adding Items to Order:
Page 49
Removing Items to Order:
Page 50
Place Order
Waiter Login
Page 51
Kitchen Staff GUI with OrderQueue:
Modify Order
Page 52
Kitchen Staff GUI with updated orderQueue
Page 53
Cancel Order
Order removed from orderqueue
Page 54
Page 55