如何绘制状态图

状态图

1

学习绘制状态图

?状态和状态机

状态、状态表示法及状态机

?状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况

?一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成

?状态机是计算机科学理论的一部分,但UML中的状态机模型主要是基于David Harel所做的扩展,

是用来展示状态与状态之间转换的图 ?如何阅读状态机图 阅读最简单的状态图

?最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是

在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换

状态图

2

转换的五要素

?源状态:即受转换影响的状态

?目标状态:当转换完成后对象的状态

?触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件 ?监护条件:布尔表达式,决定是否激活转换、 ?动作:转换激活时的操作 读图小结

?与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,

那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作

?而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了

复杂转换 转换类型 描述 语法 外部转换

状态图

3

对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转换 事件(参数)[监护条件]/动作 内部转换

对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换 事件(参数)[监护条件]/动作 进入转换

当进入某一状态时,执行相应活动 entry/活动 退出转换

当离开某一状态时,执行相应活动 exit/活动

阅读带有复杂转换的状态图

只有动作描述,进入和退出和操作方法写在了里面 各种转换的区别

?进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使

用进入和退出转换来表示

?内部转换:用来处理一些不离开该状态的事件

状态图

4

活动与延迟事件

?活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但是某些时间,你可能希望描

述个正在进行的活动。在处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断

?延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不

会丢失,但会被延迟执行。例如,当E-mail程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就

会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件 复合状态表示法

分解指示符 顺序复合状态图

状态图

5

监护条件为“应答音”,代表已连接。 并发复合状态图

三种评测方式 历史

?“一个圆圈中加上字母H”,是用来表示历史状态的。 它的含义是:当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。 也就是说,转到购物车或结账区之后,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4