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列 56 座的每个由6小桌子拼起来的大桌,之间能有空间给人行走。下面这是一个正在使用的简易白板 每个桌子都有唯一的编号。绿色的是正在使用中的桌子,橙色的是被预定的。预定时间标注在橙色桌子边上。桌子周围的座位也是有编号的。 桌子的布局能随时变换,预定的桌子在预定后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 notification 菜单管理: 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 实现的怎么样(2)运行服务器端JUnit测试,包括综合的数据库连接,从两个主要系统至少选两个use-cases运行 |
交付日期 | 2014年5月28号 |
其他说明 | |
买方能提供的技术支持 | |
特别强调的 | 1, 这个原型系统包括:(1)餐桌管理(2)菜单管理(3)库存管理
只需要实现这个其中两个就行,但是餐桌管理是必须有的 2, 3, 4, |