UML状态图的画法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
entry / ^目标对象.消息名(消息参数) do / ^目标对象.消息名(消息参数) exit / ^目标对象.消息名(消息参数)
12
火龙果 整理
3.2.3 初始与终结状态
初始状态:是模型元素的初始状况,代表一个状
态图的起始点,是一个伪状态。初始状态是转移 的初始源,而不能是转移的目标。实心圆表示。
[条件2]/动作2
[条件5]/动作6 [条件6]/动作6
目标状态4
多条件非链式分支
源状态 事件1[条件1 and 条件3]/动作1,动作3 事件1[条件1 and 条件4]/动作1,动作4 事件1[条件2 and 条件5]/动作2,动作5 事件1[条件2 and 条件6]/动作2,动作6 目标状态1 目标状态2 目标状态3 目标状态4
14
火龙果 整理
事件
事件(event)是指某个时刻发生的事情。 事件中最常见的是:
信号事件(signal event):从一个对象到另一个对象 的明确的单向信息流动。 变更事件(change event):是指由满足布尔表达式 而引起的事件。 时间事件(time event):是指在绝对时间上或在某 个时间间隔上发生的事情所引起的事件。
租借店软件系统中的租借项目(录像带、游戏等)状态图
已租出
租出项目 购入项目 租出项目 正常 entry/ 令store = null(空值) 已出租 do/ 每天检查到期时间 [ 超过到期日子 ]
在店内 entry/ 令store = theStore(本店)
归还项目 弃置项目
过期 entry/ 通知会员
火龙果 整理
动态模型vs 静态模型
动态模型描述系统与操作时间和顺序有关的系统 方面、影响更改的事件、事件的序列、事件的环 境以及事件的组织
1
火龙果 整理
动态模型的作用
2
火龙果 整理
3
火龙果 整理
维修
继续
27
火龙果 整理
3.4.3 并发子状态[1]
并发状态图用于描述一个对象在某个时刻有多个并发的子 状态机的情况,并发状态图是这些子状态图的组合。
工作 输入
等待用户输入
登记用户输入
显示用户输入
[时钟间隔已过] 监视 系统时钟 更新 界面显示
28
GUI中“工作”的并发组合状态
火龙果 整理
3.4.3 并发子状态[2]
订货 等待 取消
商品检查
办理装货 发货
付款检查
已付款
拒绝 网上商店系统中“订货”对象的并发状态图
29
火龙果 整理
3.4.4 同步
同步:同步可定义为并发工作流的分劈(Fork)与接合 (Join)。 分劈(拆分):是一个源状态分为两个或两个以上的目标状态。 接合:是两个以上的源状态连接为一个目标状态。 同步在状态图中用一条粗短实线表示,称为同步杆。
PRMS的一个资源状态图
21
火龙果 整理
3.4.1 组合状态—子状态
一个状态内嵌套了若干个状态,则称该状态为组合状态(超状态)。 其中,被嵌套的状态称为子状态。子状态本身仍然可以是组合状态。 一个组合状态可以有一个被嵌套的子状态图,它代表了该组合状态的 一个活动。子状态图中必须有自己的初始和终结状态。对组合状态的 一个入转移代表对其子区域内的初始状态的入转移,对子区域内的终 结状态的转移代表包含它的组合状态的相应活动的完成。 采用组合状态可以简化复杂行为的建模。
9
火龙果 整理
3.2.1 状态图标
状态图标(状态节点) 一个状态可以加入信息:
状态名 entry / 动作 do / 活动 exit / 动作
进入操作、退出操作、
活动等
10
火龙果 整理
3.2.2 状态行为[1]
进入操作(entry):系统进入该状态时要发生的动作,前面加上 entry和“ / ”。不可中断。
事件[警戒条件]/动作 源状态 目标状态
当处于源状态的对象接收到一个事件,并且保护条件得到满足时 (如果有的话),则执行相应的动作,并从源状态转移到目标状态。 当发生一个转移时,该转移进入的状态为活动状态,它将执行相应 的动作。当发生一个转移离开一个状态时,该状态变为非活动状态。
转移类型:简单转移、自转移、自动转移、复合转移等。
发货处理 取消 取消
22
已发货
网上商店处理送货过程的状态图
网上商店处理送货过程的状态图
[未检查完 全部商品] / 取下一个
检查 do / 检查商品
[全部商品已 检查完,但部 分商品缺货]
[全部商品 检查完且全 部商品都有]
办货处理 do / 启动发货
收到商品 [全部商品都有]
等待
收到商品 [部分商品缺货] 取消
15
火龙果 整理
3.3 转移[2]
打开PC机 初始化 do / 自启动 工作 关闭机器 关闭
[等待超时]
击键或移动鼠标
屏幕保护
GUI的状态图
16
火龙果 整理
3.3.1 转移类型[1]
自身转移(Self-Transition):是指那些源状态与目 标状态是同一状态的转移。 如:卖票的航班中增加乘客 增加乘客 [人数+1 未满]/sum+1 或减少乘客时,航班是打开的。
6
火龙果 整理
3.1 状态机[2]
状态机用于对一个模型元素建立行为模型,该模型元素通 常是一个对象类,也可以是一个子系统,甚至整个系统。 在UML中状态机用状态图可视化表示。
状态图:状态的节点、转移的弧、事件等组成。
源状态
事件
目标状态
7
火龙果 整理
注:航班进入预定状态时, 系统将时刻表发布到Internet。 尽管发布动作在技术上是可以 中断的,但其速度很快,用户 很难在其发生时取消事物。 航班预定
entry / 将时刻表发布到 Internet
活动(do):系统处于该状态时要发生的活动,前面加上do和 “ / ”。 活动是可中断行为, 可以在对象处于该状态时 航班取消 运行完毕,也可以在对象 转入另一状态时中断。 do / 为客户寻找其它航班
25
火龙果 整理
3.4.2 顺序子状态
顺序子状态:子状态是一个一个顺序转移的,不是并发存 在的。
工作
等待用户输入
输入
登记用户输入
显示用户输入
GUI中“工作”的组合状态
26
火龙果 整理
IC卡电话机顺序状态示例
活动 插卡 ?? 验卡
休闲
取消
?? 通话 维修完成 维修 结束 ?? 挂断 ?? 拨号
主要内容
1. 状态机
2. 状态
3. 转移
4. 组合状态 5. 状态图的应用
5
火龙果 整理
3.1 状态机[1]
状态机对系统的动态特征建模。
状态机表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起, 响应事件,执行某些动作,引起转移到新状态,在新状态下响应事件,执行 动作,引起转移到另一个状态,直到终结状态。 状态机的组成:状态、转移、事件、活动、动作等。 状态(State):表示一个模型元素在生存期的一种状况,如满足某些条件, 进行某些活动,或等待某些事件出现等。一个状态在有限的时间段内存在。 转移/迁移(Transition):表示一个模型元素的不同状态之间的联系。在 事件触发下,一个状态可以转移到另一个状态。 事件(Event):一个有意义的出现(Occurrence)的说明。该出现在某 个时间或空间点发生,并且立即触发一个状态的转移。例如,一个信号、一 个操作的调用、一个对象的创建或销毁、超时、某个条件的改变等。 动作(Action):一个可执行的原子计算,它导致状态的变更或返回一个值。 不能被中断。 活动(Activity):是在状态机中一系列动作的执行。活动可能被某个事件 中断。
17
火龙果 整理
3.3.1 转移类型[2]
判定:是在状态图中的一个特定的位置,工作流在此依 据保护条件的取值而发生的分支。判定用空心小菱形表示。
[条件1] 目标状态1 源状态 [条件2] 目标状态2
复合转移(Compound-Transition):复合转移由简 单转移组成,这些简单转移通过分支判定、分叉组成。
在UML中,对一个对象(模型元素)的行为建模时,所选择的该对 象的生存期中的状态数量是有限的,对象处于每个状态的持续时间 也是有限的。当发生某个事件,或完成某个动作,都会触发状态的 转移。
8
火龙果 整理
状态举例
状态指的是对象的状态。例如: 发票(对象)被支付(状态) 小车(对象)正在停着(状态) 发动机(对象)正在工作(状态) 电灯(对象)开着(状态)
20
火龙果 整理
3.3.2 转移示例
资源管理员 资源休闲
未分配任务
[NumAssTasks=1] / NumAssTasks=0 分配任务给资源 / NumAssTasks+1
取消对任务的资源分配
已分配任务
分配任务给资源 / NumAssTasks+1
[NumAssTasks>1] / NumAssTasks-1
18
火龙果 整理
3.3.1 转移类型[3]
制定计划 [人员齐备] 实施
[人员未齐备]
招聘人员
制定计划
[人员齐备]
实施
[人员未齐备]
招聘人员
19
多条件链式分支 源状态
火龙果 整理
事件1
[条件1]/动作1
[条件3]/动作3
[条件4]/动作4
目标状态1 目标状态2 目标状态3
取消
取消
取消
已发货
网上商店处理送货过程的状态图
[未检查完 全部商品] / 取下一个
发货处理
[全部商品已 检查完且全部 商品都有]
检查 do / 检查商品
[全部商品已 检查完,但部 分商品缺货]
办货处理 do / 启动发货
收到商品 [全部商品都有]
等待
收到商品 [部分商品缺货] 取消
取消
已发货
火龙果 整理
3.2 状态
状态:对象全部属性的当前值。
(问题:对象任何一个新的属性值组合就是一个新状态,状态空间太大)
状态属性:对确定对象的状态有重要意义的属性。
状态属性一般具有少量的值,而且这些属性的值的转换是有限的。 并且其属性值反映所属对象的特定状态。
如:对于“汽车”对象,可能有“型号”、“车况”、“使用情况”、 “公里数”、“汽油剩余量”等属性。不应取“公里数”或“汽油剩余量” 作为状态属性,可取“使用情况”作为属性状态。则,“汽车”对象的有 限个不同状态:“开动”、“停车”、“维修”、“闲置”、“报废”等。
减少乘客/sum-1 减少乘客/sum-1
关闭
增加[人数+1 已满]/sum+1
打开
自动转移(Automatic-Transition):自动转移又称 完成转移(Completion-Transition)。每个状态都 可能有一个不由事件触发的转移,它是根据该状态内的动 作完成而自动触发的。见GUI状态图。
二、状态图(State Diagram)
状态图是系统分析的一种常见工具,用于描述系统的行为。 实体的生存期比较复杂时,需要状态图对其建模。
UML中的状态图主要用于建立对象类或对象的动态行为
模型,表现一个对象所经历的状态序列,引起状态或活动 转移的事件,以及因状态或活动的转移而伴随的动作。
4
火龙果 整理
终结状态:是模型元素的最后状态,代表一个状 态图的终止点,是一个伪状态。终结状态是转移 的最后目标,而不能是转移的初始源。牛眼表示。
13
火龙果 整理
3.3 转移(迁移)[1]
转移:用实箭线表示,箭尾连接出发状态,即源状态,箭头连接到 达状态,即目标状态。在箭线上可以标示与该转移有关的选项:事 件、保护(警戒)条件和动作。
11
火龙果 整理
3.2.2 状态行为[2]
退出操作(exit):系统离开该状态时要发生的动作,前面加上 exit和“ / ”。不可中断。
注:飞机着陆时退出飞行状态, 系统记录登陆时间。 飞行状态 exit / 记录登陆时间
发送事件:在活动、进入和退出操作的动作中可以是对象内部发生 的行为,也可能是向另外 一个对象发送消息。 状态名
12
火龙果 整理
3.2.3 初始与终结状态
初始状态:是模型元素的初始状况,代表一个状
态图的起始点,是一个伪状态。初始状态是转移 的初始源,而不能是转移的目标。实心圆表示。
[条件2]/动作2
[条件5]/动作6 [条件6]/动作6
目标状态4
多条件非链式分支
源状态 事件1[条件1 and 条件3]/动作1,动作3 事件1[条件1 and 条件4]/动作1,动作4 事件1[条件2 and 条件5]/动作2,动作5 事件1[条件2 and 条件6]/动作2,动作6 目标状态1 目标状态2 目标状态3 目标状态4
14
火龙果 整理
事件
事件(event)是指某个时刻发生的事情。 事件中最常见的是:
信号事件(signal event):从一个对象到另一个对象 的明确的单向信息流动。 变更事件(change event):是指由满足布尔表达式 而引起的事件。 时间事件(time event):是指在绝对时间上或在某 个时间间隔上发生的事情所引起的事件。
租借店软件系统中的租借项目(录像带、游戏等)状态图
已租出
租出项目 购入项目 租出项目 正常 entry/ 令store = null(空值) 已出租 do/ 每天检查到期时间 [ 超过到期日子 ]
在店内 entry/ 令store = theStore(本店)
归还项目 弃置项目
过期 entry/ 通知会员
火龙果 整理
动态模型vs 静态模型
动态模型描述系统与操作时间和顺序有关的系统 方面、影响更改的事件、事件的序列、事件的环 境以及事件的组织
1
火龙果 整理
动态模型的作用
2
火龙果 整理
3
火龙果 整理
维修
继续
27
火龙果 整理
3.4.3 并发子状态[1]
并发状态图用于描述一个对象在某个时刻有多个并发的子 状态机的情况,并发状态图是这些子状态图的组合。
工作 输入
等待用户输入
登记用户输入
显示用户输入
[时钟间隔已过] 监视 系统时钟 更新 界面显示
28
GUI中“工作”的并发组合状态
火龙果 整理
3.4.3 并发子状态[2]
订货 等待 取消
商品检查
办理装货 发货
付款检查
已付款
拒绝 网上商店系统中“订货”对象的并发状态图
29
火龙果 整理
3.4.4 同步
同步:同步可定义为并发工作流的分劈(Fork)与接合 (Join)。 分劈(拆分):是一个源状态分为两个或两个以上的目标状态。 接合:是两个以上的源状态连接为一个目标状态。 同步在状态图中用一条粗短实线表示,称为同步杆。
PRMS的一个资源状态图
21
火龙果 整理
3.4.1 组合状态—子状态
一个状态内嵌套了若干个状态,则称该状态为组合状态(超状态)。 其中,被嵌套的状态称为子状态。子状态本身仍然可以是组合状态。 一个组合状态可以有一个被嵌套的子状态图,它代表了该组合状态的 一个活动。子状态图中必须有自己的初始和终结状态。对组合状态的 一个入转移代表对其子区域内的初始状态的入转移,对子区域内的终 结状态的转移代表包含它的组合状态的相应活动的完成。 采用组合状态可以简化复杂行为的建模。
9
火龙果 整理
3.2.1 状态图标
状态图标(状态节点) 一个状态可以加入信息:
状态名 entry / 动作 do / 活动 exit / 动作
进入操作、退出操作、
活动等
10
火龙果 整理
3.2.2 状态行为[1]
进入操作(entry):系统进入该状态时要发生的动作,前面加上 entry和“ / ”。不可中断。
事件[警戒条件]/动作 源状态 目标状态
当处于源状态的对象接收到一个事件,并且保护条件得到满足时 (如果有的话),则执行相应的动作,并从源状态转移到目标状态。 当发生一个转移时,该转移进入的状态为活动状态,它将执行相应 的动作。当发生一个转移离开一个状态时,该状态变为非活动状态。
转移类型:简单转移、自转移、自动转移、复合转移等。
发货处理 取消 取消
22
已发货
网上商店处理送货过程的状态图
网上商店处理送货过程的状态图
[未检查完 全部商品] / 取下一个
检查 do / 检查商品
[全部商品已 检查完,但部 分商品缺货]
[全部商品 检查完且全 部商品都有]
办货处理 do / 启动发货
收到商品 [全部商品都有]
等待
收到商品 [部分商品缺货] 取消
15
火龙果 整理
3.3 转移[2]
打开PC机 初始化 do / 自启动 工作 关闭机器 关闭
[等待超时]
击键或移动鼠标
屏幕保护
GUI的状态图
16
火龙果 整理
3.3.1 转移类型[1]
自身转移(Self-Transition):是指那些源状态与目 标状态是同一状态的转移。 如:卖票的航班中增加乘客 增加乘客 [人数+1 未满]/sum+1 或减少乘客时,航班是打开的。
6
火龙果 整理
3.1 状态机[2]
状态机用于对一个模型元素建立行为模型,该模型元素通 常是一个对象类,也可以是一个子系统,甚至整个系统。 在UML中状态机用状态图可视化表示。
状态图:状态的节点、转移的弧、事件等组成。
源状态
事件
目标状态
7
火龙果 整理
注:航班进入预定状态时, 系统将时刻表发布到Internet。 尽管发布动作在技术上是可以 中断的,但其速度很快,用户 很难在其发生时取消事物。 航班预定
entry / 将时刻表发布到 Internet
活动(do):系统处于该状态时要发生的活动,前面加上do和 “ / ”。 活动是可中断行为, 可以在对象处于该状态时 航班取消 运行完毕,也可以在对象 转入另一状态时中断。 do / 为客户寻找其它航班
25
火龙果 整理
3.4.2 顺序子状态
顺序子状态:子状态是一个一个顺序转移的,不是并发存 在的。
工作
等待用户输入
输入
登记用户输入
显示用户输入
GUI中“工作”的组合状态
26
火龙果 整理
IC卡电话机顺序状态示例
活动 插卡 ?? 验卡
休闲
取消
?? 通话 维修完成 维修 结束 ?? 挂断 ?? 拨号
主要内容
1. 状态机
2. 状态
3. 转移
4. 组合状态 5. 状态图的应用
5
火龙果 整理
3.1 状态机[1]
状态机对系统的动态特征建模。
状态机表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起, 响应事件,执行某些动作,引起转移到新状态,在新状态下响应事件,执行 动作,引起转移到另一个状态,直到终结状态。 状态机的组成:状态、转移、事件、活动、动作等。 状态(State):表示一个模型元素在生存期的一种状况,如满足某些条件, 进行某些活动,或等待某些事件出现等。一个状态在有限的时间段内存在。 转移/迁移(Transition):表示一个模型元素的不同状态之间的联系。在 事件触发下,一个状态可以转移到另一个状态。 事件(Event):一个有意义的出现(Occurrence)的说明。该出现在某 个时间或空间点发生,并且立即触发一个状态的转移。例如,一个信号、一 个操作的调用、一个对象的创建或销毁、超时、某个条件的改变等。 动作(Action):一个可执行的原子计算,它导致状态的变更或返回一个值。 不能被中断。 活动(Activity):是在状态机中一系列动作的执行。活动可能被某个事件 中断。
17
火龙果 整理
3.3.1 转移类型[2]
判定:是在状态图中的一个特定的位置,工作流在此依 据保护条件的取值而发生的分支。判定用空心小菱形表示。
[条件1] 目标状态1 源状态 [条件2] 目标状态2
复合转移(Compound-Transition):复合转移由简 单转移组成,这些简单转移通过分支判定、分叉组成。
在UML中,对一个对象(模型元素)的行为建模时,所选择的该对 象的生存期中的状态数量是有限的,对象处于每个状态的持续时间 也是有限的。当发生某个事件,或完成某个动作,都会触发状态的 转移。
8
火龙果 整理
状态举例
状态指的是对象的状态。例如: 发票(对象)被支付(状态) 小车(对象)正在停着(状态) 发动机(对象)正在工作(状态) 电灯(对象)开着(状态)
20
火龙果 整理
3.3.2 转移示例
资源管理员 资源休闲
未分配任务
[NumAssTasks=1] / NumAssTasks=0 分配任务给资源 / NumAssTasks+1
取消对任务的资源分配
已分配任务
分配任务给资源 / NumAssTasks+1
[NumAssTasks>1] / NumAssTasks-1
18
火龙果 整理
3.3.1 转移类型[3]
制定计划 [人员齐备] 实施
[人员未齐备]
招聘人员
制定计划
[人员齐备]
实施
[人员未齐备]
招聘人员
19
多条件链式分支 源状态
火龙果 整理
事件1
[条件1]/动作1
[条件3]/动作3
[条件4]/动作4
目标状态1 目标状态2 目标状态3
取消
取消
取消
已发货
网上商店处理送货过程的状态图
[未检查完 全部商品] / 取下一个
发货处理
[全部商品已 检查完且全部 商品都有]
检查 do / 检查商品
[全部商品已 检查完,但部 分商品缺货]
办货处理 do / 启动发货
收到商品 [全部商品都有]
等待
收到商品 [部分商品缺货] 取消
取消
已发货
火龙果 整理
3.2 状态
状态:对象全部属性的当前值。
(问题:对象任何一个新的属性值组合就是一个新状态,状态空间太大)
状态属性:对确定对象的状态有重要意义的属性。
状态属性一般具有少量的值,而且这些属性的值的转换是有限的。 并且其属性值反映所属对象的特定状态。
如:对于“汽车”对象,可能有“型号”、“车况”、“使用情况”、 “公里数”、“汽油剩余量”等属性。不应取“公里数”或“汽油剩余量” 作为状态属性,可取“使用情况”作为属性状态。则,“汽车”对象的有 限个不同状态:“开动”、“停车”、“维修”、“闲置”、“报废”等。
减少乘客/sum-1 减少乘客/sum-1
关闭
增加[人数+1 已满]/sum+1
打开
自动转移(Automatic-Transition):自动转移又称 完成转移(Completion-Transition)。每个状态都 可能有一个不由事件触发的转移,它是根据该状态内的动 作完成而自动触发的。见GUI状态图。
二、状态图(State Diagram)
状态图是系统分析的一种常见工具,用于描述系统的行为。 实体的生存期比较复杂时,需要状态图对其建模。
UML中的状态图主要用于建立对象类或对象的动态行为
模型,表现一个对象所经历的状态序列,引起状态或活动 转移的事件,以及因状态或活动的转移而伴随的动作。
4
火龙果 整理
终结状态:是模型元素的最后状态,代表一个状 态图的终止点,是一个伪状态。终结状态是转移 的最后目标,而不能是转移的初始源。牛眼表示。
13
火龙果 整理
3.3 转移(迁移)[1]
转移:用实箭线表示,箭尾连接出发状态,即源状态,箭头连接到 达状态,即目标状态。在箭线上可以标示与该转移有关的选项:事 件、保护(警戒)条件和动作。
11
火龙果 整理
3.2.2 状态行为[2]
退出操作(exit):系统离开该状态时要发生的动作,前面加上 exit和“ / ”。不可中断。
注:飞机着陆时退出飞行状态, 系统记录登陆时间。 飞行状态 exit / 记录登陆时间
发送事件:在活动、进入和退出操作的动作中可以是对象内部发生 的行为,也可能是向另外 一个对象发送消息。 状态名