状态图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢理解
对象在任何时候都会处于某种状态中,所有对象都有状 态。 对象所处的状态决定了它如何响应所检测到的事件或所 接收的消息。 通常,事件使对象从一个状态转向另一个状态(即状态 的转移)
➢几种类型:
初态 终态 中间状态 组合状态 历史状态
状态
1、初态和终态
➢初态(start state)
显示状态图中状态的执行(execution)的开始。 一个状态只能有一个初态,因为每一个执行都是从相 同的地方开始的。如果一个状态用多张图描述,则多 张图用同一个初态; 嵌套状态中可以使用新的初态;
4、子状态
5、历史状态
➢History state
一种伪状态。可以存储退出组合状态时所处的子状态, 则返回组合状态时可以直接回到相应的子状态。它用一 个包含字母“H”的小圆圈表示。
5、历史状态
➢例
当从状态“结账”和“显示购物车”返回子状态“ 显示索引信息”时,将进入的是离开时的历史状态。
也就是说,转到购物或结账区之后,再回Fra Baidu bibliotek“浏览目录” 的页面时,其中的内容是不变的,仍然保留原来的信 息。
➢四类主要事件
信号事件 调用事件 变化事件 时间事件
1、信号事件
➢信号(signer)事件
所谓信号,是指由一个对象异步地发送、并由另外一个 对象接收的一个已命名的对象。 信号事件表示对象接收到某个信号。 信号可以作为状态中一个状态转换的动作而被发送, 也可作为交互中一个的消息发送。
1、信号事件
2、调用和变化事件
子状态(substate)
嵌套在另外一个状态中的状态。
延迟事件(deferred event)
延迟到下一状态中处理的事件。
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
➢含有子状态的状态被称为复合状态。 ➢包括顺序和并发的复合状态
➢两种表示方法:
3、复合状态
➢顺序复合状态图(表示方法1)
3、复合状态
➢顺序复合状态图(表示方法2)
➢并发复合状态图
3、复合状态
4、子状态
➢将子状态单独定义,并对其进行命名(通常以大 写字母开头),然后在需要使用的地方来引用它
➢例:
4.2.2 状态图
概述
➢状态
用于描述一个对象在其生存期间的动态行为,表现对象 响应事件所经历的状态序列以及伴随的动作。
➢状态图(State Machine Diagram)
用来显示状态,一个状态可用多张状态图描述。
概述
➢状态图与交互图的区别:
交互图不显示对象所有可能的动态行为,只显示特定交 互(一个具体的用例)中对象的行为。 状态图可以显示对象所有的动态行为。
6、入口点和出口点
➢入口点
状态内的一个外部可见的伪状态,外部转换可以将它作 为目标,从而被有效连接到指定状态上。
➢出口点
状态内的一个外部可见的伪状态,外部转换可以将它作 为源,代表状态内的一个终点。
转换
➢Transition
两个状态之间的一种关系,表示对象在第一个状态中执 行一定的动作,并在某个特定事件发生而且满足某个条 件时进入第二个状态。每个转换只允许一个事件,一个 事件只允许一个动作
➢调用(call)事件
表示一个操作的调度。请求调用另一个对象的操作。 一般是同步调用。
➢变化(change)事件
用关键字When,后面跟布尔表达式。 When(temperature > 120) / alerm()
3、时间事件 ➢ 时间(time)事件
满足某一时间表达式的情况的出现,例如到达某一时间 或经过了某一时间段。用关键字After或When表示。
用来处理一些不离开该状态的事件,内部转换只有 一个源状态而没有目标状态,因此转换激发的结果并不 改变状态本身。如果一个内部转换带有动作,动作也要 被执行,但是由于没有状态改变发生,因此不需要执行 入口和出口动作。
SUCCESS
THANK YOU
2019/12/30
事件
➢Event
是对一个时间和空间上占有一定位置的有意义的事情的 规格说明。 事件触发状态的转移
➢转换的五要素
源状态 目标状态 触发事件 监护条件 动作
1、复杂转换
转换类型 描述
语法
外部转换
对事件做出响应,引起状态变化或自 身转换,同时引发一个特定动作,如 果离开或进入状态将引发进入转换、
事件(参数)[监护条 件]/活动
离开转换
内部转换
对事件做出响应,并执行一个特定的 活动,但并不引起状态变化或进入转 换、离开转换
事件(参数)[监护条 件]/活动
进入转换 当进入某一状态时,执行相应活动 退出转换 当离开某一状态时,执行相应活动
entry/活动 exit/活动
2、各种转换的区别
➢进入和退出转换:
当进入一个状态时,执行某个动作;或当退出某个状态 时,执行什么动作。这时就可以使用进入和退出转换来 表示
➢内部转换:
➢状态图与活动图的区别:
状态图只建模一个对象的行为,活动图可以建模多个 对象的活动 活动图中也允许建模特定活动中对象的某个状态
➢状态 ➢转换 ➢事件、动作
基本组成
基本组成(例如刷pos机)
状态
➢什么是状态(state)
对象生命期中的某个条件或状况,在此期间对象将满足 某些条件、执行某些活动或等待某些事件。
2、一般状态
➢延迟事件
是一种特殊的事件,它是指该事件不会触发状态的转 换,当对象处于该状态时事件不会丢失,但会被延迟执 行。 例如,当E-mail程序中正在发送第一封邮件时,用户下 达发送第二封邮件执令就会被延迟,但第一封邮件发送 完成后,这封邮件就会被发送。这种事件就属于延迟事 件
3、复合状态
➢终态(End State)
表示一个最后的或者终端状态; 终态的数目可以不确定。
2、一般状态
➢中间状态的组成:
状态名(name) 进入/退出动作(entry/exit action) 内部转换(internal transition)
不导致状态改变的转换,不会执行 entry 和 exit 动作。
▪ 总结:借书例子所展示的关 键元素:初始状态、最终状 态、转移、事件、条件。
▪ UML中状态被赋予4个特定 事件
相关文档
最新文档