资源描述
,*,天津师范大学管理学院,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,4.3,面向对象的系统分析实例,以酒店管理中系统中的订房系统为例,说明面向对象分析的建模方法和关,键步骤,4.3,.,1,类图建模要点,类图,(class diagram),用来表达系统内部的静态结构,(static structure),。,(,1,)分析师不能自己随意定义类,必须寻找领域术语做为类名称。,例如:,房间,真正住进去,特定房号的房间。,房型,顾客在订房时,通常是预订某个房型的房间。,(,2,)领域概念非常多,分析师应用,“,事务模式,”,构建类图的原型,然后再进行扩展,完善。,(,3,)仔细考虑属性,/,操作的可见性,(,4,)类的关联和组合关系,1,4.3,面向对象的系统分析实例,4.3,.,2,运用,“,事务模式,”,建立类图,“,事务,”,一词在不同的领域中有不同的解释,在信息系统与数,据库相关的领域中,事务(,transaction,)是并发控制的基本单,位。它是一个操作序列,这些操作要么都执行,要么都不执行,它,是一个不可分割的工作单位。,在面向对象的分析过程中,系统的静态结构往往以各种事务为,中心。找出与事务相关的事务明细(,TransactionLineItem,)、涉,众(,Participant,)、地点(,Place,)、物品(,Item,),就可以快速,构建系统的类图原型。,2,4.3,面向对象的系统分析实例,(,1,)事务与人、地、物,事务模式强调以事务(,transaction,)对象为中心,串起与事务有关的其他,对象,如事务明细、涉众、地点、物品。其一般结构如下:,系统中,“,必须记录的事件,”,都是我们的侯选事务。,3,4.3,面向对象的系统分析实例,运用事务模式,我们可以很快得出酒店订房系统的初始类图:,4,4.3,面向对象的系统分析实例,(,2,)物品与特定物品,事务涉及的物品概念可以细分为两种:一种是具体的、特定的物品,另一种是针对同种类特定物品的描述和分类。在事务模式中,将这两个概念称为,“,特定物品(,SpecificItem,),”,和,“,物品(,Item,),”,,通过寻找特定物品和物品,类图可进一步完善:,5,4.3,面向对象的系统分析实例,通过寻找特定物品和物品,酒店订房系统的类图可进一步完善:,由于目前还无法确定图中,“,房间,-,订房明细,”,以及,“,房间,-,订房,”,这两条关,联,因此分析师在此加上,“,未确定,”,注释。,注释(,comment,),6,4.3,面向对象的系统分析实例,“,房间,-,订房明细,”,以及,“,房间,-,订房,”,这两条关联,可能都不是单纯的一对多,关联,有可能是如下的多对多的关联,还需详细讨论。,7,4.3,面向对象的系统分析实例,(,3,)后续事务,事务本身含有时间因素,因此事务之后可能有后续事务,(,subsquentTransaction,),思考一下,订房成功之后,后续会发生哪些必须记录的重要事件?,8,4.3,面向对象的系统分析实例,后续事务,入住,9,4.3,面向对象的系统分析实例,可以通过对业务规则的限定,对类图进行简化,对关联进行调整。例如:,酒店方经过讨论认为,一次订房可以同时订多个房间,但是只能限定是同一,个预定日期。如果这个会员要预订多个日期的话,必须拆成多个订房事务。,10,4.3,面向对象的系统分析实例,酒店方还规定一次入住事件对应一个房间。假如会员预订了,120/201,两个房间,的话,这次订房就会对应到两个入住事件。在这样的规定下,也就不再需要入住明,细了,因此类图修改如下:,11,4.3,面向对象的系统分析实例,(,4,)参与者与涉众,涉众是一种身份、角色,在这个角色背后有一个真正的参与者(,actor,)。,“,参与者,-,涉众,”,之间的关系就像,“,演员,-,角色,”,之间的关系一样。加入了,“,参与者,-,涉众,”,的类图模型如下:,12,4.3,面向对象的系统分析实例,酒店预订系统中,加入了,“,参与者,-,涉众,”,的类图模型如下:,13,4.3,面向对象的系统分析实例,综和上面的分析,得出酒店订房系统的类图如下:,14,4.3,面向对象的系统分析实例,结合其他,UML,模型,进一步完善类图。,15,4.3,面向对象的系统分析实例,例如在用例图中完善了,“,会员登录,”,用例描述后,可以立即更新类图。,用例,会员,登录,启动者,会员,支持者,主要流程,会员输入电子邮件和密码。,系统确认会员身分之后,出现欢迎信息。,替代流程,数据不完整:客户端提醒会员填入数据,直到数据完整才传送到服务器端。,验证失败:累积,5,次登录失败,即锁定,并出现请会员主动联系系统管理员的信息。,企业规则,BR1,:以会员电子邮件做为会员代号。,BR2,:会员累积,5,次登录失败,即锁定该会员账号。只要登录成功,则失败次数归零。,BR3,:一个人只能申请一个会员身份。,议题与其他,由于,一个人只能申请一个会员身份,所以将类图中的个人与会员合并为一。,16,4.3,面向对象的系统分析实例,更新类图:,17,4.3,面向对象的系统分析实例,用例,订房,启动者,会员,支持者,酒店经营者,主要流程,会员挑选一家酒店。,系统显示出这家酒店所有的房型名称、床型、空房数和房价。,会员挑选预定的房型、房间数以及预订日期。,系统减少可预订的空房数,并且新增一条订房事务。,系统显示出事务代号、订金与总价。,系统提醒会员需要,48,小时内支付预订金。,系统发送订房通知给酒店经营者和会员。,完善,“,订房,”,用例描述,18,4.3,面向对象的系统分析实例,完善,“,订房,”,用例描述,替代流程,SR1,:画面上要标记出必须填写的字段,并且在客户端先检验字段,并且提醒用户填写完整数据,直到必填字段完整之后,才会回送到服务器端。,企业规则,BR4,:订房事务序号的编码规则为“预订,yyyyMMdd0001,”,每日以流水号,0001,起始,每日流水号最大到,9999,。,BR5,:订金,=,总价,0.1,。,BR6,:会员需在事务成立后,,48,小时内支付预订金。,议题与其他,编写“系统规则”,(System Rule,SR),,做为整个订房系统都必须遵守的规则。,企业规则和系统规则将集中管理,用例描述中仅片面记录规则初次出现的时刻。,19,4.3,面向对象的系统分析实例,更新类图,(,订房,),20,4.3,面向对象的系统分析实例,4.3,.,3,运用序列图(时序图)整合用例图和类图,序列图关联了类图和用例图。表示了系统在与参与者互,动执行某个用例期间,系统内部的一组对象的顺序交互情,况。,类图,用例图,序列图,静态结构,(,系统内在结构,),动态行为,(,系统外在行为,),动态行为,(,系统内在行为,),类,参与者、用例,对象,(object),关联,包含、扩展,消息,(message),事务,模式,用例描述,BCE,模式,领域概念,业务流程,概念与流程的关联,21,4.3,面向对象的系统分析实例,分析师可以通过双交叉法同步进行类图和用例图的分析,然后尽快通过,序列图来整合、调整三方面的图。进一步完善系统分析模型。,22,4.3,面向对象的系统分析实例,(,1,)序列图的要素,-,对象与生命线,生命线,(,lifeline,),对象(,object,),23,4.3,面向对象的系统分析实例,序列图整合了用例与类,24,4.3,面向对象的系统分析实例,(,2,)序列图的要素,消息与执行说明,生命线,(lifeline),消息(,message,),执行说明(,execution specification,),25,4.3,面向对象的系统分析实例,(,3,)序列图绘制,从,BCE,模式入手,实体类,保存问题领域中的重要信息,封装数据结构和数据储存有关的变化。,控制类,用来控制用例执行期间的复杂运算或者业务逻辑,通常针对一个用例,就会对应生成一个控制类。,边界类,边界类用来隔离系统内外,通常负责接收并响应系统内外的信息。,26,4.3,面向对象的系统分析实例,套用,BCE,模式绘制序列图,27,4.3,面向对象的系统分析实例,BCE,模式应用要点,一个用例,可以对应生成一个控制类。,参与者对象只能跟边界对象互动。,实体对象不能发送消息给边界对象和控制对象。,单纯对数据表进行增删改查的话,可以不设置控制对象,让边界对象直接发送消息给实体对象。,28,4.3,面向对象的系统分析实例,(,4,)酒店订房系统,会员登录序列图绘制举例,用例,会员登录,启动者,会员,支持者,主要流程,会员输入电子邮件和密码。,系统确认会员身分之后,出现欢迎消息。,29,4.3,面向对象的系统分析实例,“,会员登录,”,的序列图,30,4.3,面向对象的系统分析实例,“,会员登录,”,用例的,BCE,类,31,4.3,面向对象的系统分析实例,使用,BCE,类图标,32,4.3,面向对象的系统分析实例,使用一般的类图标,33,4.3,面向对象的系统分析实例,修改,“,会员登录,”,的主要流程,用例,会员登录,启动者,会员,支持者,主要流程,会员输入电子邮件和密码。,系统验证会员身分。,系统显示欢迎消息。,34,4.3,面向对象的系统分析实例,(,5,)酒店订房系统,订房序列图绘制举例,用例,订房,启动者,会员,支持者,酒店经营者,主要流程,会员挑选一家酒店。,系统列出这家酒店所有的房型名称、床型、空房数和房价。,会员挑选预订的房型、房间数以及预订日期。,系统减少可预订的空房数,并且新增一条订房交易。,系统列出交易代号、订金与总价。,系统提醒会员需要,48,小时内支付预订金。,系统发送订房通知给酒店经营者和会员。,35,4.3,面向对象的系统分析实例,“,订房,”,用例有两个参与者,36,4.3,面向对象的系统分析实例,“,订房,”,用例有两个参与者,37,4.3,面向对象的系统分析实例,加上边界对象和实体对象,38,4.3,面向对象的系统分析实例,查询房型,39,4.3,面向对象的系统分析实例,挑选并预订房间,40,4.3,面向对象的系统分析实例,删掉酒店经营者参与者,41,删去了酒店经营者的用例图,酒店订房系统,4.3,面向对象的系统分析实例,42,用例,订房,启动者,会员,支持者,主要流程,会员挑选一家酒店。,系统列出这家酒店所有的房型名称、床型、空房数和房价。,会员挑选预订的房型、房间数以及预订日期。,系统显示出订房总价。,系统新增一条订房交易。,系统减少可预订的空房数。,系统发送订房通知给酒店经营者。,系统发送订房通知给会员。,系统列出交易代号、订金与总价。,系统提醒会员需要,48,小时内支付预订金。,“,订房,”,的主要流程,4.3,面向对象的系统分析实例,43,房型类,空房数,更新空房数,4.3,面向对象的系统分析实例,44,新增,“,预订记录,”,类,4.3,面向对象的系统分析实例,45,修改序列图,4.3,面向对象的系统分析实例,46,“,订房,”,用例的实体类,4.3,面向对象的系统分析实例,47,“,订房,”,用例的边界类和控制类,4.3,面向对象的系统分析实例,48,谢谢观看!,
展开阅读全文