Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
D4 recommendation emenu_development
1. RECOMMENDATIONS
OF
E-MENU DEVELOPMENT
F O R D EVEL O PM EN T O F
RESTAURANT E - MENU PROTOTYPE
Created by Traitet Th.
Project: E-menu on iPad for Thai restaurant
Created Date 16 Aug 2012
Topic: Description of research & discussion of outcomes Revised Date 16 Aug 2012
Revision No. 0.9
Content: Artifact of description of research & discussion of
Document Name A02-001
outcomes
2. 1 ) SO F T WA R E DEV EL O P MEN T P R O C ESS
Based on
- RAD (Rapid Application Development)
- Prototyping
- Direct Observation
2
3. SOFTWARE DEVELOPMENT PROCESSES FOR E-MENU APPLICATION
BASED ON RAD, PROTOTYING AND DIRECT OBSERVATION
Design
Make list of Design UML Design
Database Design Class
requirements Use Case Workflow
Observation throughout the development process
using ER- Diagram
Diagram Diagram
diagram
Refine documents
Design & Develop web & web
Test System
Develop the first Create the services for
e.g. Web
prototype database the first prototype on .NET
Services
(ASP.NET Language)
Observation
Modify list of requirements &
Present the first Get feedbacks from
design document and Web at a
Prototype the restaurant manager
services
Thai Dining
Create
Develop the final prototype by Develop
Develop the final document to
Xcode on iPad web for back
Prototype test
(Objective-C Language) office on .NET
requirements Restaurant
Interviews restaurant staff; in UK
Present the final Present the final prototype by
restaurant manager, waiting staffs
Prototype Videos, and Demo on iPad & Web
and chefs
Make
The users’ perception Recommendations of e-menu
Recommendation on the e-menu prototype application development
s 3
4. 2 ) SYST EM A N A LY SIS & DESIG N DO C U MEN T S
4
5. 5 2 .1 ) USE C A SE DIA G RA M
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.
6. 6 2 .2 ) C L A SS DIA G RA M
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.
7. 7 2 .3 ) ER DIA G RA M
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)
8. 8 2 . 3 . 1 R E L AT I O N A L D ATA B A S E
Relational database was designed based on the ER-diagram
9. 9 2 .3 .2 TA B L ES & C O L UMN S IN DATA BASE
TT_SERVICE_REQ
No TM_MENU Data Type TM_MENU_CATEGORY Data Type TM_TABLE Data Type TT_ORDER Data Type TT_ORDER_DETAIL Data Type Data Type
UEST
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)
MenuCategoryDescriptio
4 MenuDescription nvarchar(MAX) nvarchar(999) TableStatus nvarchar(10) OrderCustomerQty int OrderDetailMenuDesc nvarchar(MAX) ServiceRequestTime datetime
n
MenuCategoryComment
5 MenuPrice float nvarchar(255) TableComment1 nvarchar(255) OrderOpenedTime datetime OrderDetailQty float ServiceType nvarchar(50)
1
MenuCategoryComment
6 MenuTasteStatus nvarchar(50) nvarchar(255) TableComment2 nvarchar(255) OrderCalledMainCourse datetime OrderDetailPrice float ServiceStatus nvarchar(255)
2
MenuCategoryComment
7 MenuRecommendStatus nvarchar(50) nvarchar(255) TableComment3 nvarchar(255) OrderBilledTime datetime OrderDetailStatus nvarchar(255) ServiceComment1 nvarchar(255)
3
8 MenuStatus nvarchar(50) OrderClosedTime datetime OrderDetailedTime datetime ServiceComment2 nvarchar(255)
9 MenuComment1 nvarchar(255) OrderBookingNo nvarchar(255) OrderDetailCookedTime datetime ServiceComment3 nvarchar(255)
OrderDetailDeliveriedTim
10 MenuComment2 nvarchar(255) OrderMemberNo nvarchar(255) datetime ServiceComment4 nvarchar(255)
e
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
10. 10 2 .4 ) WO RKF L OW DIA G RA M
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. 11 2 .4 .1 ) STAT U SES O F O R DER IN G
A N D R EQ U EST IN G SERV IC ES
TM_MENU_CATEGOR
Table TT_ORDER_DETAIL Table TT_ORDER Table
Y
Description Description 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
Main course / Main
2 11_CONFIRMED Order is confirmed 2 90_COMPLETED Order or table is closed 2 20_MAIN_DISHES
dishes
4 30_COOKING An menu item is cooking 4 30_DRINK Drinks
5 40_SERVING An menu item is serving 5 40_SWEET Sweet
An Menu item is already
6 41_SERVED
served.
Table TM_MENU Table TM_MENU
Description Description
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_SERVICE
Description
Field ServiceType Field ServiceStatus
1 10_REQUEST_WAITER Request Waiter 1 OPENNED Service is being requested.
20_REQUEST_MAIN_COURS
2 Request main course 2 COMPLETED Service is completed.
E
3 30_REQUEST_BILLING Request billing
12. 3 ) T EC HN IC A L DESIG N F O R E - MEN U
Content
• Initial e-menu Design
• MVC (Model-View-Controller) Design
• Communication between .NET & iOS Platforms
12
13. 13 F O C US O N TEC HN IC A L DESIG N
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)
14. 1 ) IN IT IA L DESIG N
14
O F E - MEN U P R O TO T YP E
Main Features on iPad for
E-MENU WEB E-MENU APP customers
E-MENU SERVICES ON IPAD 1. Select menu categories
DATABASE
USING ASP.NET USING XCODE 2. Show details of food and drinks
3. Confirm order
4. Check order status
5. Request services
• Request a waiter
• Request main course
E-MENU WEBSITE
• Request a payment
FOR RESTAURANT
STAFF
USING ASP.NET Main features on website for staff
SQL Server 2005 ASP.NET iOS Platform
1. Manage tables
Platform
2. Operate orders
3. Operate service requests
Develop using ASP.NET and Xcode
15. 2) MODEL-VIEW-CONTROLLER (MVC) DESIGN
Database Model Model
Physical Model Classes Web services Model Classes
DB Web Service Manager
Accessing data Provide - Generate SOAP message (Create XML
in the database Web Services to
other platforms data)
Provide data logic
Microsoft - Translate SOAP message (Parse XML
e.g. selecting, Including data and
SQL Server
deleting, updating, data)
business logic e.g.
inserting data from GetMenuList - Encapsulate communication with Web
the database
Services
Controller & View Controller & View
Controller View Controller View
DBMS:
Database Provide business Provide UI for Provide business Provide UI for
Management logic for UI (User restaurant logic for UI (User restaurant
System Interfaces) Staff Interfaces) customers
DBMS Platform Platform
SQL Server ASP.NET Platform Apple’s iOS Platform
2005 (Developing tool: Visual Studio 2010) (Developing Tool: Xcode)
(Microsoft ASP.NET Team 2009; Mac Developer Library 2012)
16. 3 ) C O M M U N I C AT I O N B E T W E E N
16 AS P. N E T & I O S P L AT F O R M S
U S I N G W E B S E RV I C E S
Platform
Platform iOS (Xcode)
ASP.NET
VIEW &
MODEL CONTROLLE
Web Services R
Class: WebServiceManager Class: ServiceUtils Classes for UI
(ASP.NET)
Purposes Purposes: Purposes
SOAP • To convert Request
Request
Generator - To generate communication with • To provide
(Based on SOAP message Web Service from application
to request asynchronous to Function User Interface
XML XML) Parameters
consuming Web synchronous (UI) for
services • To combine all restaurant
functions provided by customers
- To receive Web Services
SOAP message
Respons SOAP Parser or response from Benefits: Respons
e (Based on Web services • Make it easy to e
XML) and translate to communicate with
XML Function
Xcode variables Web Services Return Value
(encapsulation)
18. 18 4 . 1 ) C L AS S E S D E V E L O P E D I N X O C D E
No Folder Name Class Description
The classes in this folder are used for
communication with Web Services e.g. generating &
1 10_WebServices All classes
parsing XML, and converting data types between
Web services and Xcode
This Class contains all web services functions, which
are easy to use. The main objectives of this class is
ServiceUtils to encapsulation using web services and to convert
communication with web services from
asynchronous to synchronous.
3 20_Utils This class contains static variables, such as Order,
SharedClass TableNo and ArrayMenuByCategory, to use as
public variables.
This class collects general reusable functions e.g.
GettingStringDataFromSettingFile,
ServiceUtils
ConvertTableNoToNo and ConvertNoToTableNo
functions.
19. 19 4 .2 ) VIEW C ON TR OLLER IN XC OD E
No Folder Name Class Description
Controls user interfaces of the "Menu
Class01_MenuDetail
Detail" screen
Controls user interfaces of the table in
Class02_EmenuCell
"Main Menu" screen
30_ViewContro Controls user interfaces of the "Confirm
1 Class10_ConfirmOrder
ller Order" screen
Controls user interfaces of the "View
Class11_ViewOrder
Order" screen (Confirm Order)
Controls user interfaces of the "Service
Class13_ServiceRequest
Request" screen
Control user interfaces of the "List of
MasterViewController
categories" screen
2 NMENU29
Control user interface of the "Main
DetailViewController
Menu" screen
20. 4 .3 ) VIEW C O N T R O L LER IN XC O D E
20
( C O N T.)
Main Menu Menu Detail Service Request
Menu Categories Confirm Order View Order
21. 21 4 .4 ) MA IN STORY B OA R D
Main menu screen Menu Detail Screen
Service Request
Screen
Service Request View Order Screen
Screen (Confirm Order)
22. 4.5) APPLICATION SETTING
22
PREFERENCES
Setting Bundle
The list file Setting preferences on iPad
25. 25 LIST OF WEB SERVICES
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
5 FindAvailableOrderByOrderTableNo Find available order by a table no
6 FindOrder Find order info. by an order no
7 FindOrderByCondition Find order info. by a condition e.g. Order Status = ’90_COMPLETED’
8 FindOrderDetail Find order item info. by an order item no
Find order item info. by a condition e.g. Order item status =
9 FindOrderDetailByCondition
’11_CONFIRMED’
10 FindServiceRequest Find service request info. by a service request no
Find service request info. by a condition e.g. service status =
11 FindServiceRequestByCondition
‘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
26. 26 LIST OF WEB SERVICES
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
UpdateOrderDetailStatusFromOrderingToConfirm Update order details status from ordering to confirmed by order
29
edByOrderNo no
30 UpdateOrderStatusFromClosedToOpenned Update order status from closed to opened
31 UpdateOrderToRecordCallingMainCourseTime Update order status to record calling main course time
28. 28 REFERENCES
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.
Hinweis der Redaktion
MODEL-VIEW-CONTROLLER (MVC) DESIGN
UAT: User acceptanceRAD: Rapid Application Development
MODEL-VIEW-CONTROLLER (MVC) DESIGN
See original file in Folder 10_ANALYSIS_DESIGN_DOC
See original file in Folder 10_ANALYSIS_DESIGN_DOC
ER: Entity Relationship
MODEL-VIEW-CONTROLLER (MVC) DESIGN
Images are saved in iPad because of performance reasons e.g. improve speed.DBMS: SQL ServerWeb Services: ASP.NetXcode: iPad applicationE-menu website: http://aces-web.aces.shu.ac.uk/students/b0043132/03_emenu/default.aspxE-menu on iPad (Video Demo): http://www.youtube.com/watch?v=bCsFiMHuG80E-menu web services: http://aces-web.aces.shu.ac.uk/students/b0043132/03_emenu/service.asmx
https://developer.apple.com/library/mac/#documentation/General/Conceptual/DevPedia-CocoaCore/MVC.htmlhttp://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview(Microsoft ASP.NET Team 2009)
Protocol for exchanging information in implementation of Web services: SOAP (Simple Object Access Protocol)
MODEL-VIEW-CONTROLLER (MVC) DESIGN
See example of screens in the next slide
Storyboard contains a hierarchy of objects for each unique screen that an application is going to display. The objects could be interface elements such as buttons, toggle switches (Ray 2012)
Application preferences for iPad application is a relatively straightforward process. It involves add a resource called Settings Bundle, configuring a property the list file, and then deploying in the application. After the application is deployed, the application preferences are automatically created in the Settings application (Lee 2012)