- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章状态图和活动图-状态图
5.1.1 什么是状态图 1. 状态图的概念 状态图(statechart diagram): 用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。 状态图的例子: 5.1.2 状态图的要素 1 状态 1. 状态的概念 状态(state): 是指对象在其生命周期中,满足某些条件、执行某些活动、或等待某些事件时的一个状况。 状态指的是对象的状态。例如: ● 发票(对象)被支付(状态) ● 小车(对象)正在停着(状态) ● 发动机(对象)正在工作(状态) ● 电灯(对象)开着(状态) 1 状态 对状态的理解 ● 对象在任何时候都会处于某种状态中,所有对象都有状态。 ● 对象所处的状态决定了它如何响应所检测到的事件或所接收到的消息。 ● 通常,事件使对象从一个状态转向另一个状态(即状态的转移)。 1 状态 1 状态 2.状态的表示和要素 ● 状态的表示:用圆角的矩形框表示状态。 ● 状态的要素:包括状态名,进入、退出、内部转移的动作,子状态等。 1 状态 动作 可执行的原子计算。 不可中断,其执行时间可忽略不计。 两种特殊动作(只要进入或离开该状态都会执行该动作) 进入动作(entry action) 进入状态时执行的动作: Entry/setMode(onTrack) 退出动作(exit action) 退出状态时执行的动作; Exit/setMode(offTrack) 1 状态 3. 状态的类型 ① 初始状态 ② 原子状态 ③ 结束状态 状态的类型 ①初始状态 显示状态图中状态机中的执行的开始。 一个状态机只能有一个初态,因为每一个执行都是从相同的地方开始的。如果一个状态机用多张图描述,则多张图用一个初态; ② 结束状态 表示一个最后的或者终端状态; 终态的数目可以不确定。 状态的类型 ③一般状态 状态名(name) 进入/退出动作(entry/exit action) 内部转移(internal transition) 不导致状态改变的转换,不会执行entry和exit动作。 子状态(substate) 嵌套在另外一个状态中的状态。 延迟事件(deferred event) 延迟到下一状态中处理的事件。 ④ 组合状态 子状态:被嵌套在另外一个状态中的状态。 组合状态:含有子状态的状态。组合状态也可以有初态和终态。 ④ 组合状态 ④ 组合状态两种类型 与子状态 或子状态 ⑤ 并发状态 并发状态:指一个对象在同一时刻可以处在多种状态。 并发中的同步:并发状态之间需要通信,或具有确定的时序关系。 ⑥ 历史状态 记录组合状态退出时所处的子状态,以便再次进入从这个状态开始工作。 ⑥ 历史状态 例:当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。也就是说,转到购物或结账区后,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息。 2 转移 1. 转移的概念 转移(transition): 是一个状态向另外一个状态的转换。对象处在源状态时,发生一个事件,如果条件满足,则执行相应的动作,对象由源状态转移到目标状态。 转移用箭头表示,如果没有标注事件,则本转移为自动转移。 2 转移 2. 转移的类型 ① 自转移: 源状态和目标状态为同一状态的转移。 ② 自动转移: 一个状态根据本状态的有关情况,自动触发进入目标状态,在转移上没有事件。 2 转移 转移的格式 触发事件(参数)[监护条件]/动作 Help[len(PSW)6]/verifyPSW.help() 每个转移只允许一个事件,一个事件只允许一个动作 3 事件 1. 事件的概念 事件(event): 是指在确定的时间和位置所发生的对对象起作用的事情。事件的发生将引起一些动作,使对象发生状态的转移。 事件触发状态的转移。 四类主
文档评论(0)