
第5章动态交互模型顺序图幻灯片.ppt
34页第五章 建立动态交互模型 动态行为模型可用两个新视图描述:–顺序图(Sequence Diagram)–协作图(Collaboration Diagram)顺序图协作图用例顺序图(Sequence Diagram) 顺序图(Sequence Diagram):将用户与分析类结合在一起,实现将用例的行为分配到所识别的分析类中; 绘制步骤:– 列出启动该用例的参与者;– 列出启动用例时参与者使用的边界对象;– 列出管理该用例的控制对象;– 根据用例描述的流程,按时间顺序列出分析类之间进行消息访问的序列 打打电话的的顺顺序序图图线拿起接收器拨号音开始拨号(5)忙音结束拨号(5)拨号(5)拨号(1)拨号(2)拨号(3)拨号(4)拨号(8)铃声铃声停止连通断开打者挂机铃声受话方回答铃声停止连通受话方挂机断开打者接者顺序图的相关概念•UML的交互图是用户系统动态方面的建模,交互图可分为顺序图和协作图•顺序图(Sequence Diagram)描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图顺序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换,也就是说,顺序图描述了类以及类间相互交换以完成期望行为的消息。
•顺序图包括了4个元素,分别是对象(Object)、生命线(Lifeline)、激活(Activation)和消息(Message)顺序图符号表示生命线激活消息对象参与者或对象•参与者和对象按照从左到右的顺序排列;•一般最多两个参与者,他们分列两端启动这个用例的参与者往往排在最左边,接收消息的参与者则排在最右端;•对象从左到右按照重要性排列或按照消息先后顺序排列;•将对象置于顺序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的 对象的命名方式有三种:–包括对象名和类名–类名(匿名对象)–对象名(不关心类)生命线(生命线(Lifeline))Ø每个对象都有自己的生命线,用来表示在该用例中一个对象在每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在一段时间内的存在Ø垂直的虚线垂直的虚线Ø如果对象生命期结束,则用注销符号表示如果对象生命期结束,则用注销符号表示消亡点消亡点92021/8/2激活期(activation)/控制焦点(focus of control)–对象在一段时间内获得了焦点,也称激活期–对象执行某个动作的时期–空心矩形条–激活期的长短意味着对象执行某个动作的时间有多长,可以通过约束{10ms}来限制执行时间的长短。
顺序图中的消息面向对象方法中,消息是对象间交互信息的主要方式结构化程序设计中,模块间传递信息的方式主要是过程(或函数)调用对象A向对象B发送消息,可以简单地理解为对象A调用对象B的一个操作(operation)•顺序图中,尽力保持消息的顺序是从左到右排列的•一个顺序图的消息流开始于左上方,消息2的位置比消息1低,这意味着消息2的顺序比消息1要迟•顺序图中消息编号可显示,也可不显示顺序图阅读练习1:132021/8/2顺序图阅读练习2:顺序图阅读练习3:请描述该顺序图表达的含义顺序图的用途•顺序图强调按时间展开的消息传送按时间展开的消息传送,这在一个用例脚本的语境中对动态行为的可视化非常有效•UML的交互图是用于对系统的动态方面的建模,交互图又可分为顺序图和协作图,顺序图用于描述对象之间消息的时间顺序,协作图用于描述对象间的交互关系,以致它们的用途有所差别•以下是顺序图有别于协作图的特性:(1)顺序图有生命线(2)顺序图有激活期顺序图可以用于软件开发的不同阶段和不同情况下:1.当不同类之间存在多个简短的方法时,描述控制流的整体序列2.显示并发进程和激活3.显示在协作图中难以描述的时间序列。
4.显示涉及类交互与对象无关的一般形式顺序图的建模技术•对系统动态行为建模,当强调按时间展开信息的传送时,一般使用顺序图•使用顺序图对系统建模时,可以遵循如下策略设置交互的语境;这些语境可以是系统、子系统、操作、类、用例和协作的一个脚本通过识别对象在交互中扮演的角色,根据对象的重要性,将其从左向右的方向放在顺序图中设置每个对象的生命线;一般情况下,对象存在于交互的整个过程,但它也可以在交互过程中创建和撤销从引发某个交互的信息开始,在生命线之间按从上向下的顺序画出随后的消息设置对象的激活期;这可以可视化实际计算发生时的时间点、可视化消息的嵌套如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束给某控制流的每个消息附上前置或后置条件,这可以更详细地说明这个控制流案例:服务员背后有人•你向服务员点餐,过了一会,服务员就会把菜送上来,你肯定知道,菜不是服务员做的,她的背后有人•继续用顺序图画出顾客指示买单和刷卡结帐活动图与顺序图•分别使用顺序图和活动图画出购买地铁票的过程•买票的过程如下:•1,假设自动售票机只接收硬币,我们需要先找到地铁的工作人员,询问到某站需要多少钱,然后拿出纸币兑换硬币。
•2,在自动售票机上选择要去的目的地,和票数,投币,售票机给出地铁票顺序图强调角色之间的交互,信息传递明确强调按时间顺序发生了什么事不适合表达复杂的流程(循环,条件分支,可选分支)顺序图的特点活动图强调每个角色做了什么事,以及这些事之间的先后关系适合表达特殊流程(并发,分支)活动图的特点•实际工作中,根据具体情况进行选择,如果事情是围绕某个东西展开的,使用状态图描述;否则,如果没有复杂流程,使用顺序图,如果有复杂流程使用活动图•另外,不要限制只适用一种图,由于顺序图和活动图的不同特点,我们可以同时使用2种图,从不同的角度来分析问题•协作图(Collaboration Diagram)UML1.0•通信图(Communication Diagram)UML2.0•UML中的交互图是用于对系统动态方面的建模,交互图又可分为顺序图和通信图•通信图是动态视图的另一种表现形式,它强调参加交交互的各对象结构的信息互的各对象结构的信息通信图的基本概念•通信图显示某组对象为了由一个用例描述的一个系统事件而与另一组对象进行协作的交互图•通信图只对相互间有交互作用的对象和这些对象间的关系建模,而忽略了其他对象和关联。
•通信图中包括如下元素:–1.对象(对象(Object))–2.链(链(Link))–3.消息(消息(Message))链•链是关联的实例,当一个类与另一个类之间有关联时,这两个类的实例之间就有链,一个对象就能向另一个对象发送消息所以链是对象间的发送消息的路径•要在通信图中增加消息,必须先建立对象之间的链接•链接一般建立在两个对象或者两个类实例之间,也可以建立反身链接 302021/8/2312021/8/2通信图的用途•如果按组织对控制流建模,应该选择使用协作图协作图强调交互中实例间的结构关系以及所传送的消息结构关系以及所传送的消息通信图对复杂的迭代和分支的图对复杂的迭代和分支的可视化以及对多并发控制流的可视化要比可视化以及对多并发控制流的可视化要比顺序图顺序图好•通信图有别于顺序图的两点特性: (1)通信图有路径( 2)通信图有顺序号通信图与顺序图的互换•通信图和顺序图都是表示对象间的交互作用,只是它们侧重点有所不同•顺序图描述了交互过程中的时间顺序,但没有明确的表达对象间的关系,通信图描述了对象间的关系,但时间顺序必须从序列号获得•通信图和顺序图都来自UML元模型的相同信息,因此它们的语义是等语义是等价价的,它们可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。
部分资料从网络收集整理而来,供大家参考,感谢您的关注!。
