CP2011 Assignment Details, SP1 2014
Imagine that you are programmer for a
small independent software company. You have been given the task of implementing
a prototype electronic restaurant management system as a proof-of-concept. The
customer is a small local restaurant owner interested in exploring how
technology might improve the business workflow.
Here is what the restaurant
owner discussed with your software company:
“Our waiters take orders on
pieces of paper at the moment. So we would really like a computer-based system
that is more reliable and easy to use. We also need a coordinated way for the
waiters to handle table placement. Our tables are modular, so it’s easy to make
big tables out of small ones. Each small table is a square 4 seater, which we
used to seat 2-4 customers.
Customers can walk in or book ahead. We are happy
to organise a table for group sizes from 2 people up to 14 people if there is
enough space. We can fit a maximum of 56 seats in 4 columns of 6 small square
seaters pushed together, with enough walking room between each column. Our
restaurant space is almost grid-like, so we came up with this simple drawing
technique for tracking the tables on a whiteboard in the kitchen:
Each table
gets a number that uniquely identifies it. Green squares are for tables in use,
whereas orange squares are for reserved tables. We write the booking time next
to the orange squares. Around each table we show the seating arrangement with
numbers. We would like an electronic version of our whiteboard system since our
staff are very comfortable using it.
Our waiters are told to rearrange tables
to suit walk in customers as necessary. Note that a booking will stand as long
as the customer arrives no later than 45mins after the booking time.
Our
kitchen needs to get orders out as quickly as possible, so we really need some
clever way to tell the waiters when orders are ready to serve. Also, as
ingredients are used up we need an easy way to keep track of our stock so it
does not run out unexpectedly. We have nothing in place which makes that task
easy at the moment. Lastly, we recently purchased electronic systems for doing
Payrolls and Accounting, which we hope can be made to interoperate with the new
electronic restaurant management system. ”
Requirements Analysis
Your
software company made an agreement with the owner regarding the requirements of
the prototype system you are developing, as follows:
? Use web application
technology: HTML5/JS, JavaEE, MySQL, and Tomcat
o HTML forms that posts
requests to Java Servlets
o Java Servlets programmed to interact with a MySQL
database
? The web content will be static and dynamic pages, customised for
the needs of the users:
o Waiters use mobile devices with a screen size of
480(w) x 800(h) pixels
o Kitchen staff use a touch screen computer with a
screen size of 1280(w) x 1024(h)
o You are not required to implement any kind
of login management
? The prototype system consists of three main components:
1) Table management, 2) Order management, and 3) Inventory management
o
Depending on the progress of the programmer, the customer will be satisfied with
two of the three components being implemented
o However, table management is
a mandatory part of the prototype
o Another optional part of the prototype is
a MOCK implementation of APIs for interacting with the Payroll and Accounting
systems
Submission details:
? Individual submission: due 5pm Friday of
Week13, SP1 2014
? The required software artefacts for the prototype
are:
? A high-level deployment diagram illustrating the necessary software
and hardware setup
? A UCD, and the following “fully dressed” use-cases:
o
Table management: Place table, Change table, Remove table, Booking overdue
notification
o Order management: Create order, Change order, Order ready
notification
o Kitchen management: Restock ingredient, Use ingredient, Low
stock notification
? A Domain model that adequately describes the problem
domain for the restaurant, used to help define the MySQL database schema
?
The production code and the associated UML design diagrams, annotated with
information about what design patterns were used
? JUnit tests for
server-side functionality excluding Servlet classes
? The GUI does not have
to be fancy (e.g. animated drop-down menus), but some use of CSS that defines a
consistent look-and-feel across all pages is expected
? Use HTML canvas 2D
graphics and DOM events for Table management visualisation
? The MySQL
database should record information about the tables, orders, and inventory
o
You are not expected to produce a highly normalised database design
o But,
some care should be taken when choosing appropriate column data types
? Your
assignment will be evaluated by 1) executing your prototype to see how well your
use-cases have been implemented, and 2) executing the server-side JUnit test
cases
o You are expected to provide comprehensive test cases for database
connectivity
o And, we will evaluate in detail at least two use-cases from
two of the major system components that you implement
名称 | 餐厅电子管理系统 |
软件环境 | Eclipse(javaEE,tomcat)
Xampp(Apache,MySQL,phpmyadmin) |
开发语言 | Html5/js
Java sql |
硬件环境 | pc |
项目要求 | 餐厅电子管理系统
桌子是方块形的,可以把单个桌子拼一起成一个大的,每个小桌子有4座能座2-4人,顾客能直接进来坐着吃也能预定。如果餐厅空间足够,可以安排2-14人的桌子,最多4列 每个桌子都有唯一的编号。绿色的是正在使用中的桌子,橙色的是被预定的。预定时间标注在橙色桌子边上。桌子周围的座位也是有编号的。 桌子的布局能随时变换,预定的桌子在预定后45分钟还没有到可以被重新安排。(餐桌管理)为了让厨房的出菜更快,一个菜好了之后会迅速通知服务员(菜单管理),店里的原材料库存多少也是能跟踪的(库存管理) 用到的技术:HTML5/JS, JavaEE, MySQL, and Tomcat Html表给JAVA Servlets传递需求 JAVA Servlets和MySQL database交互 网页的内容是静态动态结合:餐桌管理480(w) x 800(h) pixels 菜单管理 1280(w) x 1024(h) pixels (不需要登录系统) 这个原型系统包括:(1)餐桌管理(2)菜单管理(3)库存管理 只需要实现这个其中两个就行,但是餐桌管理是必须有的 上交需求:一个高级开发图表说明必要的软件和硬件设置。 一个UCD,及以下use-cases: 餐桌管理: Place table, Change table, Remove table, Booking overdue 菜单管理: Create order, Change order, Order ready notification 库存管理: Restock ingredient, Use ingredient, Low stock notification 一个Domain model描餐厅的problem domain,帮助定义MySQL构架 代码和相关联的UML设计图注明使用了哪些design patterns JUnit 测试服务器端的运行情况(除了Servlet类) GUI不需要特别美观,但是必要的CSS还是需要的 用HTML canvas 2D 图像和DOM 实现餐桌管理 MySQL数据库应该记录餐桌,菜单,库存信息(数据库设计不用高度正规化) 这个作业的评分(1)运行原型看use-cases |
交付日期 | 2014年5月28号 |
其他说明 | |
买方能提供的技术支持 | |
特别强调的 | 1, 这个原型系统包括:(1)餐桌管理(2)菜单管理(3)库存管理
只需要实现这个其中两个就行,但是餐桌管理是必须有的 2, 3, 4, |