1《面向对象设计与UML》课程大作业餐馆订餐系统的分析与设计专业班级:授课教师:完成时间:经济与管理学院2前言UML是一门很新的课程,用起来是十分的方便和适用的。在课程快要结束的时候老师交给我们每个组一个任务——用UML画一个自己所要开发的系统的图。这和流程图不一样,流程图我们用了一些伪代码和我们自己的语言而画成。用UML则不一样,它用了一些UML所特定的图来代表它的功能,方向等等。又因为我们是初次接触这门课,所以我们只画了比较简单的系统——订餐系统。老师讲一种图我们就画一种,在老师的不断纠正和自己的不断改进下,当课程结束后我们一组4人终于完成了我们的订餐系统图。在其中包含了用例图,顺序图,协作图,类图,状态图,活动图,构件图和部署图8个图。为了人更能理解我们的系统具体的功能我们还做了一下一些必要的工作。1、画每个图之后做了文字注释比如一些名词的解释,功能的具体解释等。2、尽量将每种图的细节画出来画这些图也不是要真正的要开发这个系统,只是为了我盟能够更好的理解UML,为我们了解这门课也好还是以后真要从事这项工作也好能够更好理解这门课程,学懂这门课程打下基础。3目录一、订餐系统功能描述····································31、功能分析·····················································42、需求分析·····················································4二、订餐系统中的用例分析·································5三、订餐系统中的各种图···································61、订餐系统中的用例图···········································6(1)、主管的用例图······················································7(2)、客户的用例图·······················································8(3)、送餐人员的用例图····················································8(4)、系统维护员用例图····················································92、订餐系统中的顺序图···········································11(1)、客户添加充值顺序图··················································12(2)、客户订餐顺序图·····················································12(3)、主管对餐馆信息查询顺序图···········································13(4)、菜单更新顺序图用户添加充值顺序图····································143、订餐系统中的协作图···········································15(1)、客户订餐协作图····················································16(2)、主管查询协作图····················································16(3)、送餐协作图························································174、订餐系统中的类图············································18(1)、类图的生成······················································18(2)、系统中的其他类··················································195、订餐系统中的状态图··········································19(1)、电话订餐的状态图··················································20(2)、网上订餐的状态图··················································216、订餐系统中的活动图··········································22(1)、客户的活动图·····················································23(2)、送餐人员的活动图·················································23(3)、主管的活动图·····················································247、订餐系统中的构件图····················································24(1)、业务对象构件图···················································25(2)、用户界面构件图···················································268、订餐系统中的部署图··········································26四、小组成员及分工·······································28五、总结·············································284一、订餐系统功能描述(1)功能分析本系统可以划分为三大模块,他们是订餐管理模块,餐馆管理模块和会员管理模块。其中餐馆管理主要简化为了餐馆管理和菜单管理。餐馆管理模块分别提供增加、修改、删除的灌录功能,而最为核心的订餐管理模块提供记录订单、修改订单、取消订单、定时提醒和查询空桌等功能。以上几个模块之间的耦合性比较小,但其中订餐管理会和其他几个模块所维护的信息相关联因此,系统应注意提供数据完整性的维护功能。(2)需求分析本系统的基本要求是餐馆在营业时记录预约,更新预约单信息,分配餐桌以及接待来预约的顾客的能力,还添加了会员业务,为会员提供提前点菜的服务。主要功能有下菜单,修改订单,取消订单以及在顾客未按时到达及时提醒顾客;同时还能记录未预约的顾客维护订单和未预约记录,如记录到达,离开以便及时更新餐桌的状态,附加的功能有管理会员信息,为会员提供提前点菜的服务。5二、订餐系统中的用例分析用例是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列【SY98,p153】。用例同样是系统、子系统或外部的参与者交互的动作序列的说明,包括可选的动作系列和会出现异常的动作序列【RJB99,p488】。而本系统中的用例有订餐,主管查询,送餐员送餐和客户订餐等。订餐系统订餐管理餐馆管理会员管理订单管理定时提醒查询空桌菜单管理餐桌管理删除餐桌信息删除餐桌信息修改餐桌信息6(1)主管:主管可以登录系统查看一天的销售情况、顾客的建议、顾客提交的订单、以及查看库存、修改菜单等;(2)顾客:查看菜单、向餐馆提出建议、以及订餐等。(3)厨师:查看顾客提交的订单获得菜名、顾客提出的建议等(4)送餐人员:查看顾客提交的订单获得地址。(5)系统管理员:维护系统。由以上的分析可以看出,系统的参与者主要有5类:主管、顾客、厨师、送餐人员、系统管理员。三、订餐系统中的各种图1、订餐系统中的用例图用例图(UseCaseDiagram)在需求分析阶段有很重要的作用,它描述人们希望如何使用一个系统,作为参与者的外部用户所能观察到的系统功能的模型图。开发的全过程都是围绕需求阶段的用例图进行的。7(1)、订餐系统用例图系统用户送餐送餐员订餐查询客户付费系统维护员系统维护材料采购销售查询与管理主管员工管理图1系统用例图(2)、客户的用例图:包含如下用例:8(1)、登录系统。(2)、查看菜单。(3)、订餐、付费。订餐付费客户查询图2客户用例图(3)、送餐人员的用例图:包含如下用例:(1)、登录系统。(2)、查看客户订单获取送餐地址。9送餐送餐员查询用户地址图3送餐员用例图(4)、主管的用例图:包含如下的用例:(1)、登录系统。(2)、销售查询与管理(用户是否已经付款)。(3)、设置材料采购数据。(4)、员工管理。10材料采购员工管理主管销售查询与管理图4主管用例图(5)、系统维护员的用例图:包含如下的用例:(1)、系统的维护与管理。系统维护员系统维护图5系统维护员用例图112、订餐系统的顺序图顺序图(SequenceDiagram)主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。顺序图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。顺序图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统的对象现在如何交互。当把这个系统移交给另一个人或组织时,这个文档很有用。订餐系统的时序图主要有:(1)、用户添加充值顺序图;(2)、客户订餐顺序图;(3)、主管对餐馆的相关信息查询顺序图;(4)、菜单更新顺序图;1、用户充值顺序图:12前台服务员用户添加窗口用户添加用户分类用户帐户1:添加用户2:用户名查询3:返回结果4:用户分类5:添加新用户6:账户充值查询用户是否重复,重复则请用户重新填写用户名对用户帐户进行分类如:VIP用户等等图6用户充值顺序图2、客户订餐顺序图:13用户订餐窗口系统菜单返回订餐窗口用户信息用户账户1:登陆2:添加需定菜品3:检查菜单4:返回订餐菜单5:填写用户信息6:支付7:返回订餐窗口图7客户订餐顺序图3、主管查询顺序图:14餐厅主管查询窗口查询对象打印机1:登陆2:查询对象3:返回结果4:打印报表此功能是给餐厅主管对订餐的网上订餐情况等相关信息的查询图7主管查询顺序图4、菜单更新顺序图:15系统维护员菜单窗口菜谱数据库原料数据库1:登陆2:添加新菜品3:返回更新结果4:系统自动更新5:查询系统菜谱6:查询原料库7:返回原料数据图8菜单更新顺序图3、订餐系统中的协作图协作图是用于描述系统的行为是如何由系统的成分协作实现的图,协作图中包括的建模元素有对象(包括参与者实例、多对象、主动对象等)、消息、链等。协作图中消息的概念和顺序图的消息概念一样,协作图中用链来连接对象,而消息显示在链的旁边,一个链上16可以有多个消息。(1)、客户订餐协作图用户订餐窗口系统菜单返回订餐窗口用户信息用户帐户1:登陆2:添加需订菜品5:填写用户信息3:检查菜单4:返回订餐菜单6:支付7:返回订餐窗口图9客户订餐协作图(2)、主管查询协作图餐厅主管查询窗口查询对象打印机1:登陆2:查询对象3:返回结果4:大印报表17图10主管查询协作图(3)、用户充值协作图前台服务员用户添加窗口用户添加用户分类用户帐户1:添加用户6:账户充值2:用户名查询3:返回结果4:用户分类5:添加新用户图11用户充值协作图(4)、菜单更新协作图系统维护员菜单窗口菜谱数据库原料数据库1:登陆4:系统自动更新2:添加新菜品5:查询系统菜谱3:返回更新结果6:查询原料库7:返回原始数据图12菜单更新协作图184、订餐系统中的类图类图是对象结构建模的一部份,类图描述系统中类的静态结构。尽管其他模型可以帮助建模者发现被模拟对象的重要信息,但是它们不能