1. 说明
- 1.状态图(State Diagram)展现了一个状态机。
- 2.由状态、转换、事件和活动组成。
- 3.关注系统的动态视图。
- 4.对于接口、类和协作的行为建模尤为重要。
- 5.强调对象行为的事件顺序。
- 6.通常包括简单状态和组合状态、转换(事件和动作)。
- 7.状态是指对象的生命周期中某个条件或者状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件,是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。
- 8.嵌套在另外一个状态中的状态称为子状态,含有子状态的状态称为组合状态。
- 9.转换是两个状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警界(监护)条件满足时进入目标状态。(包含触发事件、监护条件、状态(源状态和目的状态)、动作)
- 10.动作是一个可执行的原子操作,是不可中断的,其执行时间是可忽略不计的
- 11.直接通过进入节点进入状态,通过退出节点可以结束状态。
- 12.使用历史状态记住从组合状态中退出时所处的子状态,作用是当再次进入组合状态时,可以直接进入这个子状态,而不是再次从组合状态的初态开始。
- 13.状态图可以分为区域,而区域又包括退出或者当前执行的子状态,说明组合状态可以在某一时刻同时到达多个子状态,此时通常在其前后使用fork 和 join 标识。
- 14.可以用状态图对系统的动态方面建模。
- 15.这些动态方面可以包括出现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为,这些对象包括类(各主动类)、接口、构件和结点。
- 16.当对系统、类或用例的动态方面建模时,通常是对反应型对象建模。
- 17.一个反应型或事件驱动的对象是这样一个对象,其行为通常是由对来自语境外部的事件做出反应来刻画的。
- 18.反应型对象在接收到一个事件之前通常处于空闲状态。
- 19.当它接收到一个事件时,它的反应常常依赖于以前的事件。
- 20.在这个对象对事件做出反应后,它就又变成闲状态,等待下一个事件。
- 21.对于这种对象,将着眼于对象的稳定状态、能够触发从状态到状态的转换的事件,以及当每个状态改变时所发生的动作。
- 22.一个状态内部还有状态转换,那么这个状态就是超状态。
2. 图示
3. 例题
3.1 例题1
1.以下关于UML状态图中转换(transition)的叙述中,不正确的是(C)
A.活动可以在转换时执行也可以在状态内执行
B.监护条件只有在相应的事件发生时才进行检查
C.一个转换可以有事件触发器、监护条件和一个状态
D.事件触发转换
1.转换是从一个状态变迁到另一个状态,所以一个转换至少有两个状态
3.2 例题2
2.以下关于UML状态图的叙述中,不正确的是(C)。对下图的描述,正确的是(D)。
A.用于描述一个对象在多个用例中的行为
B.用于某些具有多个状态的对象而不是系统中大多数或全部对象
C.用于描述多个对象之间的交互
D.可以用于用户界面或控制对象
A.ON是一个并发状态
B.因为此状态图中没有终点(final)状态,所以此图是无效的
C.play、stop 和rew 是动作
D.ON是超状态
1.状态图展现一个状态机,它由状态、转换、事件和活动组成。
2.可以用状态图对系统的动态方面建模。
3.这些动态方面可以包括现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为,
这些对象包括类(主动类)、接口、构件和结点。所以状态不会表示多个对象之间的交互。
4.根据ON状态的内部行为可以发现状态为超状态,其中play、stop和rew是触发事件。