第七讲 状态图复习课件ppt
合集下载
UML状态图课件
终止状态在一个状态图中可以有多个,它 用一个套有一个实心圆的空心圆表示。
5 判定
判定在状态图中的位置:工作流在此处按 监护条件的取值而发生分支。
判定用空心小菱形表示。
因为监护条件为布尔表达式,所以通常条 件下的判定只有一个入转换和两个出转换。
根据监护条件的真假可以触发不同的分支 转换。
然而处于不同状态下的对象会通过不同的 动作对同一事件做出不同的反应。
示意图:
状态图
1 状态
状态由一个带圆角的 矩形表示。
状态图标可以分为: ① 名称 ② 内部转换
名称
entry/ exit/
2 转换
转换用带箭头的直线表示,一端连接源状态即转 出的状态,箭头一端连接目标状态即转入的状态。
如图所示:
准备
常见的三个活动是:
entry/ 进入教室 do/ 打开投影 exit/ 宣布上课
1、入口动作(entry ) :进入某一状态时执行的动作。
2、动作(do):系统处于该状态时要发生的动作。
3、出口动作 (exit ):离开某一状态时执行的动作 。
子状态(substate)
某些状态存在于另一个状态之中,因此它们被称为 子状态。子状态以两种形式出现:顺序子状态和并 发子状态。
状态图
讲授内容
状态图基本表示 状态、事件、转移、活
动 状态图练习 状态图知识点小节
什么是状态图
按电灯的开关时,电灯改变了它的状态 按遥控器的调频按钮时,电视机的状态由显
示一个频道的节目变为显示另一个频道的节 目 经过一段时间,洗衣机由洗涤变为漂洗状态 夏天树叶绿了,秋天变黄了 如何表示这些变化呢?
作业
自学历史状态
5 判定
判定在状态图中的位置:工作流在此处按 监护条件的取值而发生分支。
判定用空心小菱形表示。
因为监护条件为布尔表达式,所以通常条 件下的判定只有一个入转换和两个出转换。
根据监护条件的真假可以触发不同的分支 转换。
然而处于不同状态下的对象会通过不同的 动作对同一事件做出不同的反应。
示意图:
状态图
1 状态
状态由一个带圆角的 矩形表示。
状态图标可以分为: ① 名称 ② 内部转换
名称
entry/ exit/
2 转换
转换用带箭头的直线表示,一端连接源状态即转 出的状态,箭头一端连接目标状态即转入的状态。
如图所示:
准备
常见的三个活动是:
entry/ 进入教室 do/ 打开投影 exit/ 宣布上课
1、入口动作(entry ) :进入某一状态时执行的动作。
2、动作(do):系统处于该状态时要发生的动作。
3、出口动作 (exit ):离开某一状态时执行的动作 。
子状态(substate)
某些状态存在于另一个状态之中,因此它们被称为 子状态。子状态以两种形式出现:顺序子状态和并 发子状态。
状态图
讲授内容
状态图基本表示 状态、事件、转移、活
动 状态图练习 状态图知识点小节
什么是状态图
按电灯的开关时,电灯改变了它的状态 按遥控器的调频按钮时,电视机的状态由显
示一个频道的节目变为显示另一个频道的节 目 经过一段时间,洗衣机由洗涤变为漂洗状态 夏天树叶绿了,秋天变黄了 如何表示这些变化呢?
作业
自学历史状态
状态机图(状态活动)汇总课件
do/启动发货 发货
已发货
收到货物[缺部分商品]
检查完[缺部分商品]
等待
收到货物[商品齐全]
取消
取消 取消
取消订单
状态图(订单处理3)
检查 do/检查商品
订单处理
收到货物[缺部分商品]
检查完[缺部分商品]
等待
检查完[商品齐全]
办理发货 do/启动发货
收到货物[商品齐全]
已发货
发货
取消 取消订单
状态图(航班预订1)
无预定
预定/已预订数+=预订数
部分预定
event 预 定 [ 预 订 数 < 空 位 数 ] event退 订 [ 退 定 数 < 已 预 订 数 ] /
取消航班
关闭
预定关闭
关闭 关闭
退订/已预订数-=退定数
预定完
预定[无空位]
状态图(航班预订3)
使用复合状态
预定中 退订[已预订人数==0]/已预订数=退定数
action)
Action 可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作 (entry action) 进入状态时执行的动作;Entry/ setMode(onTrack)
退出动作 (exit action)
退出状态时执行的动作;Exit /setMode(offTrack)
●例如:在烧水器的状态图中, turnOn 就是一种调用事 件,用来将开关置于“0n” 状态。
触发事件的四种类型
改变事件
● 某个指定属性值为真时,事件得到触发。 ●在对象生命周期内, 一直在计算改变事件中的属性值。
当属性值为真时,事件触发,计算停止 ●例如: when(temperature>100)/alerm()
已发货
收到货物[缺部分商品]
检查完[缺部分商品]
等待
收到货物[商品齐全]
取消
取消 取消
取消订单
状态图(订单处理3)
检查 do/检查商品
订单处理
收到货物[缺部分商品]
检查完[缺部分商品]
等待
检查完[商品齐全]
办理发货 do/启动发货
收到货物[商品齐全]
已发货
发货
取消 取消订单
状态图(航班预订1)
无预定
预定/已预订数+=预订数
部分预定
event 预 定 [ 预 订 数 < 空 位 数 ] event退 订 [ 退 定 数 < 已 预 订 数 ] /
取消航班
关闭
预定关闭
关闭 关闭
退订/已预订数-=退定数
预定完
预定[无空位]
状态图(航班预订3)
使用复合状态
预定中 退订[已预订人数==0]/已预订数=退定数
action)
Action 可执行的原子计算。 不可中断,其执行时间可忽略不计。
两种特殊动作:
进入动作 (entry action) 进入状态时执行的动作;Entry/ setMode(onTrack)
退出动作 (exit action)
退出状态时执行的动作;Exit /setMode(offTrack)
●例如:在烧水器的状态图中, turnOn 就是一种调用事 件,用来将开关置于“0n” 状态。
触发事件的四种类型
改变事件
● 某个指定属性值为真时,事件得到触发。 ●在对象生命周期内, 一直在计算改变事件中的属性值。
当属性值为真时,事件触发,计算停止 ●例如: when(temperature>100)/alerm()
状态转换图 ppt课件
Software Requirement Specification
通常用自然语言+模型,完整、准确、 具体地描述系统的数据要求、功能需求、 性能需求、可靠性和可用性要求、出错 处理需求、接口需求、约束、逆向需求 以及将来可能提出的要求。
软件需求规格说明书,是需求分析阶段 得出的最主要的文档。
软件需求说明书的编写提示 (GB856T—88)
• 需求分析的任务就是借助于当前系统的逻辑模 型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。
3.1 需求分析的具体任务
1 确定对系统的综合要求
---功能需求、性能需求、可靠性和可用性 需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。
2 分析系统的数据要求
3 导出系统的逻辑模型
• 为表示实体型之间的联系,又建立两个 关系:
选课 (学号,课程号,听课出勤率, 作业完成率,分数)
教课 (职工号,课程号,授课效果) • 这五个关系,组成了数据库的模型。 • 在每个关系中,属性名下加下划线)指
明关键字。并规定关键字能唯一地标识 一个元组。
• 通常用“范式(Normal Forms)”定义消除数据冗余的 程度。第一范式(1 NF)数据冗余程度最大,第五范 式(5 NF)数据冗余程度最小。但是:
性
状态转换图
规范化的目的是: • 消除数据冗余,即消除表格中数据的重复; • 消除多义性,使关系中的属性含义清楚、
单一;
• 使关系的“概念”单一化,让每个数据项 只是一个简单的数或字符串,而不是一个 组项或重复组;
• 方便操作。使数据的插入、删除与修改操 作可行并方便;
• 使关系模式更灵活,易于实现接近自然语 言的查询方式。
通常用自然语言+模型,完整、准确、 具体地描述系统的数据要求、功能需求、 性能需求、可靠性和可用性要求、出错 处理需求、接口需求、约束、逆向需求 以及将来可能提出的要求。
软件需求规格说明书,是需求分析阶段 得出的最主要的文档。
软件需求说明书的编写提示 (GB856T—88)
• 需求分析的任务就是借助于当前系统的逻辑模 型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。
3.1 需求分析的具体任务
1 确定对系统的综合要求
---功能需求、性能需求、可靠性和可用性 需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。
2 分析系统的数据要求
3 导出系统的逻辑模型
• 为表示实体型之间的联系,又建立两个 关系:
选课 (学号,课程号,听课出勤率, 作业完成率,分数)
教课 (职工号,课程号,授课效果) • 这五个关系,组成了数据库的模型。 • 在每个关系中,属性名下加下划线)指
明关键字。并规定关键字能唯一地标识 一个元组。
• 通常用“范式(Normal Forms)”定义消除数据冗余的 程度。第一范式(1 NF)数据冗余程度最大,第五范 式(5 NF)数据冗余程度最小。但是:
性
状态转换图
规范化的目的是: • 消除数据冗余,即消除表格中数据的重复; • 消除多义性,使关系中的属性含义清楚、
单一;
• 使关系的“概念”单一化,让每个数据项 只是一个简单的数或字符串,而不是一个 组项或重复组;
• 方便操作。使数据的插入、删除与修改操 作可行并方便;
• 使关系模式更灵活,易于实现接近自然语 言的查询方式。
07状态图例
停停售售
着着 已航记
4小航最飞飞小未航记
新新计计
批批新新计计
计计计计
entry/ 计计航航航航航航Internet do/ 检检检检系系检
未未批新计计
[ 检检系检当当航系检60天 ] / 乘客乘乘乘乘乘乘 售售[ 最最最最售 ] 客满 退售 [ 飞飞挂飞检10分分 ] [ 飞飞挂飞检10分分 ] 飞飞航记 飞飞
entry/ 记记挂飞航记 exit/ 记记航记航记
售售
do/ 售售 do/ 退售
计计航航
停停售售
挂飞
[ 飞飞未飞批航航记 ]
[ 乘客乘满50人 ] 计计航航
do/ 乘乘客为为为最计计
着着 已航记
4小航最飞飞小未航记
计计计计
售售[ 最最最最 ] 售售 退售
H
系系系系 挂挂 客满 完完系系系系
系系系系系系系
Account对象的状态图
新新计计
批批新新计计
计计计计
[ 检检系检当当航系检60天 ] / 乘客乘乘乘乘乘乘 未未批新计计 售售 售售[ 最最最最售 ] 客满
退售 [ 飞飞挂飞检10分分 ] [ 飞飞挂飞检10分分 ]
飞飞航记 计计航航
停停售售
挂飞
飞飞
[ 飞飞未飞批航航记 ]
[ 乘客乘满50人 ] 计计航航
教学课件PPT状态图和活动图
4
UML理论与实践
说明: 所有对象都具有状态,状态是对象执行了一系列活动的 结果。当某个事件发生后,对象的状态将发生变化。 状态图中定义的状态有:初态、终态、中间状态、组合 状态、历史状态等。
一个状态图只能有一个初态,而终态可以有多个,也可 以没有终态。
5
UML理论与实践
事件的语法如下:
event-nameopt (argument list ) opt
entry/type “login” do/get use_name do/get password help/display help exit/login(use_name,password)
login状态
7
UML理论与实践
画状态图的步骤
⑴列出对象具有的所有状态
状态分为起始状态、结束状态和中间状态。一张状态图可以有 一个起始状态和若干个(可以为0)结束状态。 ⑵标识导致状态转换的事件 当一个对象接收到某个事件时,会导致从一个状态转换到另一 个状态,称为状态迁移(transition)。 ⑶为状态和迁移定义状态变量和动作 在状态迁移和/或处于某个状态中时都可能需要执行一些相应的 动作,综合这些动作,使得对象完成相应的功能。
Moving down
arrived
go up(floor)
do/moving to floor
arrived
Idle timer=0 do/increase timer
go down (floor)
[timer=time-out]/go down (first floor)
电梯的状态图 14 UML理论与实践
[change = 0]
[change > 0]
状态图ppt课件
精选编辑ppt
15
➢例:
4、子状态
精选编辑ppt
16
5、历史状态
➢History state
一种伪状态。可以存储退出组合状态时所处的子状态, 则返回组合状态时可以直接回到相应的子状态。它用一 个包含字母“H”的小圆圈表示。
精选编辑ppt
17
5、历史状态
➢例
当从状态“结账”和“显示购物车”返回子状态“ 显示索引信息”时,将进入的是离开时的历史状态。 也就是说,转到购物或结账区之后,再回到“浏览目录” 的页面时,其中的内容是不变的,仍然保留原来的信 息。
用途
对对象生命周期建模:
主要描述对象能够响应的事件、对这些事件的影响以及过去对当 前行为的影响
对反应型对象建模:
这个对象可能处于的稳定状态、从一个状态到另一个状态之间 的转换所需的触发事件,以及每个状态改变时发生的动作
状态图既可以用来表示一个业务领域的知识,也可以 用来描述设计阶段对象的状态变迁
精选编辑ppt
延迟到下一状态中处理的事件。
lighting
entry/ turnO n d o / b l an k F i v e T i m e s e v e n t /po w e r o f f / p o w e r S u p p l y S el f e x i t / tu r n O f f
精选编辑ppt
精选编辑ppt
24
1、信号事件
精选编辑ppt
25
2、调用和变化事件
➢调用(call)事件
表示一个操作的调度。请求调用另一个对象的操作。 一般是同步调用。
➢变化(change)事件
用关键字When,后面跟布尔表达式。 When(temperature > 120) / alerm()
第07章状态图
7.1.4 增加转移的细节:监视条件 增加转移的细节: 上面对GUI的状态变迁还有考虑不全之处。首先, 的状态变迁还有考虑不全之处。首先, 上面对 的状态变迁还有考虑不全之处 如果你离开, 如果你离开,你的计算机将无人照管或者你漫无目的坐 在一旁,不打字或不碰鼠标, 在一旁,不打字或不碰鼠标,那么过一段时间屏幕保护 程序就会运行。用状态转移的术语来说,就是如果 程序就会运行。用状态转移的术语来说,就是如果GUI 在足够的时间内没有接收到用户的输入,那么它将从 在足够的时间内没有接收到用户的输入, Working状态转移到另一种状态 状态转移到另一种状态——Screensaving(屏幕 状态转移到另一种状态 屏幕 保护)状态。 保护 状态。 状态 进入屏幕保护状态取决于指定的时间间隔。 进入屏幕保护状态取决于指定的时间间隔。比如是 15分钟。15分钟的时间间隔是一个保护条件 分钟。 分钟的时间间隔是一个保护条件 分钟的时间间隔是一个保护条件——当满足 分钟 当满足 这个条件时,转移才能发生。下图是 这个条件时,转移才能发生。下图是GUI加入 加入
Visualizing User Input。 。 用户输入触发了从Awaiting状态到 状态到Registering状 用户输入触发了从 状态到 状 态的转移。 状态内的活动引起了GUI到 态的转移。Registering状态内的活动引起了 状态内的活动引后,GUI 状态的转移。在第 个子状态之后 个子状态之后, 状态的转移 重新回到Awaiting状态。下图说明了在Working状态 状态。下图说明了在 重新回到 状态 状态 中的顺序子状态。 中的顺序子状态。
7.1.2 在状态图标中增加细节 UML提供了在状态图标中增加细节的选项。类似于类 提供了在状态图标中增加细节的选项。 提供了在状态图标中增加细节的选项 的图标可以被分成3个区域 名字 属性和操作区域), 的图标可以被分成 个区域(名字,属性和操作区域 ,你可 个区域 名字, 以把状态图标也分成3个区域。 以把状态图标也分成 个区域。最上面的区域保存状态名 个区域
第七章 状态图和活动图
II.3 小 结
活动图的优点和缺点; 何时可使用活动图; 何时不应使用活动图;
UML活动图元语小结。
活动图的优点和缺点
优点:最适合支持并行行为,而且也是支持
多线程编程的有力工具。
缺点:很难清楚地描述动作与对象之间的关
系。虽然在活动旁标出对象名或者采用泳道 技术可以定义这种关系,但仍然没有交互图 简单直接。
转移
注释体 注释连接
II 活动图的基本要素
引
言;
活动图的基本要素;
小结。
II.1 引 言
基本概念;
活动图示例;
活动图的元模型。
基本概念
来源:
活动图主要来源于 Jim Odell 的事件图、 SDL状态建模技术和 Petri 网技术。 成活动图。
从概念层看,活动表示需要由人或计算机来
活动图的核心符号是活动,通过连接将活动组
完成的任务。图中描述了“人找饮料喝”这 一过程。
从说明层或实现层看,活动表示类中的方
法。图中描述了名字为“人”的对象类中一 个关于“找饮料喝”的方法。
活动图示例
人 找饮料
判断条件
[没有咖啡] [找到咖啡]
判定活动
[没有可口可乐] [找到可 口可乐]
相连,说明该注释体是针对该实体所进行 的描述。
活动图例子
活动图例子
课堂作业
某公司的设备采购流程设置为: A、由业务部门提出需求设备清单; B、将需求设备清单交采购部门建立采购采买单据; C、采购部门建立采购单据后,交财务部门,向财务部门 申请款项,预支零用金; D、财务部门建立应付帐款单据后:核支款项; E、采购部门在收到款项后,进行采买; F、采买完成后,执行: (1)发票和剩余款项交财务部: (2)设备交业务部门; G、(a)采购部门:采购单据结案; (b)财务部门:帐款冲销结案;
UML学习复习—状态图
转换可以标注与此转换相关的选项如事件、动 作和监护条件。
• Transition图例
说明: 状态的之间的转移通常是由事件触发的,此时应在转
Signal event的语法格式和Call event一样。 信号事件是一个异步事件,调用事件一般是一
个同步事件。
•
Signal(信号)
一个信号表示由一个对象异步地发送、并 由另一对象接收的一个已命名的对象。
说明:
信号用版型为<<signal>>的类图标表示。 信号之间可以具有泛化关系,形成层次结构。 在UML中,例外(exception)是信号的一种。
•
4.1 入口事件
入口事件表示一个入口的动作序列,它 在进入状态时执行。
入口事件的动作是原子的,并且先于内 部活动或转换。
•
4.2 出口事件
出口事件表示一个出口的动作序列,它 在退出状态时执行。
出口事件也是原子的,它跟在所有的内 部活动之后,但是先于所有的出口转换 。
•
4.3 动作事件
3.5 简单状态
简单状态是指不包含其他状态的状态。 简单状态没有子结构,但它可以具有内
部转换、入口动作和出口动作等。
•
3.6 组成状态
组成状态是可以包含一些嵌套的子状态 的状态。
组成状态可以使用“与”关系分解为并发子 状态,或者通过“或”关系分解为互相排斥 的顺序子状态。
•
3.6 组成状态
UML学习复习—状态图
•
状态图
1 状态机 2 状态图 3 状态 4 事件 5 转换 6 状态图建模技术 7 实例——图书馆管理系统的状态图
•
1 状态机
状态机是展示状态与状态转换的图,包含了一 个类的对象在其生命期间所有状态的序列以及 对象对接受到的事件所产生的反应。
• Transition图例
说明: 状态的之间的转移通常是由事件触发的,此时应在转
Signal event的语法格式和Call event一样。 信号事件是一个异步事件,调用事件一般是一
个同步事件。
•
Signal(信号)
一个信号表示由一个对象异步地发送、并 由另一对象接收的一个已命名的对象。
说明:
信号用版型为<<signal>>的类图标表示。 信号之间可以具有泛化关系,形成层次结构。 在UML中,例外(exception)是信号的一种。
•
4.1 入口事件
入口事件表示一个入口的动作序列,它 在进入状态时执行。
入口事件的动作是原子的,并且先于内 部活动或转换。
•
4.2 出口事件
出口事件表示一个出口的动作序列,它 在退出状态时执行。
出口事件也是原子的,它跟在所有的内 部活动之后,但是先于所有的出口转换 。
•
4.3 动作事件
3.5 简单状态
简单状态是指不包含其他状态的状态。 简单状态没有子结构,但它可以具有内
部转换、入口动作和出口动作等。
•
3.6 组成状态
组成状态是可以包含一些嵌套的子状态 的状态。
组成状态可以使用“与”关系分解为并发子 状态,或者通过“或”关系分解为互相排斥 的顺序子状态。
•
3.6 组成状态
UML学习复习—状态图
•
状态图
1 状态机 2 状态图 3 状态 4 事件 5 转换 6 状态图建模技术 7 实例——图书馆管理系统的状态图
•
1 状态机
状态机是展示状态与状态转换的图,包含了一 个类的对象在其生命期间所有状态的序列以及 对象对接受到的事件所产生的反应。
7状态图
事件:它表示对一个在时间和空间上占据一 事件 定位置的有意义的事情的规格说明 。 事件:也就是指发生的且引起某些动作执行 事件 的事情。
例如,当你按下电视机上的Power按钮时,电视开 始播放。其中“按下Power按钮”就是事件, 而事件引起的动作就是“开始播放”。
8.1.1 事件 (Event)
状态的组成部分
1.名称 名称(name) 名称
是可以把该状态和其他状态区分开的字符串;状态也可能是 匿名的,即没有名称。
2.进入 退出动作 进入/退出动作 进入 退出动作(entry/exit action)
分别指进入和退出这个状态时所执行的动作。
3.内部转换 内部转换(internal transition) 内部转换
状态图的建模技术的策略 2-2
(5) 决定可能触发从状态到状态的转换的事件。将这些事 件建模为触发者,它触发从一个合法状态序列到另一 个合法状态序列的转换; (6) 把动作附加到这些转换上,并且附加到这些状态上; (7) 考虑通过使用子状态、分支、汇合和历史状态,来简 化状态图; (8) 核实所有的状态都是在事件的某种组合下可达的; (9) 核实不存在死角状态,即不存在那种不能转换出来的 状态; (10) 通过手工或通过使用工具跟踪状态机,核对所期望的 事件序列以及它们的响应。
状态图示例
示例7.1.6对电话工作的行为建模。 示例
拨输 idle 拨输查查 拒电拒电 暂暂预电暂暂暂暂暂 ringing 拒电 完预电电完完 摘完 talking 电电电电 dialing
任务解决-分析
借书业务在系统的业务建模中是一个用例,而这种用 例是一个应对型对象。为便于理解该业务的控制流程 和确保业务处理的正确性。从前面章节对该业务描述 可知,借书业务是由 借书空闲(idle) 书目查询(finding) 借书(Lending) 预约(reservation) 取消预约(remove reservation) 借书成功(Success) 失败(Failure)7种状态组成。
建立动态模型-状态图ppt课件
状态图
使用状态图进行建模的目标是描述跨越多个用例的 对象在其生命周期中的各种状态及其状态之间的转 换。
一个完整的系统往往包含很多的类和对象,这就需 要创建几个状态图进行描述。
创建状态图的步骤:
识别出建模实体
不需要给所有的类都创建状态图,只有具有重要动态 行为的类才需要。
识别出实体的各种状态
最新版整理ppt
15
状态图
练习3:当有新同学入学时,将会给新同学创建一 个新的账号,新同学可以用这个账号去选课。一 般来说,每个人的选课数目是有限的,如选择6门 课程后将不能再选课。如果已经选了6门课程还要 再选课,就必须删除已选的课程。直到这位同学 毕业,将其账号删除。请创建学生账号类的状态 图。
最新版整理ppt
3
最新版整理ppt
4
本节课内容
第九章 面向对象方法学引论 9.5、动态模型
第十章 面向对象分析 10.1、面向对象分析的基本过程 10.2、需求陈述 10.3、建立对象模型 10.4、建立动态模型 10.5、建立功能模型 10.6、定义服务
最新版整理ppt
5
动态模型
创建相关事件并创建状态图
最新版整理ppt
13
状态图
练习1:图书馆中图书的状态描述如下:当图书被 购置进来后,就放在图书馆中;如果读者将图书 借走时,处于已借出状态;如果图书被归还,图 书对象又变为在图书馆状态。图书馆如果将图书 废弃,则图书对象就不再存在。试画出图书对象 的状态图。
最新版整理ppt
最新版整理ppt
16
状态图
练习4:请创建一个状态图来描述航班如何从提出 申请、指定航班计划、售票、起飞、飞行到着陆 的状态过程。
最新版整理ppt
状态图课件
延迟事件:该事件不会触发状态的转换,当对
象处于该状态时事件不会丢失,但会被延 迟执行。例如,当E-mail程序中正在发送 第一封邮件时,用户下达发送第二封邮件 执令就会被延迟,但第一封邮件发送完成 后,这封邮件就会被发送。这种事件就属 于延迟事件。
四、变迁 变迁被定义为软件对象的两个状态之间的关 系,表明在指定的事件发生后,在特定的条件下 ,对象执行指定的动作,并进入另一个状态。
内部转换和自转换(完成转换)不同:
自转换: 源状态和目标状态为同一状态的转移。
五、状态图建模技术
建模步骤: 1. 找出适合用模型描述其行为的类。 2. 确定对象可能存在的状态。 3. 确定引起状态转换的事件。 4. 确定转换进行时对象执行的相应动作。
例 书的状态图
状态图的Rose建模
一、新建状态机图
状态变量 活动
在一个状态中允许有多个动作。
1. 2. 3. 4. entry:入口动作,进入状态时发生的动作 exit:出口动作,发生状态改变时执行的动作 do:标记内部活动,处于某种状态时发生的动作 event:当特定事件触发时指定相应动作的发生。
Idle entry/LockScreen() exit/closeScreenSaving() do/showScreenSaving()
状态机图
对事物所处的状态及其变迁的考虑: 大多数事物在其生命周期中经历了不同的状态; 在特定的时间,一个事物位于一个状态; 在现实世界存在着引起事物的状态发生变化的事件; 事物在其状态间按次序转化 当事件发生时,事物可能需要采取一些动作。
状态机图
状态机图(State Machine Diagrams)给出了一个状态机,强调了从状态到状态 的控制流。 状态机(State Machine)定义了对象在生命周期中响应事件所经历的状态的序列 以及对象对这些事件的响应。状态机由状态、跃迁、事件、活动、动作等组成。 状态(State)代表对象在生命周期中的一种条件或状况,在这种状况下,对象满 足某个条件,或执行某个动作、或等待某个事件。一个状态在一个有限的时间段内 存在。 事件(Event)是一个重要事件的规范,该事件在时间和空间域中有一个位置。 跃迁(Transition)是两个状态之间的关系,它表示第一个状态的对象将执行某个 动作,如果规定的事件发生或规定的条件被满足,则对象进入第二个状态。 活动(Activity)是在状态机中进行的一个非原子的执行,它由一系列的动作组成 。 动作(Action)是一个可执行的原子计算,它导致状态的变更或返回一个值。 通常一个状态机依附于一个类,并且描述一个类的实例。状态机包含了一个对 象在其生命周期所有状态的序列以及对象对接收到的事件所产生的反应。
状态图和活动图ppt课件
第7章 状态图和活动图
7.1 概述
• 状态机Statechart • 用于描述一个对象在其生存期间的动态行为,表现对象响应事件所经历的状态序 列以及伴随的动作。 • 状态机是用于描述状态与状态转换的。
状态图(Statechart Diagram)
• 状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的 状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。
7.1.1 状态图的组成
(1) 状态图中的事物
• 状态 state • 转换/迁移 transition
接到订 单
记账
7.1.2 状态(state)
• 什么是状态? • 状态是指在对象的生命期中满足某些条件、执行某些活动或
等待某些事件时的一个条件或状况。
• 下面一些例子形象地说明了对象和状态。
1.入口动作 (entry action),用来指定进入状态时发 生的动作。
语法形式: entry/动作名 2.出口动作(exit action),用来指定离开该状态时发
生的动作。 语法形式: exit/动作名
注意:由于入口动作和出口动作是隐式 地激活,因此它们既没有参数也没有守 卫条件。
3.内部转移(internal transition) ---用于标记内部活动,用来指定处于该状态时执行的动作。不导致状态改变的转换,不会
顺序子状态图----IC卡电话的使用
• 顺序子状态与并发子状态的区别在于后者在同一 层次给出两个或多个顺序子状态,对象处于同一 层次中来自每个并发子状态的一个时序状态中。
4. 历史状态(History state)
• 当离开一个组合状态重新进入此状态时,不希望从 它的初始状态开始执行,而是希望直接进入上次离 开组合状态时的最后一个子状态,这种情况下就要 用到历史状态。
7.1 概述
• 状态机Statechart • 用于描述一个对象在其生存期间的动态行为,表现对象响应事件所经历的状态序 列以及伴随的动作。 • 状态机是用于描述状态与状态转换的。
状态图(Statechart Diagram)
• 状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的 状态序列,引起状态转移的事件(event),以及因状态转移而伴随的动作(action)。
7.1.1 状态图的组成
(1) 状态图中的事物
• 状态 state • 转换/迁移 transition
接到订 单
记账
7.1.2 状态(state)
• 什么是状态? • 状态是指在对象的生命期中满足某些条件、执行某些活动或
等待某些事件时的一个条件或状况。
• 下面一些例子形象地说明了对象和状态。
1.入口动作 (entry action),用来指定进入状态时发 生的动作。
语法形式: entry/动作名 2.出口动作(exit action),用来指定离开该状态时发
生的动作。 语法形式: exit/动作名
注意:由于入口动作和出口动作是隐式 地激活,因此它们既没有参数也没有守 卫条件。
3.内部转移(internal transition) ---用于标记内部活动,用来指定处于该状态时执行的动作。不导致状态改变的转换,不会
顺序子状态图----IC卡电话的使用
• 顺序子状态与并发子状态的区别在于后者在同一 层次给出两个或多个顺序子状态,对象处于同一 层次中来自每个并发子状态的一个时序状态中。
4. 历史状态(History state)
• 当离开一个组合状态重新进入此状态时,不希望从 它的初始状态开始执行,而是希望直接进入上次离 开组合状态时的最后一个子状态,这种情况下就要 用到历史状态。
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在状态中的活动完成时被赋值,而非活动完成后 被赋值
31
内部转换和自转换(完成转换)区别:
①自转换是离开本状态后重新进入该状态,它会激发
状态的入口动作和出口动作的执行
②内部转换自始至终都不离开本状态,所以没有出口
或入口事件,也就不执行入口和出口动作
32
复合转换
复合转换由简单转换组成,这些简单转换通过
初始状态在一个状态图中只允许有一个
终止状态是模型元素的最后状态,是一个状态图的
终止点
终止状态只能作为转换的目标,而不能作为转换的
源 终止状态在一个状态图中可以有多个
9
判定的表示
判定在状态图中处在这样一个位置:工作流在此处
按监护条件的取值而发生分支
判定用空心小菱形表示
因为监护条件为布尔表达式,所以通常条件下的判
一个简单的状态图
11
12
13
组成状态
除了包括简单状态以外,还有一种可以包含嵌
套子状态的状态,称为组成状态
通过“或”关系分解为顺序子状态
使用“与”关系分解为并发子状态
14
① 顺序子状态
IC Card Certification:
Used IC Card Certification Ring Exception Connecting Talking Nobody Response Hung Up
定只有一个入转换和两个出转换。根据监护条件的 真假可以触发不同的分支转换
状态1 [ 满足监护条件 ] 状态2
[ 不满足监护条件 ]
状态3
10
事件1
状态1 entry/ 动作1 事件3( 监护条件 ) ( 监护条件为真 ) ( 监护条件为假 )
事件2
状态2 exit/ 动作2
状态3 do/ 动作3
状态4 do/ 动作4
时间事件既可以被指定为绝对形式(天数),也
可以被指定为相对形式(从某一指定事件发生开 始所经历的时间)
26
延迟事件
延迟事件是在本状态不处理,要推迟到另外一
个状态才处理的事件
如果一个转换依赖一个存在于内部延迟事件队
列中的事件,则事件立即触发转换
如果存在多个转换,则内部延迟事件队列中的
在异步单路通信中,发送者是独立的
在双路通信模型中,至少在每个方向上都要有
一个信号,这就是所谓的多信号
对象
在信号事件中,发送者和接受者可以是同一个
23
调用事件
调用事件是一个对象对调用的接收 调用事件至少涉及两个以上的对象 调用事件既可以为同步调用,也可以为异步调
用
24
修改事件
40
图书馆管理系统的状态图
① ② ③ ④ ⑤
使用Rational Rose绘制状态图的步骤: 创建状态图 加入初始状态和终止状态 增加状态 增加转换 增加历史状态
41
书的状态图
New book Borrow Time out Available Reserve Cancel Delete Reserved Borrow Borrowed
护条件和动作的表达式的转换得到
37
监护条件
监护条件是触发转换必须满足的条件,它是一个布
尔表达式
监护条件只能在触发事件发生时被赋值一次,如果
在转换发生后监护条件才由假变为真,那么转换也 不会被触发
从一个状态引出的多个转换可以有同样的触发器事
件,但是每个转换必须具有不同的监护条件
38
动作
可以说明事件(如消息的接收、错误、条件变 更等)如何随着时间的推移来影响这些状态
组成UML的图形元素有:状态、转换、初始状
态、终结状态和判定等
4
状态(State) 表示一个模型在其生存期内的状况,如满足某些条件、执行 某些操作或等待某些事件。一个状态的生存期是有限的一个 时间段 转换(Transition) 表示两个不同状态之间的联系,事件可以触发状态之间的转 换 事件(Event) 是在某个时间产生的,可以触发状态转换,如信号、对象的 创建和销毁、超时和条件的改变等 活动(Activity) 是状态机中进行的一个非原子的执行,由一系列动作组成 动作( Action ) 是一个可执行的原子计算,它导致状态的变更或者返回一个 值
[ Condition2 ] / Action2
[ Condition5 ] / Action5
NewState4
非链式分支:
NewState
[ Condition6 ] / Action6
NewState5
Event1[ Condition1&Condition3 ] / Action1,Action3
及伴随的动作
在计算机科学中,状态机的使用非常普遍 在编译技术中通常用有限状态机描述词法分析过程
在操作系统的进程调度中,通常用状态机描述进程的
各个状态之间的转化关系 UML用状态机对软件系统的动态特征建模
3
状态图
一个状态图主要用于表现从一个状态到另一个
状态的控制流
状态图不仅可以展现一个对象拥有的状态,还
5
状态举例
对象:货物 状态:未付款 已付款 对象:小轿车 状态:静止不动 行驶 对象:机器的引擎 状态:高速运转 对象:Tom 状态:未婚 静止不动
已婚
6
状态的表示
状态由一个带圆角的矩形表示。状态图标可以
分为三部分:
① ② ③
名称 内部转换 嵌套状态
7
转换的表示
转换用带箭头的直线表示,一端连接源状态,即转
化
20
出口事件
出口事件表示一个出口的动作序列,它在退出
状态时执行
当出现代表错误情况的高层转换使嵌套状态异
常终止时,出口事件特别有用
21
动作事件
动作事件也称为“do事件”,它表示对一个嵌
套状态机的调用
与动作事件相关的活动必定引用嵌套状态机,
而非引用包含它的对象的操作
22
信号事件
信号的接收是信号接受对象的一个事件 信号分为异步单路通信和双路通信
43
完成电梯的状态图
On first floor arrived Moving to first floor Moving down arrived go down arrived go up go up Moving up
Idle
time-out
44
45
NewState5
34
源状态
在转换被激发之前,对象所处的状态就是转换的源
状态
源状态就是被转换影响的状态 一个转换可以有多个源状态,这表示状态机所在对
象中的多个控制流在转换发生时会合成一个控制流
在UML中,多源状态的转换通常使用活动图表示
35
目标状态
转换完成后,对象状态发生了变化,这时对象所
第七讲 状态图
唐姗 计算机与信息学院
状态图(Statechart Diagram)
状态图是UML中对系统的动态行为进行建模的
图形之一
状态图是系统分析的一种常用工具,它通过建
立对象的生存周期模型来描述对象随时间变化 的动态行为
2
状态机
一个状态图本质上就是一个状态机 状态机可表现对象响应事件所经历的状态序列以
NewState2
Event1[ Condition1&Condition4 ] / Action1,Action4
NewState3
Event1[ Condition2&Condition5 ] / Action2,Action5
NewState4
Event1[ Condition2&Condition6 ] / Action2,Action6
出的状态,箭头一端连接目标状态,即转入的状态
源状态 事件[ 监护条件 ] / 动作 目标状态
转换可以标注与此转换相关的选项,如事件、动作
和监护条件
如果转换上没有标注触发转换的事件,则表示此转
换为自动进行
8
初始状态、终止状态
初始状态代表状态图的起始位置,只能作为转换的
源,而不能作为转换的目标
IC卡验证状态
Ring:拨号状态
Connecting:连接状态
Talking:通话状态
Insert Card Unused
Cancle
Hung Up:挂断状态
Repair Maintaining Repair Completed
15
② 并发子状态
Running:运行状态 Forward:前进状态
复到上次离开该组成状态时的最后一个活动子 状态,并执行入口动作
17
18
事件
事件可以是:
对象之间发送的信号 某些值的改变 一个时间段的终结
任何影响对象的事物都可以是事件
19
入口事件
入口事件表示一个入口的动作序列,它在进入
状态时执行
入口事件通常用来进行状态所需要的内部初始
状态仍旧是它本身
内部转换的激发规则和改变状态的外部转换的激发规则
相同
内部转换用于对不改变状态的插入动作建立模型,如建
立帮助信息
30
完成转换
完成转换又称为自转换 完成转换是因为没有标明触发器事件的转换是由
状态中的活动的完成引起的,是自然而然地完成 的转换
完成转换也可以带一个监护条件,这个监护条件
第一个事件将有优先触发相应转换的权利
27
转换
转换表示当一个特定事件发生或者某些条件得到