Download presentation
Presentation is loading. Please wait.
Published byLeander Fiedler Modified 5年之前
1
第12章 系统动态特性与对象交互模型 系统的静态模型描述了系统的组成关系及结构,包括元素及其关系。偏重于描述了系统的全貌
系统的动态模型则表示了系统对外表现的功能、性能、特性等的实现过程。倾向于刻画系统的细节。 动态模型的建模方法: 顺序图(Sequence Diagram) 交互图(Communication Diagram) 状态图(state chart Diagram) 活动图(Activity Diagram)
2
交互图模型 顺序图 (时序图 ) 交互图 (协作图)
3
时序图 概述 时序图的组成 对象的创建和撤销
4
概述 时序图是强调消息时间顺序的交互图 时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序 时序图将交互关系表示为一个二维图
纵轴是时间轴,时间沿竖线向下延伸 横轴代表了在交互中的各独立的对象
5
概述 时序图示例
6
时序图的组成 时序图包含了 4 个元素 对象(Object) 生命线(Lifeline) 消息(Message)
激活(Activation)
7
时序图的组成 对象 时序图中对象的符号和对象图中对象所用的符号一样
将对象置于时序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的
8
时序图的组成 生命线 生命线是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线
生命线是一个时间线,从时序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间
9
时序图的组成 消息 消息定义的是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销
消息是两个对象之间的单路通信,从发送方到接收方的控制信息流 消息可以用于在对象间传递参数 消息可以是信号,也可以是调用 在 UML 中,消息使用箭头来表示,箭头的类型表示了消息的类型
10
时序图的组成 激活 激活(Activation)表示该对象被占用以完成某个任务,去激活(Deactivation)指的则是对象处于空闲状态、在等待消息 在 UML 的时序图中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期,对象就是在激活条的顶部被激活的,对象在完成自己的工作后被去激活
11
对象的创建和撤销 如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在了。如果对象是在交互的过程中创建的,那么它应当位于图的中间部分
对象在创建消息发生之后才能存在,对象的生命线也是在创建消息之后才存在的
12
对象的创建和撤销 创建对象的两种表示方法
13
对象的创建和撤销 如果要撤销一个对象,只要在其生命线终止点放置一个 “X” 符号即可,该点通常是对删除或取消消息的回应
14
图书馆管理系统的时序图 增加借阅者用例时序图(Add Borrower)
15
图书馆管理系统的时序图 删除借阅者用例时序图(Remove Borrower)
16
图书馆管理系统的时序图 更新借阅者用例时序图(Update Borrower)
17
图书馆管理系统的时序图 增加书籍用例时序图 1(Add Item 1)
18
图书馆管理系统的时序图 增加书籍用例时序图 2(Add Item 2)
19
图书馆管理系统的时序图 删除书籍用例时序图 1(Remove Item 1)
20
图书馆管理系统的时序图 删除书籍用例时序图 2(Remove Item 2)
21
图书馆管理系统的时序图 借书用例时序图(Lend Book)
22
图书馆管理系统的时序图 还书用例时序图(Return Book)
23
协作图 概述 协作图的组成 时序图与协作图的互换 图书馆管理系统的协作图
24
概述 协作图是时序图之外的另一种表示交互的方法 协作图对交互中有意义的对象和对象之间的链建模
在 UML 中,协作图用几何排列来表示交互作用中的对象和链,附在链的箭头代表消息,消息的发生顺序用消息箭头处的编号来说明
25
概述 协作图示例
26
协作图的组成 协作图包含了 3 个元素 对象(Object) 链(Link) 消息(Message)
27
协作图的组成 对象 协作图与时序图中的对象的概念是一样,只不过在协作图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制
28
协作图的组成 链 协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个类角色的实线
为了说明一个对象如何与另一个对象连接,可以在链的末路上附上一个路径构造型
29
协作图的组成 消息 协作图中的消息类型与时序图中的相同,为了说明交互过程中消息的时间顺序,消息具有顺序号
顺序号是消息的一个数字前缀,是一个整数,由1开始递增,每个消息都必须由唯一的顺序号 与时序图相比,协作图可以显示更为复杂的分支
30
时序图与协作图的互换 时序图与协作图都表示对象之间的交互作用,只是它们的侧重点有所不同
时序图描述了交互过程中的时间顺序,但没有明确地表达对象之间的关系 协作图描述了对象之间的关系,但时间顺序必须从顺序号获得 两种图的语义是等价的,可以从一种形式的图转换成另一种形式的图,而不丢失任何信息
31
图书馆管理系统的协作图 增加借阅者用例协作图(Add Borrower)
32
图书馆管理系统的协作图 删除借阅者用例协作图(Remove Borrower)
33
图书馆管理系统的协作图 更新借阅者用例协作图(Update Borrower)
34
图书馆管理系统的协作图 增加书籍用例协作图1(Add Item 1)
35
图书馆管理系统的协作图 增加书籍用例协作图2(Add Item 2)
36
图书馆管理系统的协作图 删除书籍用例协作图1(Remove Item 1)
37
图书馆管理系统的协作图 删除书籍用例协作图2(Remove Item 2)
38
图书馆管理系统的协作图 借书用例协作图(Lend Book)
39
图书馆管理系统的协作图 还书用例协作图(Return Book)
40
状态活动图模型 状态图 活动图
41
状态图 状态机 状态图 状态 转换 事件 监护条件 动作
42
状态机 状态机是展示状态与状态转换的图 状态机包含了一个类的对象在其生命期间所有状态的序列以及对象对接受到的事件所产生的反应
利用状态机可以精确地描述对象的行为 状态机的组成 状态(State) 转换(Transition) 事件(Event) 活动(Activity) 动作(Action)
43
状态图 一个状态图表示一个状态机 状态图表现从一个状态到另一个状态的控制流 状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成
状态图的组成 状态(State) 转换(Transition) 初始状态(Start State) 终结状态(End State) 判定(Decision)
44
状态图
45
状态 状态图中的状态一般是给定类对象中的一组属性值,这组属性值是对象所有属性的子集
在对系统建模时,我们可以只关心那些明显影响对象行为的属性以及由他们表达的对象状态,而不用理睬那些于对象行为无关的状态
46
状态 状态由一个带圆角的矩形表示 状态图标可以分为三部分 名称 内部转换 嵌套状态
47
状态 状态名 表示状态名称的字符串 一个状态的名称在状态图所在的上下文中应该是唯一的 状态允许匿名
48
转换 转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态
转换进入的状态为活动状态,转换离开的状态变为非活动状态
49
转换 转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态
转换可以标注与此转换相关的选项如事件、动作和监护条件
50
转换 转换的分类 外部转换 内部转换 完成转换 复合转换
51
转换 外部转换 外部转换是一种改变对象状态的转换,是最常见的一种转换 外部转换用从源状态到目标状态的箭头表示
52
转换 内部转换 内部转换有一个源状态但是没有目标状态,它转换后的状态仍旧是它本身 内部转换的激发规则和改变状态的外部转换的激发规则相同
内部转换用于对不改变状态的插入动作建立模型
53
转换 完成转换 完成转换又称为自转换 完成转换是因为没有标明触发器事件的转换是由状态中的活动的完成引起的,是自然而然地完成的转换
完成转换也可以带一个监护条件,这个监护条件在状态中的活动完成时被赋值,而非活动完成后被赋值
54
转换 内部转换和自转换(完成转换)的区别 自转换是离开本状态后重新进入该状态,它会激发状态的入口动作和出口动作的执行
内部转换自始至终都不离开本状态,所以没有出口或入口事件,也就不执行入口和出口动作
55
转换 复合转换 复合转换由简单转换组成,这些简单转换通过分支判定、分叉或接合组合在一起 除了两个分支的判定,还有多条件的分支判定
多条件的分支判定有分为链式的和非链式的分支
56
事件 事件表示在某一特定的时间或空间出现的能够引发状态改变的一种运动变化
事件是一个激励的出现,它定义一个触发子以触发对象改变其状态,任何影响对象的事物都可以是事件 触发事件是能够引起状态转换的事件 触发事件可以是信号、调用、时间段等
57
事件 事件种类 入口事件 出口事件 动作事件 信号事件 调用事件 修改事件 时间事件 延迟事件
58
事件 入口事件 出口事件 入口事件表示一个入口的动作序列,它在进入状态时执行 入口事件的动作是原子的,并且先于人和内部活动或转换
出口事件表示一个出口的动作序列,它在退出状态时执行 出口事件也是原子的,它跟在所有的内部活动之后,但是先于所有的出口转换
59
事件 动作事件 信号事件 动作事件也称为“do事件”,它表示对一个嵌套状态机的调用
与动作事件相关的活动必定引用嵌套状态机,而非引用包含它的对象的操作 信号事件 信号的接收是信号接受对象的一个事件 信号分为异步单路通信和双路通信 在异步单路通信中,发送者是独立的 在双路通信模型中,至少在每个方向上都要有一个信号 在信号事件中,发送者和接受者可以是同一个对象
60
事件 调用事件 修改事件 调用事件是一个对象对调用的接收 调用事件至少涉及两个以上的对象 调用事件既可以为同步调用,也可以为异步调用
修改事件依靠特定属性值的布尔表达式所表示的条件的满足来触发状态的转换 修改事件表示了一种具有时间持续性的并且可能是涉及全局的计算过程
61
事件 时间事件 延迟事件 时间事件代表时间的流逝
时间事件既可以被指定为绝对形式(天数),也可以被指定为相对形式(从某一指定事件发生开始所经历的时间) 时间事件可以描述一个通知信息,自进入状态以来某个时间期限已到,时间事件就会激发状态的转换 延迟事件 延迟事件是在本状态不处理,要推迟到另外一个状态才处理的事件
62
监护条件 监护条件是触发转换必须满足的条件,它是一个布尔表达式
监护条件只能在触发事件发生时被赋值一次,如果在转换发生后监护条件才由假变为真,那么转换也不会被触发 从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具有不同的监护条件
63
动作 动作是一组可执行语句或者计算处理过程 动作可以包括发送消息给另一个对象、操作调用、设置返回值、创建和销毁对象等
动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止 整个系统可以在同一时间执行多个动作
64
图书馆管理系统的状态图 借阅者的状态图
65
图书馆管理系统的状态图 图书的状态图
66
活动图 活动图概述 活动图的用途 活动图的图形表示 活动图与状态图的区别 活动图与流程图的区别 活动图的基本组成元素 图书馆管理系统的活动图
67
活动图概述 活动图描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程 活动是某件事情正在进行的状态 活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求 活动图显示了组成复杂过程的步骤序列
68
活动图的用途 为什么要在 UML 中引入活动图? 在 OMT, Booch, OOSE 方法中没有活动图的概念 活动图对表示并发行为很有用
对于以下情况可以使用活动图 即对系统的业务过程建模,分析用例,理解牵涉多个用例的工作流 对具体的操作建模,描述计算过程的细节 处理多线程应用 活动图的缺点是很难清楚地描述动作与对象之间的关系,在下列情况一般不要使用活动图 显示对象间合作及对象在其生命周期内的运转情况
69
活动图的图形表示 在 UML 中,活动表示成圆角矩形 如果一个活动引发下一个活动,两个活动的图标之间用带箭头的直线连接
活动图也有起点和终点,表示法和状态图中相同 活动图中还包括分支与合并、分叉与汇合等模型元素。分支与合并的图标和状态图中的判定的图标相同,而分叉与汇合则用一条加粗的线段表示
70
活动图的图形表示
71
活动图的图形表示 用例的事件流或者操作均可表示为一系列的活动,每个活动在活动图中被表示为一个结点,结点之间的有向边表示顺序执行的活动
在结点间的连接边上可以附加条件表达式,表示在有向连接边的源结点执行完成后,如果条件成立,则开始执行有向连接边的目标结点所表示的活动;如果条件不成立,则目标结点的活动不执行 菱形在活动图中表示条件判断,条件表达式一般出现在以菱形为源结点的有向边上 活动图可以表示过程的并发。活动图的同步条(水平或者垂直粗线)可以将一条有向连接边分叉为多个并发执行的分支进程,或将多个有向连接边上的进程同步合并为一个进程
72
活动图与状态图的区别 虽然活动图与状态图都是状态机表现形式,但两者还是有本质的区别的
活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程 状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与
73
活动图与流程图的区别 流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理之间有严格的顺序和时间关系;而活动图描述的则是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程 活动图能够表示并发活动的情形,而流程图不能 活动图是面向对象的,而流程图是面向过程的
74
活动图的基本组成元素 动作状态(Action State) 活动状态(Activity State) 动作流(Action Flow)
分支(Branch)与合并(Merge) 分叉(Fork)与汇合(Join) 泳道(Swimlane) 对象流(Object Flow)
75
活动图的基本组成元素 动作状态 动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态
动作状态使用平滑的圆角矩形表示,动作状态所表示的动作写在圆角矩形内部
76
活动图的基本组成元素 动作状态的特点 动作状态是原子的,它是构造活动图的最小单位,已经无法分解为更小的部分
动作状态是不可中断的状态,它一旦开始运行就不能中断,一直运行到结束 动作状态是瞬时的行为,它所占用的处理时间极短,有时甚至可以忽略 动作状态可以有入转换,入转换既可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关 动作状态和状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移 在一张活动图中,动作状态允许多处出现
77
活动图的基本组成元素 活动状态 活动状态用于表达状态机中的一个非原子的运行
活动状态的表示图标也是平滑的圆角矩形,并可以在图标中给出入口动作和出口动作等信息
78
活动图的基本组成元素 活动状态的特点 活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断
活动状态的内部活动可以用另一个活动图来表示 和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移 动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态
79
活动图的基本组成元素 动作流 所有动作状态之间的转换流称之为动作流
与状态图的转换相同,活动图的转换也用带箭头的直线表示,箭头的方向指向转入的方向
80
活动图的基本组成元素 分支与合并 分支一般用于表示对象类所具有的条件行为 条件行为用分支和合并表达 在活动图中分支与合并用空心小菱形表示
一个分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的,这样可以保证只有一条出转换能够被触发 一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束
81
活动图的基本组成元素 分支与合并
82
活动图的基本组成元素 分叉与汇合 分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的
分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流 汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。每个汇合可以有两个或多个输入转换和一个输出转换 分叉和汇合都使用加粗的水平或垂直线段表示
83
活动图的基本组成元素 分叉与汇合
84
活动图的基本组成元素 带“泳道”的活动图 为了描述活动的责任对象,活动图引进了“泳道”的概念。泳道是由垂直长线分割出来的矩形区域,在泳道上方的对象负责该矩形区域内的所有活动
85
活动图的基本组成元素 泳道 泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织即对象
泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的 每个活动只能明确地属于一个泳道 泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动 泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线
86
活动图的基本组成元素 泳道
87
活动图的基本组成元素 对象流 对象流中的对象特点 对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的影响
对象流用带有箭头的虚线表示。如果箭头从动作状态出发指向对象,则表示动作对对象施加了一定的影响。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象 对象流中的对象特点 一个对象可以由多个动作操纵 一个动作输出的对象可以作为另一个动作输入的对象 在活动图中,同一个对象可以多次出现,它的每一次出现表明该对象正处于对象生存期的不同时间点
88
活动图的基本组成元素 对象流
89
活动图建模技术 识别要对其工作流描述的类或对象 确定工作流的初始状态和终止状态,明确工作流的边界 对动作状态或活动状态建模 对动作流建模
对对象流建模 对建立的模型进行精化和细化
90
图书馆管理系统的活动图 图书管理员的活动图
91
图书馆管理系统的活动图 系统管理员的活动图
Similar presentations