《《顺序图和协作》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《顺序图和协作》PPT课件.ppt(27页珍藏版)》请在三一办公上搜索。
1、第4章 顺序图和协作图,面向对象分析与设计&UML,2,4.1 交互图概述,交互图(interaction diagram)是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档.,交互图通常用于描述一个用例的行为,显示该用例中所涉及的对象及对象之间消息传递情况.,交互图包括:顺序图(sequence diagram),描述对象按照时间顺序的消息交换;协作图(collaboration diagram),描述系统成分如何协同工作.,面向对象分析与设计&UML,3,4.2 顺序图,Rumbaugh的定义:顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的.它显
2、示参与交互的对象及对象之间消息交互的顺序.,面向对象分析与设计&UML,4,4.2 顺序图,对象的三种命名方式:,生命线是对象图标向下延伸的虚线,表示对象生存时间.,消亡点,面向对象分析与设计&UML,5,4.2 顺序图,控制焦点(Focus of Control)又称为激活期(Activation),用生命线上的小矩形表示,在这个时间段内,对象执行相应的操作.,面向对象分析与设计&UML,6,4.3 顺序图中的消息,UML1.4后定义的消息有:调用消息 procedure call异步消息 asynchronous返回消息 returnUML1.3前的消息还有:简单消息 simpleRose
3、扩充的消息阻止消息 balking超时消息 time-out,面向对象分析与设计&UML,7,4.3 顺序图中的消息,调用消息:消息的发送者把控制传递给消息的接收者,等待接收者返回或放弃控制.,调用消息必有一个与之配对的返回消息,但是可以不用画出.,面向对象分析与设计&UML,8,4.3 顺序图中的消息,异步消息:消息的发送者把控制传递给消息的接收者,然后继续自己的工作,不等待接收者返回或放弃控制.,UML1.4及以后,UML1.3及以前,面向对象分析与设计&UML,9,4.3 顺序图中的消息,返回消息:表示从过程调用返回.如果是过程消息返回,则不用画出;如果是非过程消息,则必须画出.,面向对
4、象分析与设计&UML,10,4.3 顺序图中的消息,阻止消息:消息的发送者传递消息给接收者,如果接收者无法立即接收,则发送者放弃该消息.超时消息:消息的发送者发出消息给接收者并按指定时间等待,若接收者无法在指定时间内接收,则发送者放弃该消息.,面向对象分析与设计&UML,11,4.3 顺序图中的消息,消息的语法格式,前置消息列表警戒条件消息顺序号返回值:=消息名称(参数列表),例子:,面向对象分析与设计&UML,12,4.4 建立顺序图的步骤,确定交互过程的上下文识别参与交互过程的对象为每个对象设置生命线从引发这个交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息.如果需要嵌套
5、或(和)表示消息发生的时间点,使用FOC.如果需要说明时间约束,则在消息旁边加上约束说明.如果需要,可以为每个消息设置前置条件和后置条件.,面向对象分析与设计&UML,13,4.5 协作图,协作图是用于描述系统的行为是如何由系统成分协作实现的图.,对象object,链 link,消息 message,协作图中的元素:,面向对象分析与设计&UML,14,4.6 建立协作图的步骤,确定交互过程的上下文识别参与交互过程的对象如果需要,为每个对象设置初始特性确定对象之间的链,及沿着链的消息从引发该交互过程的初始消息开始,将每个消息附到相应的链上如果需要表示消息嵌套,则有Dewey十进制表示.如果需要说
6、明时间约束,则在消息旁边加上约束说明如果需要,可以为每个消息设置前置条件和后置条件,面向对象分析与设计&UML,15,4.7 顺序图与协作图的比较,相同点规定责任,二者均直观地规定了发送对象和接收对象的责任.支持消息,二者均支持所有的消息类型.衡量工具,二者均是衡量耦合性的工具.不同点协作图强调参与交互的对象的组织结构;顺序图强调消息的时间顺序.顺序图可以反映对象的创建/激活/撤消;协作图不能.协作图能反应动作路径,消息必须有顺序号;顺序图没有.,面向对象分析与设计&UML,16,4.7 顺序图与协作图的比较,汽车租赁系统中”客户还车”的顺序图,面向对象分析与设计&UML,17,4.7 顺序图
7、与协作图的比较,汽车租赁系统中”客户还车”的协作图,面向对象分析与设计&UML,18,4.8 工具支持(略),面向对象分析与设计&UML,19,4.9 常见问题分析,(1)如何在顺序图中表示消息的循环发送?,在消名前加循环条件,例如:1.1*for all order lines:message1()2.1*i:=1.n:message2(),面向对象分析与设计&UML,20,4.9 常见问题分析,(2)如何在顺序图中表示消息的条件发送?,在消息上加警戒条件,如:x0 4:invert(x,color),在消息名字前加条件子句,如:3.1 xy message(),使用文字说明,分成多个顺序图
8、,面向对象分析与设计&UML,21,4.9 常见问题分析,(3)如何在顺序图表示时间约束?,可以使用UML的3种扩展机制之一约束(constraint)来表示,如:,面向对象分析与设计&UML,22,4.9 常见问题分析,(4)如何在顺序图中表示递归?,直接递归,间接递归,面向对象分析与设计&UML,23,4.9 常见问题分析,(5)顺序图中对象如何确定?顺序图与类图是否同时生成并交互修改?,顺序图中的对象的确定需要参考类图,类图中的类的确定也需要参考顺序图,二者相互补充、相互协调的关系.在分析阶段,顺序图中的消息名可能只是一个说明,而在设计阶段,顺序图的消息名被细化,最后对应到类图中的方法.
9、,面向对象分析与设计&UML,24,4.9 常见问题分析,(6)如果对象具有多态性,发送对象不可能事先知道目标对象所属的类,则在交互图中如何确定目标对象所属的类?,目标对象应是形成多态的继承关系中的祖先类.,(7)如何在交互图中表示广播消息?,(8)如何在协作图中表示创建对象?,面向对象分析与设计&UML,25,4.8 实例分析:语音邮箱系统,创建“保留语音信息”的顺序图,用例2:保留语音信息1.呼叫者”拨打邮箱号”.2.呼叫者说出信息.3.呼叫者挂断电话.4.语音邮件系统将记录的信息存放在接收者的邮箱中.,用例1:拨打邮箱号1.呼叫者拨打语音邮件系统的主号码.2.语音邮件系统发出提示音:输入邮箱号码并加#号.3.呼叫者输入接收者的邮箱号.4.语音邮件系统发出问候语:已进入XX的邮箱,请留言.,面向对象分析与设计&UML,26,4.8 实例分析:语音邮箱系统,面向对象分析与设计&UML,27,作业,完成”笔记本电脑维修管理系统”的顺序图分析.,
链接地址:https://www.31ppt.com/p-5620198.html