1、0实 验 报 告(2013/2014 学年 第二学期)课程名称 统一建模语言实验名称 实现模型的建立实验时间 2014 年 4 月 22 日指导单位 计算机学院软件工程系指导教师 陈志组 号 26学生姓名 xxx 班级学号 xxx学生姓名 xxx 班级学号 xxx学生姓名 xxx 班级学号 xxx学生姓名 班级学号学院(系) 计算机学院 专 业 软件工程成 绩 批阅人 陈志 日期 2014-5-141实 验 报 告实验名称 实现模型的建立 指导教师 陈志实验类型 综合 实验学时 2 实验时间 2014-4-22一、 实验目的、要求和团队分工在实验1、2及3的基础上,细化餐厅预订系统的模型:(1
2、)确定对餐厅预订系统的组件图(构件图)的描述、布署图的描述、数据库实体的确定及实体关系;(2)完成类图的详细设计、包括类的方法及属性及类之间的确定关系,给出类中关键方法的实现算法;(3)运用 RSA 软件将构件图映射为相应的代码框架并选择其中的部分加以实现;(4)利用集成环境、编制一个图形用户界面将上述实现的功能加以演示。2二、 实验环境(实验设备)操作系统: Microsoft Windows NT 2003Microsoft Windows 2000 Microsoft Windows 98 数据库环境: 开发语言:33、实验原理及内容当前该 XX 餐馆采用的是一个传统的手工预约系统,将手
3、写预约单保存在一个大文件夹中,这种传统的方法不但效率低,而且容易出错,产生诸多问题。例如a) 手工预约单使空餐桌的存在不明显,妨碍顾客进行预约。b) 由于没有备份系统,一张预约单的毁坏将导致相应信息的永久丢失。c) 不容易获得相应的统计数据,例如某时刻餐桌的使用率d) 对系统不容易进行更新等操作基于上述种种缺陷,XX 餐馆向我方提出设计更换一个自动化的订餐管理系统,要求保留原有传统手工方式的功能和工作人员熟悉的操作方式,同时改进系统,以节约人力成本。参考资料软件工程(第二版) 张海潘 编著面向对象设计 UML 实践Mark priestley 著一、需求规定 1 系统功能系统功能描述功能名称
4、功能描述 功能约束 处理过程添加预约 包括早、中、晚三部分可预定时间,可预约当天及以后3 天内的所有空闲餐座当桌位被预订后桌位在预定时间前后一小时保留显示为餐座不可用预约餐座标记为空闲时可用通过相关记录预约功能模块将信息读入数据库。删除预约 当客人取消预定,经前台管理人员确定后,系统将已经预订的桌位改为空闲状态。餐座必须标记为预约状态时可用从数据库读预约信息并对数据库执行删除记录动作。各类信息查询 为用户提供模糊查 联合查询 根据关键字将信息从4询预约信息、用餐信息。据库中读取出来更改预约状态 对已经预约的订单条目信息参照客人要求作出相应的修改。当客人来时(到达预约时间)餐桌自动显示为用餐状态
5、。餐座必须标记为预约状态时可用从数据库读预约信息并对数据库执行修改记录动作。实时消费管理 桌位查询,查询桌位的状态(包括桌位是否为空,座位数)。输入合法的餐座号,已经预约和处于就餐状态的餐座不可查询根据关键字将信息从据库中读取出来结算模拟功能 用户用餐结束后可以要求前台进行结算,执行此功能后餐桌更改为空闲状态要求可结算餐桌均为处于用餐状态餐座将数据库表中处于用餐状态的所有表目录信息调出查看并选择进行结算后删除条目开台功能 根据查询后桌位,记录来用餐的客户数目并将餐座状态修改为用餐态要求订单是完全处理后的情况将数据库中的订单表进行添加,生成新的订单记录2 对性能的规定2.1 精度数据名称 数据精
6、度 说明数值型数据 8 位,整型 无文本型数据 二十位以上的字符 无日期型数据 年-月-日 无2.2 时间特性要求时间特性名称 时间特性要求 说明响应时间 3 秒之内 无更新处理时间 5 秒之内 无5数据的转换和传送时间 2 秒之内 无2.3 输人输出要求数据名称 媒体 格式 数值范围 精度 输出控制说明数值型 无 99999999 0-9999999 整型 无 无文本型 无 二十位以上的字符Varchar 型 无 无日期型 无 年-月-日 2007-2100年精确到日无 无3 数据管理能力要求表的大小规模:随着数据的录入,表的规模可以无限量的扩大,仅受限于 ACCESS数据库对表大小的支持。
7、管理的记录的个数:仅受限于 ACCESS 数据库管理记录的个数,其它限制无。4 故障处理要求1) 可能的软件故障:数据库误操作引起数据库链接断开软件故障的处理要求:重新启动软件可恢复,数据不丢失2) 可能的硬件故障:断电导致数据库断开链接硬件故障的处理要求:重新启动软件可恢复,数据不丢失5 其他专门要求运行环境要求:ACCESS 数据库支持。软件具备基本功能之外,应该具有友好,易用的界面,软件模块化,可维护,可扩充,可重新组装,进行更新和维护等基本功能。二、概要设计1 基本设计概念和处理流程1.1 系统用例图:6DISPLAY BOOKING:(显示预约): Staf updateDispla
8、y() : BokingSystem : Restaurant : Bokingdisplay(date) getBokings(date)*getDate()return datereturn bokingsupdateDisplay()Cancel booking:(取消预约)7: Staf : BokingSystem /Curent : Boking /Selcted : BokingselctBoking(id)*getDetails()cancel()updateDisplay()confirm()return yes8Main:(主用例图)ReceptionistStafReco
9、rd bokingCancel bokingDispaly bokingsTable transferRecord walk-inRecord arivalHead Waiter9Record arrival:(预约到达): Staf : BokingSystem /Curent : Boking /selcted : BokingselctBoking(id)*selctDetails()recordArival() setArivalTime(now)updateDisplay()Record booking:(记录预约): Recptionist : BokingSystem retur
10、n t : Restaurant: Resrvation: Table : Customerreturn Resrvationmake Resrvation(details)updateDisplay()makeResrvation(details)t:=getTable(tno)c:=getCustomer(name,phone)return ResrvationResrvation(date,t,c)10Transfer Table:(交换餐桌): Staf StafUI : StafUI : BokingSystem /Curent : BokingmouseDown(pos) selc
11、tBoking(time,table)mouseMove(pos)mouseUp(os) transfer(time,table)1.2 类图:Domain model:11Restaurant:121.3 系统功能图:13程序主页面记录预约信息页面显示预约信息页面更新预约信息页面修改预约信息页面输入客户信息并查询餐桌信息新增预约信息确认输入日期或客户名查询预约信息输入客户信息并查询预约信息输入客户信息并查询显示查询的预约信息更改预约信息确认取消预约信息确认返回程序主页面1.4 系统页面跳转图:14登录界面登录输入用户名 , 密码 登录验证验证错误验证成功主界面预约预约界面记录到达记录到达界面
12、提交确认新添新添界面修改修改界面删除选定界面查询界面查询输入信息输入信息输入信息输入信息新添删除查询修改确认结帐输入信息 确认2 人工处理过程各个模块的各种添加,修改,删除,显示操作。3 数据库设计3.1 ER 图:15餐桌预订顾客编号 顾客姓名 顾客电话预订单订单编号顾客编号用餐人数当前日期预订时间预订日期用餐桌号到达状态付账状态顾客占用桌号 区域 座位数 状态N1113.2 数据表的设计:餐桌表:字段名 数据类型 长度 缺省值 允许空 主键 注释TALNO 自动编号 长整型 无 不允许 是 桌子编号PLACES 长整型 64 无 允许 否 餐桌号REGION 布尔型 1 无 允许 否 是否
13、预约STATE 布尔型 1 无 允许 否 是否繁忙客户表字段名 数据类型 长度 缺省值 允许空 主键 注释CNO 自动编号 长整型 无 不允许 是 客户单编号16CNAME 文本 无 允许 否 客人姓名PHONE 文本 无 允许 否 客人电话预约表字段名 数据类型 长度 缺省值 允许空 主键 注释RESERVATION_ID 长整型 64 无 不允许 是 自动标号COVERS 长整型 64 无 允许 否 顾客数PREDATE 文本 文本 无 允许 否 订阅日期ARRIVALDATE 文本 文本 无 允许 否 到达日期ARRIVALTIME 文本 文本 无 允许 否 到达时间TALNO 文本 文
14、本 无 允许 否 桌号CNO 长整型 64 无 允许 否 顾客编号ISARRIVAL 布尔型 1 无 允许 否 是否到达ISPAYBILL 布尔型 1 无 允许 否 是否结帐三、详细设计1 程序系统的结构17餐馆预约系统记录预约模块记录到达模块显示预约模块更新预约模块取消预约模块顾客打电话预约,接待员输入顾客信息和预约信息顾客到达餐馆,侍者领班记录顾客到达信息侍者领班和接待员可查看已有的预约信息顾客打电话更新预约,接待员输入新的预约信息顾客打电话取消预约,接待员取消预约信息2 程序(标识符)设计说明2.1 程序描述通过此系统用户可以很方便地实现餐馆和预约相关的功能,如:记录,更新,取消,预约等
15、.2.2 功能记录预约模块:顾客打电话预约,接待员输入顾客信息和预约信息记录到达模块:顾客到达餐馆,侍者领班记录顾客到达信息显示预约模块:侍者领班和接待员可查看已有的预约信息更新预约模块:顾客打电话更新预约,接待员输入新的预约信息取消预约模块:顾客打电话取消预约,接待员取消预约信息3 性能对响应时间没有太严格要求。4 输入项18记录预约模块 客户名 非空客户电话 数字,字母符号,长度小于 30。预约用餐时间 单选框选择确定预约 以按钮形式确认提交预约用餐时间 单选框选择确定预约 以按钮形式确认提交显示预约模块全部采用复合单选框的模式选择相应的日期时间,以按钮方式确认查询。更新预约模块客户名 非
16、空修改确认 采用复选框形式更改已有信息,以 click 按钮方式提交.取消预约模块客户名 非空删除确认 采用复选框形式更改已有信息,以 click 按钮方式提交.5 输出项记录预约模块:输出项对相应的数据库进行操作,显示失败或者成功页面, 完成后显示所有预约。显示预约模块:输出项为查询到的相应的预约信息。更新预约模块:对相应得数据库进行操作,显示失败或者成功页面,完成后显示所有预约。取消预约模块:对相应得数据库进行操作,显示失败或者成功页面,完成后显示所有预约。6 系统模块功能流程图6.1 新建预约模块详细流程图:19新建预约页面输入客户信息和要预定的餐桌信息有合适餐桌确认预约餐桌信息 取消预约YN返回程序主页面6.2 显示预约模块:20显示预约页面输入客户信息或日期并查询找到预约显示预约信息YN返回程序主页面没有该客户的预约或当日无预定6.3 更改预约模块:21更改预约页面输入客户信息查询找到预约更改预约信息YN返回程序主页面没有该客户的预约6.4 取消预约模块:22取消预约页面输入客户信息查询找到预约取消预约信息YN返回程序主页面没有该客户的预约23四、实验小结(包括问题和解决方法、心得体会等)