UML有两种表达形式的交互图:顺序图和通信图,均可以完整的表达对象之间信息的交互过程,区别在于关注点不同:
顺序图:按时间顺序对消息的交互过程建模,展示的是按时间顺序发生的消息传送。
通信图:按对象关联对消息的交互过程建模,强调消息交互传递中对象之间的关联。
一.顺序图(基于对象交互时的交互顺序)
1.顺序图概念
用于捕获系统运行中对象之间有顺序的交互,强调的是消息交互的时间顺序。顺序图由生命线和消息组成:
顺序图 = 生命线 + 消息
2.组成
1)活动者(Actor)和对象(Object)
活动者和对象按照从左到右的顺序排列。一般最多两个活动者,他们分列两端。启动这个用例的活动者往往排在最左边;接收消息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先后顺序排列。
对象的三种命名方式如下:
2)消息(Message)
面向对象方法中,消息是对象间交互信息的主要方式。 结构化程序设计中,模块间传递信息的方式主要是过程(或函数)调用。 对象A向对象B发送消息,可以简单地理解为对象A调用对象B的一个操作(operation)。
顺序图中,尽力保持消息的顺序是从左到右排列的。 一个顺序图的消息流开始于左上方,消息2的位置比消息1低,这意味着消息2的顺序比消息1要迟。因为西方的阅读习惯是从左到右。 顺序图中消息编号可显示,也可不显示。协作图中必须显示。
UML三种消息: 调用(Procedure Call) 异步(Asynchronous) 返回(Return) Rose扩充: 阻止(Balking) 超时(Time-out)
调用: 发送者把消息发送后,等待直到接收者返回控制,可以表示同步; 实心箭头符号
异步: 消息发送后,发送者继续操作,不等待,常用于并发
返回:表示消息的返回。消息上方放置返回值 同步消息的返回可以画出(如果想明确表达返回值),也可以不画出,直接隐含。 异步消息可以有返回,也可以没有。(可以响应异步消息,也可以不响应该异步消息。) 如果顺序图上显示有编号,则返回消息的编号和当初发送消息的编号完全一样。 虚线箭头表示,和依赖关系不要混淆
自调用(Self Call):某对象自己调用自己的操作 UML标记 (嵌套的矩形条) Rose标记
3)生命线( Life-lin e)
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在 垂直的虚线 如果对象生命期结束,则用注销符号表示 对象默认的位置在图顶部,表示对象在交互之前已经存在 如果是在交互过程中由另外的对象所创建,则位于图的中间某处。
4)激活器或控制焦点(Focus of control)
激活期(activation)/控制焦点(focus of control) 对象在一段时间内获得了焦点,也称激活期 对象执行某个动作的时期 空心矩形条 激活期的长短意味着对象执行某个动作的时间有多长,可以通过约束{10ms}来限制执行时间的长短。
3.建立顺序图的步骤
1)确定交互的范围;
2)识别参与交互的对象和活动者;
3)设置对象生命线开始和结束;
4)设置消息;
5)细化消息;
二.通信图(基于对象交互的行为建模)
1.通信概念
强调对象之间在交互作用时的关联。
通信图的消息发生顺序用图中的消息编号的方法来表示。表达式为:
通信图 = 交互的参与者 + 通信链 + 消息
2.通信图的表示方法
1)交互的参与者
交互的参与者用一个对象符号来表示,在矩形框中放置交互的参与者,显示交互的参与者的名称和它所属的类:参与者名:类名
2)链接
链接表示两个对象间的连接路径,沿着这条路径,消息可以流动。UML用直线表示链接、
3)消息
消息用依附于链接的带标记的箭头和带顺序号的消息表达式表示。
UML-顺序图与通信图
最新推荐文章于 2025-04-01 16:53:08 发布