第11讲 状态图和活动图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 状态
2.状态的表示和要素 2.状态的表示和要素 状态的表示:用圆角的矩形框表示状态。 ● 状态的表示:用圆角的矩形框表示状态。 状态的要素:包括状态名,进入、退出、 ● 状态的要素:包括状态名,进入、退出、 内部转移的动作,子状态等。 内部转移的动作,子状态等。
状态名 进入动作
内部转移 动作
退出动作
2. 事件的描述 事件名称[参数表 事件名称 参数表] 参数表
字符串, 字符串,常为接收对象类中 的一个操作。 的一个操作。 事件的形式参数 ,可以省略
3. 事件的类型 ① 调用事件:是表示对操作的调度。 调用事件:是表示对操作的调度。
事件
变化事件:因满足某种条件而引起的事件,变化条件用 ② 变化事件:因满足某种条件而引起的事件 变化条件用 when表示。 表示。 表示
实例1 图书馆中“图书” 实例1:图书馆中“图书”的状态图
教学进程
实例2 实例2:一个电子钟的状态图
教学进程
第
11讲
动态模型和实现模型
11.2 活动图
11.2.1 什么是活动图 11.2.2 活动图的要素 11.2.3 活动图的用途
11.2.4 状态图与活动图的比较
11.2.1 什么是活动图
超时消息
3. 消息 ⑥消息的语法格式 [警戒条件 消息序号 返回值:=]消息名([参数列表 ) 警戒条件][消息序号 返回值: 消息名 参数列表 消息名( 参数列表]) 警戒条件 消息序号][返回值 例如: 例如:
2:display(x,y) : 1.2.1:p:=find(specs) : [x<0]4:invert(x,color) 3.1 *update() 简单消息 嵌套消息, 嵌套消息,消息带返回值 条件消息 循环消息
消息 对象
生命线
控制焦点
2. 顺序图样式和元素 ① 对象及命名
:类名 :对象名 对象名: 对象名:类名
② 生命线: 表示对象存在的时间,对象下面一条虚 生命线 表示对象存在的时间, 线表示。 线表示。
对象生命线
2. 顺序图样式和元素 控制焦点:小矩形 表示这个时间对象将执行操作。 小矩形, ③ 控制焦点 小矩形,表示这个时间对象将执行操作。
控制焦点
消息: 带箭头的连线,表示对象之间传输的信息。 ④ 消息 带箭头的连线,表示对象之间传输的信息。
消息
3. 消息 消息:对象之间传输的信息。 消息:对象之间传输的信息。 消息有以下类型: 消息有以下类型: ① 调用消息
调用消息(也称为同步消息 的发送者把控制传递给接收者 调用消息 也称为同步消息)的发送者把控制传递给接收者,然 也称为同步消息 的发送者把控制传递给接收者, 后停止活动,等到消息接收者放弃或返回控制。 后停止活动,等到消息接收者放弃或返回控制。
第
11讲
动态模型和实现模型
11.1 状态图 11.2 活动图 11.3 顺序图 11.4 协作图 11.5 构件图 11.6 配置图
第
11讲
动态模型和实现模型
11.1 状态图
11.1.1 什么是状态图 11.1.2 状态图的要素 11.1.3 状态图的作用
11.1.1 什么是状态图
1. 状态图的概念 状态图(statechart diagram): 用来描述 状态图 一个特定的对象所有可能的状态,以及由 一个特定的对象所有可能的状态 以及由 于各种事件的发生而引起的状态之间的转 移和变化。 移和变化。
2 转移
1. 转移的概念 转移(transition): 是一个状态向另外一个状态的转换。 是一个状态向另外一个状态的转换。 转移 对象处在源状态时,发生一个事件 如果条件满足,则执行 发生一个事件,如果条件满足 对象处在源状态时 发生一个事件 如果条件满足 则执行 相应的动作,对象由源状态转移到目标状态 对象由源状态转移到目标状态。 相应的动作 对象由源状态转移到目标状态。 转移用箭头表示,如果没有标注事件,则本转移为 转移用箭头表示,如果没有标注事件, 自动转移。 自动转移。
1 状态
3. 状态的类型 ① 初始状态 ② 原子状态 ③ 结束状态
④ 组合状态和子状态 子状态:被嵌套在另外一个状态中的状态。 子状态:被嵌套在另外一个状态中的状态。 组合状态:含有子状态的状态。 组合状态:含有子状态的状态。组合状态也可以有初 态和终态。 态和终态。
组合 状态
子状态
⑤ 并发状态 并发状态:指一个对象在同一时刻可以处在多种状态。 并发状态:指一个对象在同一时刻可以处在多种状态。
1. 活动图的概念 活动图(activity diagram)是UML的动态视图之一,用 的动态视图之一, 活动图 是 的动态视图之一 来描述事物或对象的活动变化流程。 来描述事物或对象的活动变化流程。
11.2.2 活动图的要素
活动
活动流 泳道
分劈
汇合
1 活动
活动(Action): 是活动图主要结点 用两边为弧的条形 是活动图主要结点,用两边为弧的条形 活动 框表示,中间填活动名 框表示 中间填活动名 。 活动分为简单活动和复合活动。 活动分为简单活动和复合活动。 简单活动:不能再分解的活动; 简单活动:不能再分解的活动; 复合活动:可以再分解的复杂活动。 复合活动:可以再分解的复杂活动。
1. 描述工作流
订货处理活动图
2. 描述工程组织过程
建筑工程过程活动图
3. 描述算法流程
实例1 实例1:找饮料的活动图
教学进程
实例2 实例2:销售处理过程的活动图
教学进程
11.2.4 状态图与活动图的比较
● 描述对象不同 状态图:描述对象状态及状态之间的转移; 状态图:描述对象状态及状态之间的转移; 活动图:描述从活动到活动的控制流。 活动图:描述从活动到活动的控制流。 ● 使用场合不同 状态图:描述对象在其生命期中的行为状态变化; 状态图:描述对象在其生命期中的行为状态变化; 活动图:描述过程的流程变化。 活动图:描述过程的流程变化。
简单 活动
复合 活动
2 活动流
活动流(ActionFlow): 描述活动之间的有向关系,反 描述活动之间的有向关系, 活动流 映一个活动向另外一个活动之间的转移。 映一个活动向另外一个活动之间的转移。用带箭头的实 线表示。 线表示。
活动流
3 分支
分支: 表示活动流的分叉和合并。 分支 表示活动流的分叉和合并。表示从一个活动 按照某种条件转移到几个不同的活动。 按照某种条件转移到几个不同的活动。
事件
③ 时间事件:满足某一时间表达式而引起的 时间事件:
事件,时间事件用 表示。 事件 时间事件用after,when表示。 时间事件用 表示
事件
11.1.3 状态图的作用
状态图: 状态图 用来描述一个对象在其生命周期中所 表现出来的状态和行为。 表现出来的状态和行为。 当在系统建模过程中需要描述某个事物或对 象的不同状态,以及状态之间转移的事件和动 象的不同状态, 作时,用状态图。 作时,用状态图。 但状态图并不是对每一个对象都需要的。 但状态图并不是对每一个对象都需要的。
调用消息
3. 消息类型 ②异步消息 异步消息的发送者通过消息把信号传递给接收者, 异步消息的发送者通过消息把信号传递给接收者, 的发送者通过消息把信号传递给接收者 然后继续自己活动,不等待接收者返回消息或控制。 然后继续自己活动,不等待接收者返回消息或控制。
异步消息
3. 消息类型 ③返回消息
返回消息表示从过程调用返回。如果是从过程调用返回, 返回消息表示从过程调用返回。如果是从过程调用返回,则返 表示从过程调用返回 回消息是隐含的,可以不画出来。 回消息是隐含的,可以不画出来。 对于非过程调用,如果有返回消息,必须画出来。 对于非过程调用,如果有返回消息,必须画出来。
Байду номын сангаас分叉
合并
4 分劈和汇合
分劈和汇合: 表示并发的同步行为,用同步杆表示。 分劈和汇合 表示并发的同步行为,用同步杆表示。
分劈
汇合
5 泳道
泳道(swimlane): 是活动图中的区域划分,每一个泳 是活动图中的区域划分, 泳道 道代表一个责任区域。一个泳道中包括一组相关活动。 道代表一个责任区域。一个泳道中包括一组相关活动。
状态图的例子: 状态图的例子
一个机器 的状态图: 的状态图
一个发货单 的状态图: 的状态图
11.1.2 状态图的要素
事件
开始 状态
转移
状态
货品发货的状态图
结束 状态
1 状态
1. 状态的概念 状态(state): 是指对象在其生命周期中 满足某些条 是指对象在其生命周期中,满足某些条 状态 执行某些活动、或等待某些事件时的一个状况。 件、执行某些活动、或等待某些事件时的一个状况。 状态指的是对象的状态。例如: 状态指的是对象的状态。例如 发票(对象 被支付(状态 对象)被支付 状态) ● 发票 对象 被支付 状态 小车(对象 正在停着(状态 对象)正在停着 状态) ● 小车 对象 正在停着 状态 发动机(对象 正在工作(状态 对象)正在工作 状态) ● 发动机 对象 正在工作 状态 电灯(对象 开着(状态 对象)开着 状态) ● 电灯 对象 开着 状态
返回消息
3. 消息类型 ④阻止消息 阻止消息指消息发送者发出消息给接收者, 阻止消息指消息发送者发出消息给接收者,如果接 消息指消息发送者发出消息给接收者 收者无法立即接收这个消息,则发送者放弃这个消息。 收者无法立即接收这个消息,则发送者放弃这个消息。
阻止消息
3. 消息类型 ⑤超时消息 超时消息指消息发送者发出消息给接收者, 超时消息指消息发送者发出消息给接收者,并按指 消息指消息发送者发出消息给接收者 定时间等待, 定时间等待,如果接收者无法在指定时间内接收这个消 则发送者放弃这个消息。 息,则发送者放弃这个消息。
第
11讲
动态模型和实现模型
11.2 顺序图
11.2.1 顺序图的概念 11.2.2 顺序图的样式和元素 11.2.3 消息
11.2.4 建立顺序图
1. 顺序图的概念 顺序图(sequence diagram): 用来描述为了完成确定事 顺序图 对象之间按照时间消息交互的顺序关系。 务,对象之间按照时间消息交互的顺序关系。 2. 顺序图样式和元素
自动转移
条件转移: 通过分支判断所确定的转移。 ③ 条件转移 通过分支判断所确定的转移。
条件转移
3 事件
1. 事件的概念 事件(event): 是指在确定的时间和位置所发 事件 生的对对象起作用的事情。 生的对对象起作用的事情。事件的发生将引起一 些动作,使对象发生状态的转移。 些动作,使对象发生状态的转移。 动作:动作是对象类中一个操作的执行, 动作:动作是对象类中一个操作的执行,动 作具有原子和不可中断特性。 作具有原子和不可中断特性。
泳道
6 对象流
对象流: 反映活动与对象之间的依赖关系, 对象流 反映活动与对象之间的依赖关系,表示对 象对活动的作用或活动对对象的影响,用依赖关系表示。 象对活动的作用或活动对对象的影响,用依赖关系表示。
对象流
例子:表现软件开发过程的活动图 例子:
11.2.3 活动图的用途
活动图具有广泛地用途,在软件建模中 活动图可以用来 活动图具有广泛地用途 在软件建模中,活动图可以用来 在软件建模中 活动图可以用来: 1. 描述工作流 工作流:也被称为业务流程 属于业务活动的过程 可以 工作流 也被称为业务流程, 属于业务活动的过程,可以 也被称为业务流程 用活动图来描述。 用活动图来描述。 2. 描述工程组织过程 各种工程组织过程,管理过程均可以用活动来描述。 各种工程组织过程 管理过程均可以用活动来描述。 管理过程均可以用活动来描述 3. 描述算法流程
付款确认
已确认
并发中的同步:并发状态之间需要通信,或具有确定的 并发中的同步:并发状态之间需要通信, 时序关系,称为并发中的同步。 时序关系,称为并发中的同步。
⑥ 历史状态
记录组合状态退出时所处的子状态, 记录组合状态退出时所处的子状态,以便再次进入 从这个状态开始工作。 从这个状态开始工作。
历史 状态
转移
2 转移
2. 转移的类型 自转移: 源状态和目标状态为同一状态的转移。 ① 自转移 源状态和目标状态为同一状态的转移。
自转移
自动转移: 状态根据本状态的有关情况, ② 自动转移 一个 状态根据本状态的有关情况,自 动触发进入目标状态,在转移上没有事件。 动触发进入目标状态,在转移上没有事件。