中南民族大学计算机科学学院实验报告课程面向对象分析与设计题目餐厅点餐系统年级2009级专业软件工程姓名李成学号09065093指导教师王新年日期2012年4月13日餐厅点餐系统(Version 1.0)姓名:李成学号:09065093计算机科学学院软件工程2012年3月9日文档修订历史目录1概述 (5)1.1系统简述 (5)1.2软件设计目标 (6)1.3参考资料 (7)1.4修订版本记录 (8)2 术语表 (8)3 用例 (9)4 设计概述 (12)4.1 简述 (12)4.2 系统结构设计 (13)4.3 系统界面 (15)4.4 约束和假定 (18)5 对象模型 (18)5.1 类定义 (18)5.2 类关联描述 (18)5.3 对象模型图 (19)6 对象数据字典描述 (19)6.1餐厅点餐系统中的对象 (19)7 动态模型 (25)7.1场景 (26)7.2事件定义 (26)7.3状态图 (29)8功能模型 (30)8.1确定输入输出与事件关系 (30)8.2功能模型图 (30)9数据库定义 (31)10部署图 (32)1概述1.1系统简述众所周知,餐厅的点餐都是用的口传或者点菜单的方法,随着信息时代的到来,特别是计算机的发展,很多餐厅希望通过使用计算机点餐使其更加方便,更加易于管理。
相比于传统的口传或者点菜单的方法,计算机点菜不仅方便简单快捷,而且节省成本人力物力,也让顾客更了解菜品,让厨师更简单的了解顾客的需求。
点菜系统扩展功能,让厨师了解大众口味,让客户了解餐厅特色,让餐厅老板了解餐厅生意状况,了解厨师手艺。
餐厅客户、厨师、服务员、餐厅老板和系统管理者都可以通过联机登陆该系统,使用系统的相应功能并作出管理。
餐厅点餐系统,是一个现代化的信息管理系统,它主要包括程序开发,数据库的建立及维护,各级用户界面的建立三大方面。
运行环境硬件环境:服务器端/客户端:显示屏:客户端需触屏处理器:Intel PentiumIII 或者更高内存:521M或者更高硬盘空间:160G或者更高软件环境:服务器端/客户端:操作系统:Windows 7/XP/Vista/NT/ME网络协议:TCP/IP、HTTP1.2软件设计目标首先,客户可以直接用游客身份登录软件,然后系统提供本餐厅的菜品及介绍,客户可以通过菜品名或者菜品代码点餐,并在备注中说明自己的需求,系统将数据整理有发给厨师和服务员,用户在用餐完后可以对菜品或者厨师做出评价,系统自动保存并将数据整理。
厨师和服务员以服务者身份登陆系统,接收系统发来数据,根据用户需求做好相应工作。
老板以管理员身份登陆系统,通过查看系统统计整理的数据了解客户需求量大的菜品,了解客户最喜欢的厨师以及大众的口味需求,对餐厅各方面做出调整,管理员以管理员身份登陆系统,对系统进行日常的维护,升级。
当然系统很容易开发出其他有用的功能,但是现阶段总体上软件设计需达到3个目标:(1)客户利用系统了解餐厅特色,以及点餐;(2)客户向厨师提出合理的要求,以及对餐厅服务和食物口味作出评价;(3)软件对数据整理并输出,使厨师及服务员了解客户需求,老板登陆该系统了解餐厅经营状况,了解客户需求及评价。
从非功能性需求上分析,软件用户界面:客户界面应该尽量简单明了,美观,方便大众用户点餐,厨师的输出界面应该很直观而且有条理;系统可靠性:应该考虑到系统数据最大容量,考虑到就餐高峰期用户量大,系统应能正常使用;系统反应时间:为了让信息迅速的到达厨师,系统的信息处理速度应非常快。
系统活动图如下:1.3参考资料[1]《软件需求规格说明书》;[2]麻志毅. 《面向对象分析与设计》. 机械工业出版社,2008年3月.[3]宁木成. 《餐厅点餐系统设计报告》. 百度文库,2010年2月.[4]牛丽平,郭新志,宋强,杨继萍等. 《UML面向对象设计与分析》. 清华大学出版社出版社,2007.1.4修订版本记录文档修订历史2 术语表客户1.登录系统:在执行所有操作之前,必须登录系统。
这是所有的操作的前提。
2.查看菜单:客户查看系统提供的本饭店的菜品及相应的介绍。
3.点餐:客户输入自己想点的菜品名或者代码。
4.提出要求:客户根据自身喜好对服务员和厨师提出要求。
5.作出评价:用餐完后,客户可对菜品及各种服务作出评价。
厨师,服务员1.登录系统:在执行所有操作之前,必须登录系统。
这是所有的操作的前提。
2.注册:服务人员需注册,然后以服务人员身份登陆系统进行相关操作。
3.查看客户服务需求:服务人员查看客户点餐单及客户其他需求。
老板1.登录系统:在执行所有操作之前,必须登录系统。
这是所有的操作的前提。
2.统计信息:老板可统计用户点菜信息及对本饭店菜品和服务的评价。
3 用例系统总体用例图如下:统计点餐信息4 设计概述4.1 简述本系统采用了面对对象分析、设计方法,基于对象而再是基于结构;系统采用了三层B/S结构风格,包括数据库服务器、应用服务器以及Web 浏览器。
作图过程中采用的是office visio进行作图。
4.2 系统结构设计系统层级方框图如下:4.2.1 顶层系统结构系统顶级结构图如下:4.2.2 子系统1结构4.2.3 子系统2结构4.2.4子系统3结构客户界面(客户可直接登录系统,不需要注册):相遇情饭店相遇情饭店欢迎您!客户已点菜品服务人员及老板界面:厨师服务员显示界面:点菜信息统计界面:数据统计界面:4.4 约束和假定该系统必须在2012年12月之前完成,预算5万元人民币。
提供3-4个熟练队员。
该系统用面对对象的程序设计语言开发。
当100名用户同时使用该系统时,系统应该正常运行。
系统响应时间应该在人所能接受的等待时间范围之内(一般为3秒左右)。
客户界面友好,漂亮,服务者界面简约,内容详细,整个系统易于操作,安全性好,稳定性好。
系统餐厅客户界面支持触屏显示操作,使客户有新鲜感,利于操作,适合餐厅的放置,厨师界面支持LED显示屏显示,使厨师对客户需求一目了然。
5 对象模型5.1 类定义用户菜品评价用户信息5.2 类关联描述5.3 对象模型图6 对象数据字典描述6.1餐厅点餐系统中的对象6.1.1对象:用户信息用途:描述用户的信息约束:每个用户只有一个用户身份持久性:长期存在与数据库中6.1.1.1属性描述1.属性:用户名类型:char型描述:不同的用户可能同名约束:每个用户只有一种身份2.属性:密码类型:int型描述:不对外开放的信息约束:一个用户只能有一个密码3.属性:编号类型:int型描述:主键,唯一标识用户约束:每个用户只能有一个编号6.1.1.2方法描述:1.方法:添加用户返回类型:char型参数:name[]返回值:infor[]Pre-Condition:该用户不存在Post-Condition:将用户信息添加到数据库显示添加用户信息读取/修改的属性:读取用户名调用的方法:程序中嵌入SQL语句处理逻辑:根据获得的用户名,在数据库中增加用户名2.方法:更改用户信息返回类型:char型参数:name[]返回值:infor1[]Pre-Condition:该用户已存在Post-Condition:将修改的的用户信息添加到数据库显示更新后的用户信息读取/修改的属性:读取用户信息调用的方法:程序中嵌入SQL语句处理逻辑:根据获得的用户名,在数据库中删除原有信息,并增加新的信息3.方法:删除用户信息返回类型:char型参数:name[]返回值:空Post-Condition:该用户不存在读取/修改的属性:读取用户信息调用的方法:程序中嵌入SQL语句处理逻辑:根据获得的用户名,在数据库中删除原有信息测试列:6.1.2对象:用户用途:区分用户身份约束:进入系统前都要选择用户身份持久性:永久存在于数据库中6.1.2.1属性描述1.属性:身份类型:char型描述:不同的用户可有相同的身份约束:每个用户必须有一个身份6.1.2.2方法描述1.方法:更改返回类型:char型参数:name[]返回值:status[]Post-Condition:更新的用户信息保存在数据库中读取/修改的属性:读取身份调用的方法:程序中嵌入SQL语句处理逻辑:获取用户身份信息,若数据库中存在相同信息,则进入相应界面测试列:6.1.3对象:菜品用途:记录菜品信息约束:每个菜品都有相应的介绍持久性:长期存在于数据库中6.1.3.1属性描述1.属性:编号类型:int型描述:唯一标识菜品约束:每个菜品必须有一个编号2.属性:菜名类型:char型描述:一种菜可有多个菜品约束:一个菜品只能对应一种菜3.属性:介绍类型:char型描述:菜品的信息介绍约束:每种菜品必须有一种介绍6.1.3.2方法描述1.方法:添加返回类型:char型参数:name[]返回值:cname[]Pre-Condition:该菜品不存在Post-Condition:将菜品信息添加到数据库显示添加的菜品信息读取/修改的属性:读取菜品信息调用的方法:程序中嵌入SQL语句处理逻辑:根据获得的菜品名,在数据库中增加菜品信息2.方法:更改返回类型:char型参数:name[]返回值:cname[]Pre-Condition:该菜品已存在Post-Condition:将修改的的菜品信息添加到数据库显示更新后的菜品信息读取/修改的属性:读取菜品信息调用的方法:程序中嵌入SQL语句处理逻辑:根据获得的菜品名,在数据库中删除原有信息,并增加新的信息3.方法:删除返回类型:char型参数:cname[]返回值:空Pre-Condition:该菜品已存在Post-Condition:该菜品不存在读取/修改的属性:读取菜品信息调用的方法:程序中嵌入SQL语句处理逻辑:根据获得的菜品信息,在数据库中删除原有信息测试列:6.1.4对象:评价用途:存储客户对菜品的意见约束:每个评价都必须有对应的菜品持久性:长期存在于数据库中6.1.4.1属性描述1.属性:对象类型:int型描述:标识评价是对哪种菜品约束:每个评价必须有对应的对象2.属性:内容类型:char型描述:保存评价的内容约束:内容不能为空6.1.4.2方法描述1.方法:统计返回类型:int型参数:biaog[]返回值:tongji[]Pre-Condition:统计对象信息已存在于数据库中Post-Condition:将对象信息统计表格输出读取/修改的属性:读取用户统计请求调用的方法:程序中嵌入SQL语句处理逻辑:在数据库中调用相应信息,制表,输出测试列:7 动态模型7.1场景7.1.1场景:注册描述:厨师、服务员、老板都必须根据自己的身份进行注册,填写注册信息,获得登陆密码。
动作1:打开餐厅点餐系统页面,点击注册动作2:填写注册信息7.1.2场景:登陆描述:用户打开餐厅点餐系统页面,输入登录权限、账号、密码,经系统验证完全正确后,系统自动跳转到相应权限的操作页面。