Presentation is loading. Please wait.

Presentation is loading. Please wait.

Case 工具-UML with Rational Rose

Similar presentations


Presentation on theme: "Case 工具-UML with Rational Rose"— Presentation transcript:

1 Case 工具-UML with Rational Rose
第四章 顺序图和协作图 Case 工具-UML with Rational Rose

2 交互图概述 交互:一次交互就是指在特定语境中,为了实现某一个 目标,而在一组对象之间进行交换的一组消息所表示的行为。 交互图:是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。通常用来描述一个用例的行为,显示该用例中所涉及的对性和这些对象之间的消息传递情况. 消息通常是指启动一个操作或发送一个信号,以及创建或销毁一个对象。

3 交互图概述 UML交互图的类型 顺序图:顺序图是一种强调消息时间顺序的交互图,为读者提供了控制流随着时间推移的清晰的可视化轨迹 协作图:在UML 2.0中叫通信图,它强调的是参加交互的对象的组织,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹 定时图:采用了一种带数字刻度的时间轴来精确地描述消息的顺序 交互概述图:是交互图和活动图的混合物

4 顺序图 顺序图:显示的是参与交互的对象及对象之间消息交换 的顺序,用来表示用例中的行为顺序。

5 顺序图的建模元素 图4.2 从订单生成送货单

6 顺序图的建模元素----对象 对象(角色):最顶上一排矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对象代表现实世界中的某个东西。例如,aOrder作为类Order的一个实例,可以代表一个特定的订单;而如果作为一个原型化的事件,则aOrder可以代表类Order的任何一个实例。 objectName:ClassName :ClassName objectName 显示对象名和类名 只显示类名(匿名对象) 只显示对象名 (不关心对象属于什么类) 图:顺序图中对象的命名方式

7 顺序图的主要元素----生命线和控制焦点
生命线:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在。 例外情况 控制焦点:生命线上的长条形矩形称为“控制 焦点”,它表示一个对象执行一个动作所经历 的时间段,顶部表示动作的开始,矩形底部 表示动作的结束。 控制焦点可以嵌套 激活期:表示对象执行一个 动作的期间,即对象激活的 时间段,与控制焦点同义。

8 顺序图的主要元素----消息 消息:用来描述对象之间所进行的通信的,该信息带有对将要发生的活动的期望。当传送一个消息时,它所引起的动用是一个通过对计算过程的抽象而得到的可执行语句。 消息分为:调用、返回、发送 调用:表示调用某个对象一个操作 返回:(对非过程调用)返回表示被调用的对象向调用者返回一个值。

9 顺序图的主要元素----消息 异步消息(发送消息send):发送者通过消息把信号传递给接受者,然后继续自己的活动,不等待接收者返回消息或控制。 比较:调用是同步机制,就是说对象A调用对象B时,A发送完消息后会等待B执行完所调用的方法之后在继续执行;而异步消息是对象A给对象B发送了一个信号,那么A在发送完信号后,就会继续执行,不会等待。 信号:Windows中“点击鼠标左键”

10 顺序图的主要元素----消息 (过程)调用消息 在UML中,消息用箭头表示,箭头的类型表示了消息的类型。 两个对象之间绘制消息
对象内调用(向自身发送消息) 返回消息 UML1.3及以前版本中的异步消息 Rose2003中的异步消息 销毁

11 顺序图的主要元素----消息 消息的语法格式:(教材P 40-41)
[predecessor] [guard-condition] [sequence-expression] [return-value:=] message-name ([argument-list]) 语法成分 格式 Predecessor:必须先发生的消息列表 消息顺序号1,消息顺序号1/ guard-condition:警戒条件,满足条件时 发送消息 [布尔表达式] sequence-expression:消息顺序表达式 消息顺序项.消息顺序项...: return-value

12 [x<0]4:invert(x, color) 条件消息
顺序图的主要元素----消息 消息的语法格式举例 2:display (x, y) 简单消息 1.3.1: p :=find(specs) 嵌套消息,消息带返回值 [x<0]4:invert(x, color) 条件消息 3.1*:update( ) 循环消息 A3,B4/C2:copy(a,b) 线程间的同步 1.1 *[for all order lines]:message1() 2.1 *[1:=1..n]:message2()

13 创建对象:(构造函数实现)意味着该对象生命线的开始。
顺序图----对象的创建和销毁 创建对象:(构造函数实现)意味着该对象生命线的开始。 如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在了。如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。 对象在创建消息发生之后才能存在,对象的生命线也是在创建消息之后才存在的 创建对象的两种表示方法:

14 顺序图----对象的创建和销毁 销毁对象:(析构函数实现)在目标对象的生命线重终点放一个X(大叉),该点通常是对删除或取消消息的回应。

15 顺序图----顺序编号 顺序编号(消息编号):消息的编号可以有两种:一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的包含或说嵌套关系。如在消息1中,1.1是嵌套在消息1中的第一个消息,它在消息1.2之前,消息1.2是嵌套在消息1中的第二个消息,依次类推。必须确保消息标号的唯一性。

16 嵌套编号 无层次编号

17 顺序图----分支与循环 交互片段(UML2.0引入)

18 注:在UML1.X版本中代表循环,在协作图2.0版本中延用
顺序图----分支与循环 Loop(1, n) loop(5) 注:在UML1.X版本中代表循环,在协作图2.0版本中延用

19 建立顺序图的步骤 设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。 为每个对象设置生命线。
从引发某个消息的信息开始,在生命线之间画出从顶向下依次展开的消息,显示每个消息的特性(如参数)。 如果需要表示消息的嵌套或表示发生时的时间点,则采用控制焦点。 如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。 如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。

20 协作图(通信图) 协作图中有3种元素:对象,链和消息。 图 “从订单生成送货单”的协作图

21 协作图主要元素----对象 在协作图中无法表示对象的创建和撤消,所以对象在协作图中的位置没有限制。
多对象:在协作图中,多对象指由多个对象组成的对象集合,这些对象一般属于同一个类,它们的本质是类的实例。多个方框重叠表示 主动对象:是一组属性和方法的封装体,其中中至少有一个方法不需要接收消息就能够主动的执行(主动方法)。也就是说,主动对象在不接收外部消息的情况下自己开始一个控制流。

22 链:用来表示对象之间的语义连接,一般而言,链是关联的一个实例。符号:一条连接两个对象的实线
协作图主要元素----链 链:用来表示对象之间的语义连接,一般而言,链是关联的一个实例。符号:一条连接两个对象的实线 在大多数情况下,只需要通过链来表示一个对象向另一个对象(可以是这个对象自身)发送消息的路径。精确描述路径是如何存在的,则采用表构造型来修饰这个链。 在UML2.0中已经开始弱化它们的使用,除非必要,无需过多地考虑

23 协作图主要元素----链

24 协作图主要元素----消息编号和消息语法的进一步说明
在协作图中经常还会采用一些更复杂的消息编号方式,例如可以 加如“线程”和“进程”的概念,根据消息所在的线程来区分其消息编 号。 语法格式是:[integer|name] 其中integer是消息序号,name表示并发的控制线程。 例: A5和A11:在同一个线程或进程中 A5和B3:不在同一个进程或线程中 lal和lb1:两个消息都在消息1内,但在并发、嵌套的不同线程中执。

25 UML 2.0的协作图中,循环是通过在顺序编号前加上一个迭代符“*”和一个可选的循环表达式来表示的。
协作图主要元素----消息编号和消息语法的进一步说明 循环 UML 2.0的协作图中,循环是通过在顺序编号前加上一个迭代符“*”和一个可选的循环表达式来表示的。 常用的循环表达式 循环表达式 含义 [i:=1..n] 循环n次 [while(布尔表达式)] 当布尔表达式为真时执行循环 [until(布尔表达式)] 循环执行到布尔表达式为真时停止 [for each(计算结果为对象集合的表达式) 在对象集合上循环

26 协作图主要元素----消息编号和消息语法的进一步说明
监护条件(警戒条件) 监护条件通常是用来表示分支的,即表示“如果条件为true,才发送消息” ,以“[条件表达式]”的格式表示。

27 协作图主要元素----消息编号和消息语法的进一步说明
监护条件(警戒条件) 在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。如果需要,尽可能还是通过顺序图来表示

28 建立协作图的步骤 设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。将对象作为顶点放在协作图中,其中比较重要的对象放在中央,他们的临近对象放在外围。 为每个对象设置初始特性。如果某个对象的属性值、标记值、状态等在交互期间发生重要变化,则在图中放置一个复制对象,并用新的值更新它,然后通过构造型<<become>>或<<copy>>的消息将二者连接。 描述对象之间可能有信息沿着它传递的链。首先安排关联的链,然后再安排其他链。 从引起交互的消息开始,适当地设置其顺序号,然后将随后的每个消息附到适当的链上。可以用带小数点的编号来显示嵌套没。 如果需要说明时间或空间约束,可以用时间标记修饰这个消息,并附上合适的时间和空间约束。 如果需要更形式化地说明这个控制流,可以为每个消息附上前置和后置条件。

29 顺序图和协作图的比较 顺序图和协作图都属于交互图,用于描述对象间的动态关系,并且两者之间可以相互转化。 强调重点不同:顺序图强调消息的时间顺序,协作图强调参与交互的对象的组织。 建模元素不同:顺序图中独有生命线和控制焦点;协作图中有路径和链,并且消息必须有消息顺序号。

30 定时图 定时图与顺序图的区别 坐标轴交换了位置,改为从左到右来表示时间的推移 用生命线的“凹下凸起” 来表示状态的变化,每
个水平位置代表一种 不同的状态,状态的 顺序可以有意义、也 可以没有意义 生命线可以跟在一根 线后面,在这根线上 显示些不同的状态值 可显示一个度量时间 值的标尺,用刻度表 示时间间隔

31 打印的值是9。将执行三次循环,因此test的值是1!+2!+3!=9
常见问题分析与练习 1 假设有一系统的协作图局部如图7-29所示,print方法的功能是将传入参数的值打印在屏幕上;fact方法是用来计算阶乘的,test的初值为1。那么将打印出什么? 协作图局部 打印的值是9。将执行三次循环,因此test的值是1!+2!+3!=9

32 常见问题分析与练习 P (2)---(5)、(7)


Download ppt "Case 工具-UML with Rational Rose"

Similar presentations


Ads by Google