当前位置:
文档之家› 知识点学习(顺序图和协作图 )
知识点学习(顺序图和协作图 )
2 通信图
• • 在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则 会影响其阅读。 在图12中,coutse类实例c中还用到了构造型《local》,这是因为这个对象是由 CourseList 的find方法创建的,是一个局部的对象。而在这张图中,共有五处使用 了监护条件,它们的含义如表2所示.
图4 将订单生成送货单
1 顺序图
• 在图4中,最顶上的一排矩形框(它的表示法和对象图中的对象是一 致的)表示的就是顺序图中的对象。前两个对象都是有名称的对象, 它们的名称分别是dispatchFrom和aOrder。而后面三个则是匿名对象, 分别表示OrderItem,Product和DeliverOrder的实例。 • (2).嵌套编号: • UML标准中定义了“嵌套编号方案”,对于图4而言,如果采用嵌套 编号方案,则应该改为如图5所示。图5的嵌套编号方案表示了方法间 的包含关系。 • 由于顺序图本身已经充分表现出消息执行的顺序,因此在UML模型中 并没有要求对消息进行编号。只是要求在通信图中,对消息进行了编 号。但在Rose等建模工具中,为了能够自动实现顺序图与通信图的转 换,在顺序图中也默认采取“嵌套编号方案。
1 顺序图
对象
控制焦点 消息
•图2 顺序图
生命线
1 顺序图
• 2.对象:
• 顺序图中对象的符号和对象图中对象所用的符号一样。将对象置于顺 序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的 位置不在顶部,那么表示对象是在交互的过程中被创建的。 • 3.生命线 • 生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。 每个对象的底部中心的位置都带有生命线。生命线是一个时间线,所 用的时间取决于交互持续的时间。 • 4.控制焦点 • 在对象的生命线上,包含一个矩形,表示对象处于激活状态,处于激 活状态的对象正在执行某个任务。对象在完成自己的工作后,被去激 活,对象就处于空闲状态。
•图1顺序图。
1 顺序图
• 3.顺序图的组成元素 • 顺序图中的元素包括对象、生命线、控制焦点、消息。消息表示了对 象间的通讯,生命线表示了对象的生存期, 控制焦点表示对象正在执 行一些活动。 • 1.2 顺序图的表示 • UML中,表示一个顺序图,主要是标识系统中的对象、对象的生命线、 对象的控制焦点、对象间交互的消息。如图2所示。 • 1.顺序图的布局结构 • 顺序图采用二维的布局结构,在顶端,从左到右,把对象排列在顺序 图的顶部,一般说来,首先排列参与者对象,其次是边界对象,然后 是实体对象,对象用矩形框表示;虚线是生命线;生命线上的矩形是 对象的控制焦点;从对象往下延伸的生命线表示了时间轴的正方向。 • 在图2中,参与者对象是车主,边界对象是车钥匙,实体对象是汽车, 这三个对象在平面图的顶部,从左向右依此排列。
1 顺序图
• (1).顺序编号:整个消息的传递过程就形成了一个完整的序列,因此 通过在每个消息的前面加上一个用冒号隔开的顺序号(按照消息的先后 顺序,从1开始对消息编号)来表示其顺序。 • 在第3章,我们为一个电子商务网站构建了对象模型( 类图)。现在, 我们建立一个顺序图,以实现用例”将订单生成送货单”的功能,如 图7-4所示,Order类有一个dispath()成员方法,其作用是根据供应 商户的不同将一个订单分拆到多个送货单中。
2 通信图
• • • • (1). 迭代标记 迭代标记用*号表示,表示循环,通常还有迭代表达式,用来说明循环规 则。 虽然在UML2.0中顺序图已不采用迭代标记(用交互片段代替迭代标记的 功能),但在通信图中仍然使用迭代标记。 迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式 来表示。对于迭代表达式,UML没有强制规定什么语法,因此可以使用 任何可读的、有意义的表达式来表示。常用的迭代表达式如表1所示。 表1常用迭代表达式 迭代表达式 语义
1 顺序图
• 5.消息 • 消息用来描述对象之间所进行的通信,它包括消息名、消息参数。消 息分为五种:调用、返回、发送、创建和销毁。 • 在UML中,消息使用箭头来表示,箭头的类型表示了消息的类型。几 种消息类型的表示法,如图3所示。
•图3 消息表示法
• 消息编号: • 按消息产生的先后顺序,给消息编号,有两种编号方案,一种是顺序 编号,另一种个对象发送和接受的消息放在同一层进行 编号.如对象dispatchForm的发送和接受消息放在第一层编号,它们 是:1、2;把对象aOrder发送和接受的消息放在第二层编号,它们是 1.1、1,2、1,3、1,4;匿名对象:OrderItem的发送和接受消息放在第三 层编号,它们是:1.1.1、1.1.2
• 通信图的组成元素包括对象、消息、链(连接器)。消息表示了对象间 的通信,对象通过链连接在一起。
2 通信图
• 2.2 通信图的表示 • UML中,表示一个通信图,主要是标识系统中的对象、对象间交互的 消息、对象间的链。如图11所示,是系统管理员添加书籍的协作图。 • 第一个消息(Additem())表示,管理员要求维护窗口添加书籍;第二个 消息(find(String))表示,维护窗口要求:Title对象根据书名获得书的目录; 第三个消息(update())表示修改书目下书的数量。
•图5 嵌套编号
1 顺序图
• 1.4 绘制顺序图 • 下面以饮料自动销售系统为例,看我们是怎样绘 制顺序图的.下面对“买饮料”的3种场景进行 建模,对每一个场景,我们绘制其对应的顺序 图. • (1).买饮料的正常场景 • 下面是买到饮料的一般事件流:
1 顺序图
• • • • • 1、顾客从机器的前端钱币口投入钱币,然后选择想要的饮料; 2、钱币到达钱币记录仪,记录仪更新自己的存储; 3、记录仪通知分配器分发饮料到机器前端; 下面是买到饮料的场景对应的顺序图,如图6所示. (2). 饮料“已售完”的场景
•图7 饮料已售完的场景
图6 买到饮料的场景
1 顺序图
• • • • (3). 机器没有合适的零钱 顾客买饮料时,机器没有合适的零钱“找不开”的场景. (4). 带有临时对象的顺序图 图8,该顺序图表示了发送消息2后,创建一个临时对象c, 其生命线的尾部 的叉号,表示销毁对象c.
•图8 带有临时对象的顺序图 图9 零钱“找不开”的场景.
7.2 通信图
•图10从订单生成订货单的通信图。
2 通信图
• 1.通信图的作用
• 通信图常用来描述业务或软件系统中,每个对象在交互发生时承担的 角色,即强调了交互发生时,每个对象承担的职责。 • 使用协作图可以显示对象相互协作时充当的角色。如果需要强调时间 和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择 协作图建模。 • 协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特 定部分的行为。设计员使用协作图和顺序图确定并阐明对象的角色, 这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类 的职责和接口。 • 2.通信图的组成元素
知识点学习(顺序图和协作图 )
知识点:
1 顺序图 2 通信图 3 绘制交互图 4 顺序图与通信图的关系
交互图
• 描述系统中,对象之间通过消息进行 通讯的图就是交互图。交互图包含4种 类型,它们是顺序图、通讯图、定时 图、交互概述图。
1 顺序图
• 1.1 顺序图的概念 • 1.顺序图 • 顺序图也称为时序图,它描 述了系统中,对象间通过消 息进行的交互,它强调了消 息在时间轴上的先后顺序。 • 图1是自动车锁系统中,实 现“锁车”用例的顺序图。 • 2.顺序图的作用 • 顺序图常用来描述用例的实 现,它表明了由哪些对象, 通过消息相互协作来实现用 例的功能,在顺序图中,标 识了消息发生交互的先后顺 序。
2 通信图
• 2.1 通信图的概念 • 1.通信图: • 通信图也称为协作图,它描述了系统中,对象间通过消息进行的交互, 强调了对象在交互行为中承担的角色。图10是一个典型的通信图。 • 通信图和顺序图之间的语义是等价的,只是他们的关注点有所不同而 已,可以很容易的完成从顺序图到通信图的转换,在Rose中这个转换 还可以自动完成。图10所示的通信图就是在Rose中通过对图5进行自 动转换所产生的结果。 • 从图10中不难发现,对象和消息都与图5中的对象和消息一样,在这 幅图上除了“对象”之间的链(连接线)之外,所有的元素在交互图 中都已经标识过。
[i:=1..n]
[I=1..10] [while(表达式)] [until(表达式)] [for each(对象集合)]
迭代n次
I迭代10次 表达式为true时才进行迭代 迭代到表达识为true时,才停止迭代 在对象集合上迭代
2 通信图
• (2). 监护条件 • 监护条件通常是用来表示分支的,也就是表示“如果条件为true,发 送消息”的语义,在UML中,监护条件是以“【条件表达式】”的格 式表示的
2 通信图
• 2.3 表示循环和分支
• 通信图中,用迭代表示循环,用监护条件表示分支。下面分别讲述迭 代标记和监护条件。 • 监护条件通常是用来表示分支的,也就是表示“如果条件为true,就 发送消息”的语义,在UML中,监护条件是以“【条件表达式】”的 格式表示的。现在来看一下它在交互图中的应用。 • 例如,在图10中,消息“1.3:create(prddleryid)”的前面就添加了 一个监护条件【peddleryid not exist】,它说明只有当peddleryid不存 在时,才调用create方法来创建新的送货单。如果已经存在,那就不必 创建,直接调用1.4方法,将订单项中的产品添加到相应的送货单即可。
1: add item( ) : Maintenance Window : Administrator 2: find(String) 3: update( ) : Item
: Title
•图11通信图
2 通信图
• 1.对象: • 通信图与顺序图中的对象的概念是一样,只不过在通信图中,无法表 示对象的创建和撤销,所以对于对象在图中的位置没有限制。 • 2.链: • 表示对象之间的语义关系,链是关联的一个实例。通信图中链的符号 和对象图中链所用的符号是一样的,即一条连接两个对象的实线。 • 3.消息 • 通信图中的消息类型与时序图中的相同,只不过为了说明交互过程中 消息的时间顺序,需要给消息添加顺序号。顺序号是在消息的前面加 一个整数。每个消息都必须有唯一的顺序号。 • 4.消息编号: • 消息的编号有两种,一种是无层次编号(按顺序编号),它简单直观; 另一种是嵌套的编号,它更易于表示消息的包含关系. • 5.迭代标记和监护条件