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