UML顺序图和协作图
- 格式:ppt
- 大小:287.00 KB
- 文档页数:42


第4章 顺序图和协作图
4.1 交互图概述
在一个待开发的系统中,任何对象都不是孤立存在的,系统中的这些对象都是通过传递消息进行交互的。因此在设计系统时,就免不了对交互进行缄默,并用交互图展现出来。
4.1.1 交互的定义
当需要对类操作、类、构件、用例乃至整个系统的控制流进行建模时,一定离不开“交互”。
交互:一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为。
交互图:是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。通常用来描述一个用例的行为,显示该用例中所涉及的对性和这些对象之间的消息传递情况
在大多数情况下,消息通常是指启动一个操作或发送一个信号,以及创建或销毁一个对象。
4.1.2 UML交互图的类型
顺序图:是一种强调消息时间顺序的交互图,着重描述对象按照时间顺序的消息交换,为读者提供了控制流随着时间推移的清晰的可视化轨迹。
协作图(UML 2.0中的通信图):强调的是参加交互的对象的组织,着重描述系统成分如何协同工作,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹 。
顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们可以相互转化,并且转换过程不会丢失信息。
定时图(UML 2.0中新增):采用了一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序,而且它还允许可视化的表示每条生命线的状态变化,当需要对实时时间进行定义时,采用定时图可以很好的满足。
交互概述图(UML 2.0中新增):是交互图和活动图的混合物。
定时图和交互概述图是两种特殊的变体。
4.1.3交互图和类(图)
4.2 顺序图
顺序图:显示的是参与交互的对象及对象之间消息交换的顺序,用来表示用例中的行为顺序。
图显示的是汽车租赁系统中客户取车的顺序图,涉及5个对象:客户、预定请求、工作人员、工作记录和汽车。取车的动作从客户向工作人员提出取车要求并出示清单开始,工作人员检查客户的预订请求,确认后客户可以付款。然后工作人员填写工作记录,同时登记汽车状态,最后客户取车。可以看出在UML中,顺序图将交互关系表示为二维图。其中,纵轴是时间轴,时间沿竖线向下延伸,按时间递增顺序列出各个对象所发出和接收的消息。水平方向是对象维,水平方向排列的是参与交互的对象。一般主要参与者(或人型参与者)放在最左边,次要参与者(系统参与者)放在最右边。
35
实验五—1 顺序图、协作图
一、实验目的
1.理解顺序图的基本概念。
2.理解协作图的基本概念。
3.掌握在 Rational Rose 中绘制顺序图、协作图的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过对课堂学习和前面的实验,使我们完成了图书馆的管理系统的需求分析,并从业务
对象中抽象出了类。现在需要对前面所给出的用例进行实现,而用例的实现主要由顺序图来
描述系统的动态特性,协作图与顺序图是同构的,Rose 可自动转换。现指派你运用课堂所学
的相关知识,完成如下任务:
1.对图书管理功能中的借书用例、还书用例进行动态建模。
四、实验步骤
4.1 分析阶段的动态建模
1.分析:在分析阶段,绘制的顺序图中,所有消息可以使用便于理解的自然语言来描述,
并且可以仅在实体类中识别对象职责,而不涉及边界类和控制类。根据课堂讲授,参见教材
P213 可完成借书用例和还书用例分析阶段的动态建模。
2.绘图步骤:
(1) 鼠标右击导航窗口“Logicl View”节点,选择“New——Package”,建立 1 个子
包:“Sequence Diagram”(用于存放顺序图、协作图),完成后如图 3.1 所示。
(2) 如图 3.2 所示,鼠标右击“Sequence Diagram”子包,选择快捷菜单项“New—
—Sequence Diagram”,创建一张新的顺序图,取名为“借出图书”(注意:为了好对应,顺 序
图名称最好与相应的用例名称相同)。鼠标双击新建的顺序图,在右边绘图窗口中将其打开, 如
图 3.3 所示。
(3) 设置支持嵌套消息的环境:选择主菜单项“Tools——Options”,打开 Rose 环境
设置的对话框,点击“Diagram”选项卡,在如图 3.4 所示界面中,将“Display”下的
“Hierarchical Message”选中,点击“确定”即可。 36
时序图、活动图、状态图、协作图的区别
时序图
时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序.
当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件.
在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延
伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用
从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上
下排列.
ATM 用户成功登陆的时序图
时序图中的基本概念
对象: 时序图中对象使用矩形表示, 并且对象名称下有下划线. 将对象置于时序图的顶
部说明在交互开始时对象就已经存在了. 如果对象的位置不在顶部, 表示对象是在交互
的过程中被创建的.
生命线: 生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内存在. 每个
对象底部中心的位置都带有生命线.
消息: 两个对象之间的单路通信. 从发送方指向接收方. 在时序图中很少使用返回消息.
激活: 时序图可以描述对象的激活和钝化. 激活表示该对象被占用以完成某个任务. 钝
化指对象处于空闲状态, 等待消息. 在 UML 中, 对象激活时将对象的生命线拓宽为矩
形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完
成自己的工作后被钝化.
对象的创建和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开
始之前就已经存在了. 如果对象是在交互过程中创建的, 那么就应该将对象放到中间部
分. 如果要撤销一个对象, 在其生命线终止点处放置 “ X” 符号.
练习:孙中山的……
活动图
在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等.
活动图中的基本概念
动作状态: 原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变. 在 UML
中动作状态用圆角矩形 表示, 动作状态所表示的动作写在圆角矩形内部.
实用文案
标准文档 UML各种图例
面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处.
UML中有九种建模的图标,即:
用例图
类图
对象图
顺序图
协作图
状态图
活动图
组件图
配置图
本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.
为什么UML很重要?
为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成实用文案
标准文档 为了这个行业中的设计师和施工人员的必修课.
写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.
UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.
模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.
类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.
用例图