D4 recommendation emenu_development
-
Upload
traitet-thepbandansuk -
Category
Education
-
view
344 -
download
0
description
Transcript of D4 recommendation emenu_development
FOR DEVELOPMENT OF
RESTAURANT E-MENU PROTOTYPE
Project:
Topic:
Content:
Created by Traitet Th.
Created Date 16 Aug 2012
Revised Date 16 Aug 2012
Revision No. 0.9
Document Name A02-001
RECOMMENDATIONS
OF
E-MENU DEVELOPMENT
E-menu on iPad for Thai restaurant
Description of research & discussion of outcomes
Artifact of description of research & discussion of outcomes
1) SOFTWARE DEVELOPMENT PROCESS
2
Based on
- RAD (Rapid Application Development)
- Prototyping
- Direct Observation
3
Observatio
n
at a
Thai Dining
Restaurant
in UK
Make list of requirements
Design Database using ER-diagram
Design UML Use Case Diagram
Design Class Diagram
Design Workflow Diagram
Make Recommendatio
ns
The users’ perception on the e-menu prototype
Recommendations of e-menu application development
SOFTWARE DEVELOPMENT PROCESSES FOR E-MENU APPLICATION
BASED ON RAD, PROTOTYING AND DIRECT OBSERVATION
Obse
rvatio
n th
roughout th
e d
evelo
pm
ent p
roce
ss
Develop the first prototype
Design & Develop web & web services for
the first prototype on .NET(ASP.NET Language)
Test System e.g. Web Services
Create the database
Present the first Prototype
Get feedbacks from the restaurant manager
Modify list of requirements & design document and Web
services
Develop the final Prototype
Create document to
test requirements
Develop the final prototype by Xcode on iPad
(Objective-C Language)
Develop web for back
office on .NET
Present the final Prototype
Interviews restaurant staff; restaurant manager, waiting
staffs and chefs
Present the final prototype by Videos, and Demo on iPad &
Web
Refine
docu
ments
2) SYSTEM ANALYSIS & DESIGN DOCUMENTS
4
2.1) USE CASE DIAGRAM5
Diagram
• Use Case Diagram
Description
- The use case diagram is an UML modeling tools for capturing business requirements
- It can describe what e-menu system does and the views of what users needs (Kendall 2011)
Benefit
• It enabled the learner to understand the scope and features of systems operated by external users.
2.2) CLASS DIAGRAM6
Diagram
• Class Diagram
Description
- Class diagram is data model of objected-oriented concept, which aims to enhance software quality (Revelle, Gethers and Poshvanyk 2011)
Benefit
• It enabled the learner to take advantages from an object-oriented design e.g. reusability, abstraction, module integration.
2.3) ER DIAGRAM7
Diagram
• ER Diagram
Description
- ER diagram is data modeling tool for linking between data object in the real-world and data modeling details (Rob, Coronel, and Crockett 2008).
Benefit
• ER modelling can reduce ambiguity of communication e.g. defining primary keys, foreign keys, relationships and cardinalities. (Connolly and Begg 2011)
2.3.1 RELATIONAL DATABASE8
Relational database was designed based on the ER-diagram
2.3.2 TABLES & COLUMNS IN DATABASE9
No TM_MENU Data Type TM_MENU_CATEGORY Data Type TM_TABLE Data Type TT_ORDER Data Type TT_ORDER_DETAIL Data Type TT_SERVICE_REQUEST Data Type
1 MenuNo nvarchar(10) MenuCategoryNo nvarchar(10) TableNo nvarchar(10) OrderNo nvarchar(10) OrderDetailNo nvarchar(10) ServiceNo nvarchar(10)
2 MenuCategoryNo nvarchar(10) MenuCategoryName nvarchar(255) TableDescription nvarchar(255) OrderTableNo nvarchar(10) OrderNo nvarchar(10) ServiceOrderNo nvarchar(10)
3 MenuName nvarchar(255) MenuCategoryType nvarchar(50) TableSeatQty int OrderStatus nvarchar(50) OrderDetailMenuNo nvarchar(10) ServiceTableNo nvarchar(10)
4 MenuDescription nvarchar(MAX) MenuCategoryDescription nvarchar(999) TableStatus nvarchar(10) OrderCustomerQty int OrderDetailMenuDesc nvarchar(MAX) ServiceRequestTi
me datetime
5 MenuPrice float MenuCategoryComment1 nvarchar(255) TableComment
1 nvarchar(255) OrderOpenedTime datetime OrderDetailQty float ServiceType nvarchar(50)
6 MenuTasteStatus nvarchar(50) MenuCategoryComment2 nvarchar(255) TableComment
2 nvarchar(255) OrderCalledMainCourse datetime OrderDetailPrice float ServiceStatus nvarchar(25
5)
7 MenuRecommendStatus nvarchar(50) MenuCategoryComme
nt3 nvarchar(255) TableComment3 nvarchar(255) OrderBilledTime datetime OrderDetailStatus nvarchar(255) ServiceComment1 nvarchar(25
5)
8 MenuStatus nvarchar(50) OrderClosedTime datetime OrderDetailedTime datetime ServiceComment2 nvarchar(255)
9 MenuComment1 nvarchar(255) OrderBookingNo nvarchar(255) OrderDetailCookedTime datetime ServiceComment3 nvarchar(25
5)
10 MenuComment2 nvarchar(255) OrderMemberNo nvarchar(255) OrderDetailDeliveriedTime datetime ServiceComment4 nvarchar(25
5)
11 MenuComment3 nvarchar(255) OrderComment1 nvarchar(255) OrderDetailBy nvarchar(255)
12 MenuComment4 nvarchar(255) OrderComment2 nvarchar(255) OrderDetailComment1 nvarchar(255)
13 MenuComment5 nvarchar(255) OrderComment3 nvarchar(255) OrderDetailComment2 nvarchar(255)
14 MenuComment6 nvarchar(255) OrderComment4 nvarchar(255) OrderDetailComment3 nvarchar(255)
15 MenuLastUpdatedTime datetime OrderDetailComment4 nvarchar(255)
16 MenuCreatedBy nvarchar(50)
Tables and columns were designed based on the ER diagram
2.4) WORKFLOW DIAGRAM10
Diagram
• Workflow diagram
Description
- Work flow diagram describes processes when customers come until they leave from restaurant.
Benefit
• The work flow enabled the learner be able to confirm the business process with the restaurant manager.
• It also was used to design statuses of ordering and requesting services as shown in the next slide.
11
Table TT_ORDER_DETAIL
Description
Table TT_ORDER
Description
Table TM_MENU_CATEGORY
Description
Field OrderDetailStatus Field OrderStatus Field MenuCategoryType
1 10_ORDERING Customer is ordering 1 10_OPENNED Order or table is opened 1 10_STARTER Starter
2 11_CONFIRMED Order is confirmed 2 90_COMPLETED Order or table is closed 2 20_MAIN_DISHESMain course / Main dishes
4 30_COOKINGAn menu item is cooking
4 30_DRINK Drinks
5 40_SERVINGAn menu item is serving
5 40_SWEET Sweet
6 41_SERVEDAn Menu item is already served.
Table TM_MENUDescription
Table TM_MENUDescription
Field MenuTasteStatus Field MenuRecommend
1 1 Little Hot & spicy 1 01_TOP_SELLING This item is a top selling menu.
2 2 Medium hot and spicy 2 02_CHEF_RECOMMENDED This item is a chef's recommended menu.
3 Extreme hot and spicy
Table TT_SERVICE Description Table TT_SERVICEDescription
Field ServiceType Field ServiceStatus
1 10_REQUEST_WAITER Request Waiter 1 OPENNED Service is being requested.
220_REQUEST_MAIN_COURSE
Request main course 2 COMPLETED Service is completed.
3 30_REQUEST_BILLING Request billing
2.4.1) STATUSES OF ORDERING
AND REQUESTING SERVICES
3) TECHNICAL DESIGN FOR E-MENU
12
Content
• Initial e-menu Design
• MVC (Model-View-Controller) Design
• Communication between .NET & iOS
Platforms
FOCUS ON TECHNICAL DESIGN13
Technical system design
1. E-menu application on iPad
for restaurant customer
2. E-menu Web services
3. E-menu Website for
restaurant staff (Back office)
141) INITIAL DESIGN
OF E-MENU PROTOTYPE
E-MENU APP
ON IPAD
USING XCODE
E-MENU DATABASE
E-MENU WEB
SERVICES
USING ASP.NET
E-MENU WEBSITE
FOR RESTAURANT
STAFF
USING ASP.NET
Main Features on iPad for
customers
1. Select menu categories
2. Show details of food and drinks
3. Confirm order
4. Check order status
5. Request services
• Request a waiter
• Request main course
• Request a payment
Main features on website for
staff
1. Manage tables
2. Operate orders
3. Operate service requestsDevelop using ASP.NET and Xcode
SQL Server 2005
ASP.NET Platform
iOS Platform
Microsoft SQL Server
Accessing data in the database
Provide data logic e.g. selecting,
deleting, updating,
inserting data from the database
Provide Web Services
to other platforms
Including data and business logic e.g.
GetMenuList
Web servicesModel Classes
Model
DBMS: Database
Management System
ModelDatabase
2) MODEL-VIEW-CONTROLLER (MVC) DESIGN
DBMS
SQL Server 2005
Web Service Manager- Generate SOAP message (Create XML
data)
- Translate SOAP message (Parse XML
data)
- Encapsulate communication with Web
Services
Model ClassesPhysical DB
(Microsoft ASP.NET Team 2009; Mac Developer Library 2012)
Apple’s iOS Platform(Developing Tool: Xcode)
Platform
Controller
Controller & View
Provide business logic for UI (User
Interfaces)
ViewProvide UI
for restaurant customers
Platform
ASP.NET Platform(Developing tool: Visual Studio 2010)
Controller
Controller & View
Provide business logic for UI (User
Interfaces)
ViewProvide UI
for restaurant
Staff
3) COMMUNICATION BETWEEN
ASP.NET & IOS PLATFORMS
USING WEB SERVICES
16
Web Services
(ASP.NET)
SOAP Parser
(Based on XML)
Platform iOS (Xcode)PlatformASP.NET
Response
Request SOAP Generator (Based on
XML)
Purposes
- To generate SOAP message to request consuming Web services
- To receive SOAP message or response from Web services and translate to Xcode variables
Purposes:• To convert
communication with Web Service from asynchronous to synchronous
• To combine all functions provided by Web Services
Benefits:• Make it easy to
communicate with Web Services (encapsulation)
MODEL
Class: WebServiceManager Class: ServiceUtils
Request
Response
VIEW & CONTROLLE
R
Purposes
• To provide application User Interface (UI) for restaurant customers
Classes for UI
XML
XML
Function Parameters
Function Return Value
4) XCODE DEVELOPMENT
17
4.1) CLASSES DEVELOPED IN XOCDE18
No Folder Name Class Description
1 10_WebServices All classes
The classes in this folder are used for communication with Web Services e.g. generating & parsing XML, and converting data types between Web services and Xcode
3 20_Utils
ServiceUtils
This Class contains all web services functions, which are easy to use. The main objectives of this class is to encapsulation using web services and to convert communication with web services from asynchronous to synchronous.
SharedClassThis class contains static variables, such as Order, TableNo and ArrayMenuByCategory, to use as public variables.
ServiceUtils
This class collects general reusable functions e.g. GettingStringDataFromSettingFile, ConvertTableNoToNo and ConvertNoToTableNo functions.
4.2) VIEW CONTROLLER IN XCODE19
No Folder Name Class Description
130_ViewContr
oller
Class01_MenuDetailControls user interfaces of the "Menu Detail" screen
Class02_EmenuCellControls user interfaces of the table in "Main Menu" screen
Class10_ConfirmOrderControls user interfaces of the "Confirm Order" screen
Class11_ViewOrderControls user interfaces of the "View Order" screen (Confirm Order)
Class13_ServiceRequest
Controls user interfaces of the "Service Request" screen
2 NMENU29
MasterViewControllerControl user interfaces of the "List of categories" screen
DetailViewControllerControl user interface of the "Main Menu" screen
4.3) VIEW CONTROLLER IN XCODE
(CONT.)20
Main Menu Menu Detail
Confirm Order
Service Request
Menu Categories View Order
4.4) MAIN STORY BOARD21
Service Request Screen
Service Request Screen
View Order Screen (Confirm Order)
Main menu screen Menu Detail Screen
4.5) APPLICATION SETTING
PREFERENCES22
Setting Bundle
The list file Setting preferences on iPad
APPENDIX
23
LIST OF WEB SERVICES
24
LIST OF WEB SERVICES25
No Web Services Description
1 AddOrderDetail Add an order item
2 AddServiceRequest Add an service request e.g. Call a waiter
3 CloseOrderByTable Close order by table no
4 DeleteOrderDetail Detail an order item
5FindAvailableOrderByOrderTableNo
Find available order by a table no
6 FindOrder Find order info. by an order no
7 FindOrderByConditionFind order info. by a condition e.g. Order Status = ’90_COMPLETED’
8 FindOrderDetail Find order item info. by an order item no
9 FindOrderDetailByCondition Find order item info. by a condition e.g. Order item status = ’11_CONFIRMED’
10 FindServiceRequest Find service request info. by a service request no
11 FindServiceRequestByCondition Find service request info. by a condition e.g. service status = ‘COMPLETED’
12 GetCategoryTypeList Get types of menu categories e.g. 01_STARTER, 02_MAIN_DISHES
13 GetHelloWorld Get Hello world string. (For the first test)
14 GetMenuCategoryList Get list of menu categories
15 GetMenuCategoryNameList Get names of menu categories
16 GetMenuList Get list of menu
LIST OF WEB SERVICES26
No Web Services Description
17 GetOrderDetailListForStarter Get list of order item info. of starter
18 GetOrderDetailListToCheckStatus Get list of order items to check order status
19 GetOrderDetailListToConfirmOrder Get list of order items to confirm order
20 GetOrderList Get list of all order items
21 GetTotalOrderItem Get number of order items (All order items)
22 GetTotalOrderItemToConfirmOrder Get number of order items (Only new order items)
23 GetTotalOrderPrice Get total order price (All order items)
24 GetTotalOrderPriceToConfirmOrder Get total order price (Only new order items)
25 IsRequestBilling Check that a particular table whether bill is requested.
26 IsRequestMainCourse Check that a particular table whether main course is requested.
27 IsRequestWaiter Check that a particular table whether a waiter is requested.
28 OpenOrderByTable Open new order by table no
29UpdateOrderDetailStatusFromOrderingToConfirmedByOrderNo
Update order details status from ordering to confirmed by order no
30 UpdateOrderStatusFromClosedToOpenned Update order status from closed to opened
31UpdateOrderToRecordCallingMainCourseTime
Update order status to record calling main course time
REFERENCES
27
REFERENCES28
CONNOLLY, Thomas M. and BEGG, Carolyn E. (2010). Database systems: A
practical approach to design, implementation, and management. 5th ed., United
States of America, Addison Wesley.
LEE, Wei-Meng (2012). Beginning iOS 5 Application Development, USA, John
Wiley & Sons, Inc.
KENDALL, Kenneth E. and KENDALL, Julie E. (2011). System analysis and design.
8th ed., United Kingdom, Pearson Education.
RAY, John (2012). iOS 5 Application Development in 24 Hours, USA, Pearson
Education, Inc.
REVELLE, Meghan, GETHERS, Malcom and POSHYVANYK, Denys (2011). Using
structural and textual information to capture feature coupling in object-oriented
software. Empirical software engineering, 16(6), 773-811.
ROB, Peter, CORONEL and Carlos, CROCKETT (2008). Database systems: design,
implementation & management. United Kingdom, Tom Rennie.