0%

状态图

摘要

  • UML状态图学习笔记

UML 状态图 基本要素

状态

  • 状态,是状态机的重要组成部分,描述了状态机所在对象动态行为的执行所产生的结果

  • 初始/最终/选择状态,这三个都是伪状态(Pseudostate)

    • 初始状态:用一个实心圆形表
    • 最终状态:用一个圆圈内嵌实心圆点表示
    • 选择状态:用一个菱形表示,条件分支上方括号内的文字表示监护条件(guard conditions)
      UML状态图基本组成元素
  • UML中使用一个圆角矩形表示一个一般状态
    一般状态

  • 状态的组成部分

    • 名称:由一个字符串组成,用以识别不同状态。可匿名,一般放置在状态图符顶部
    • 入口/出口动作:表示进入/退出这个状态所执行的动作,动作可以是原子动作,也可是动作序列
    • 内部转换:内部转换不会引起状态变化的转换,此转换的触发不会导致状态的入口/出口动作被执行。语法:事件/动作表达式

复合状态

  • 复合状态,或称组合状态,是指包含有子状态的状态

  • 如下图,复合状态2 即为复合状态,内部的状态2-1,状态2-2 为子状态
    复合状态-1

  • 也可用以下形式表示,将复合状态的内容单独画出
    复合状态-2

  • 注:

    • 图中的圆圈内一个H字母,表示历史状态,它也是一个伪状态,其目的是记住从组合状态中退出时所处的子状态,当挨次进入组合状态,可直接将进入这个子状态,而不是再次从组合状态的初态开始。

转换

  • 转换(Transition)是两个状态之间的关联。表示对象在第一个状态(Source State)中执行一定的动作,并在某个特定事情发生并且某个特定的条件满足时进入下一个状态(Target State)

一般转换

  • 一般情况下的状态转换是两个不同状态之间的转换,示意图如下
    一般转换

  • 转换的组成部分:

    • 源状态(Source State): 源状态就是被转换影响的状态。某对象处于源状态,当它接收到触发事件或满足监护条件,就会激活一个转换。
    • 目标状态(Target State): 转换完成后,对象状态发生变化,这时对象所处的状态就是转换的目标状态
    • 触发事件(Trigger): 引起转换的事件,这里所指的事件可以是信号,调用,时间段或状态的一个改变
    • 监护条件(Guard Condition): 是一个方括号括起来的布尔表达式,它被放在触发事件的后面。监护条件可以引用对象的属性值和触发事件的参数。
    • 结果(Effect): 对象状态转移后的结果。

自身转换

  • 自身转换(Self-Transitions),是指状态可以有返回自身状态的转换
    自身转换

本地转换与外部转换

  • 对于复合状态之间的转换,需要注意本地转换(Local transition)与外部转换(External transition)的不同
    本地转换和外部转换
  • 上面两个,源状态包含了目标状态,这种情况两种转换的区别在于:本地转换不会从源状态退出(不会执行退出动作),而外部转换会退出再重新进入源状态
  • 下面两个,目标状态包含了源状态,这种情况两种转换的区别在于:本地转换不会再次进入目标状态(不会执行进入动作),而外部转换会退出再重新进入目标状态。
感谢老板支持!敬礼(^^ゞ