好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

状态机图.pdf

10页
  • 卖家[上传人]:小**
  • 文档编号:74886273
  • 上传时间:2019-01-29
  • 文档格式:PDF
  • 文档大小:608.90KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 状态机图 1. 概述概述 状态机图(State Machine Diagram)是用来显示状态机的图,包括简单状态、转换和嵌 套的复合状态等,一个典型的状态机图如图 1 所示: 图图 1. 状态机状态机图图 2. 基本表示符号基本表示符号 状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态 2.1状态状态((State)) 状态是对象生命周期中的一个条件或形态 状态由对象的属性值、 与其他对象的关系以 及正在执行的活动来确定在 UML 中,状态用圆角矩形和状态名表示,初始状态用实心圆 表示,终止状态用牛眼表示,如图 2 所示: 图图 2. 状态状态 状态可以有一个或多个分栏,这些分栏是可选的,包括名称分栏、嵌套区域、内部转换 分栏等,如图 3 所示: 图图 3. 带分栏的状态带分栏的状态 状态也可用圆角矩形上带有状态名称标签的方框表示,如图 4 所示: Enter Password + entry / reset + exit / test + digit / handleCharacter + clear / reset + help / displayHelp + print / defer + do / suppress echo 图图 4. 带有名称标签符号的状态带有名称标签符号的状态 2.2 转转移移((Transaction)) 转移表示状态之间可能的路径,可以表示外部转换(用箭头表示) ,也可以表示内部转 换(嵌套在状态内部) 。

      如图 5 所示: 图图 5. 转移转移 2.3 事件事件((Event)) 事件是对, 在特定时间和空间上, 所发生的有意义的事情 在状态机中, 事件触发转移, 事件或者显示在转换之上, 或显示在状态以内 共有四种类型的事件: 信号事件、 调用事件、 时间事件、改变事件 信号用于对象间异步传递的信息包,它没有任何操作,只有自身携带的信息信号事件 是通过信号来触发的事件,在 UML 中,信号如图 6 所示: 图图 6. 信号信号 调用事件是请求在类语境的实例上调用特定的操作, 在 UML 中, 调用事件如图 7 所示: 图图 7. 调用事件调用事件 时间事件用关键字 after 表示,说明事件被触发的临界时间改变事件用关键字 when 表示,说明将事件改变所满足的条件如图 8 所示: 图图 8. 时间事件和改变时间事件和改变事件事件 2.4 伪状态伪状态((Pseudo State)) 伪状态指在一个状态机中具有状态的形式, 同时具有特殊行为的顶点 它是一个瞬时状 态,用于构造转换的细节当伪状态处于活动时,状态机还没有完成从运行到完成的步骤, 也不会处理事件 伪状态用来连接转换段, 到一个伪状态的转换意味着会自动转换到另一个 状态而不需要事件来触发。

      伪状态包括:初始状态、入口点、出口点、选择和合并、结合和分叉、连接、终止和历 史状态 入口点是状态内的一个外部可见的伪状态, 外部转换可以将它作为目标 包含入口点的 状态将成为转换的有效目标状态,在 UML 中,用状态符号边框的空心圆表示出口点也是 状态内的一个外部可见的伪状态,外部转换可以将它作为源,它代表状态内的一个终态,在 UML 中,用状态符号边框的十字交叉圆表示入口点和出口点如图 9 所示: 图图 9. 入口点和出口点入口点和出口点 选择是状态机中的一个节点,根据节点后的警戒条件动态计算选择转换路径,在 UML 中,用菱形表示,其输出必须包含警戒条件且不能有触发器合并表示两个或者多个可选的 控制路径汇合在一起,在 UML 中用菱形表示选择和合并如图 10 所示: 图图 10. 选择伪状态和合并伪状态选择伪状态和合并伪状态 结合表示两个或更多的并发线程或状态合并为一个线程或状态, 有两个或多个源状态和 一个目标状态在 UML 中,结合用一段粗线表示分叉表示一个线程或状态分叉为两个或 更多的并发线程或状态, 有一个源状态和多个目标状态 在 UML 中, 分叉用一段粗线表示 结合和分叉如图 11 所示: 图图 11. 分叉伪状态和结合伪状态分叉伪状态和结合伪状态 连接是状态机中表示整体转换为部分的一种伪状态。

      在 UML 中,连接用小的实心圆表 示,如图 12 所示: 图图 12. 连接连接状态状态 历史伪状态, 用于表示退出所属的复合状态后, 它会记录复合状态之前处于活动的子状 态历史伪状态包括浅度历史伪状态和深度历史伪状态浅度历史伪状态用带字母 H 的圆 表示,如图 13 所示: 图图 13. 浅度历史伪状态浅度历史伪状态 深度历史伪状态用带字母 H 和*的圆表示,如图 14 所示: 图图 14. 深度历史伪状态深度历史伪状态 2.5 复合状态复合状态((Composite State)) 复合状态是指包含嵌套状态机的状态 这些嵌套状态被组织成一个或多个状态机, 称为 子状态机 每个子状态机存在于复合状态图的自身区域内, 区域是由虚线隔开的状态图中的 一块地方子状态机的结束伪状态仅作用于上述区域,如果希望终止整个复合状态执行,使 用终止伪状态,如图 15 所示: 图图 15. 嵌套嵌套子状态以及终止伪状态子状态以及终止伪状态 如果子状态机在区域 2 中首先抵达结束状态,该区域结束,但区域 1 继续进行如果子 状态机在区域 1 首先抵达终止伪状态,整个复合状态终止 为了保持状态机图的清晰性和简单性, 可以使用复合图标来隐藏复合图标, 不用显示的 展示其内部分解,在 UML 中,复合图标如图 16 所示: State2 图图 16. 复合图标复合图标 根据区域的多少,存在两种复合状态:1)简单复合状态,仅有一个区域;2)正交复合 状态,有两个或者多个区域。

      简单复合状态是包含单一区域的复合状态, 状态 DialingISP 是一个简单的复合状态,如 图 17 所示: 图图 17. 简单复合状态示例简单复合状态示例 正交复合状态包含两个或多个并发执行的子状态机 当进入超状态时, 所有子状态开始 并发执行离开超状态有两种方法:1)子状态机同时完成—隐式会聚;2)其中一个子状态 机通过出口伪状态转换到超状态外面的状态—不会引起内聚 一个有控制盒、 安全传感器和火警传感器以及报警盒组成的防盗警报系统的状态机图如 图 18 所示该系统的两个基本特性如下:1)如果入侵传感器被触发,报警盒在系统复位前 发出报警持续 15 分钟,然后回到 Monitoring;2)在入侵报警期间,如果发生火警,立即从 状态 SoundingIntruderAlarm 转换到状态 SoundingFireAlarm Initial SystemInactive SystemActive SoundingIntruderAlarm SoundingFireAlarm Monitoring Initializing activate error Junction handingError Junction intruder fire Final after(15mins) fire off off 图图 18. 正交复合状态正交复合状态 3. 应用举例应用举例 图 19 描述了一个控制器的状态机。

      图图 19. 控制器状态机控制器状态机图图 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.