状态转换图概念
状态转换图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。
一、状态
状态:是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。
状态主要有:
1、初态(即初始状态),只能有1个
2、终态(即最终状态),可以有0至多个
3、中间状态
状态图分类:
1、表示系统循环运行过程,通常不关心循环是怎样启动的。
2、表示系统单程生命期,需要标明初始状态和最终状态。
二、事件
是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。
三、符号
初态:用实心圆表示;
终态:用一对同心圆(内圆为实心圆)表示;
中间状态:用圆角矩形表示,分成上、中、下3部分。
1、上面部分-----为状态的名称;
2、中间部分-----为状态变量的名字和值;
3、下面部分-----是活动表。
带箭头的连线:称为状态转换,箭头指明了转换方向。 
活动表的语法格式:
事件名(参数表)/动作表达式
“事件名”可以是任何事件的名称。
常用的3种标准事件:
1、entry事件指定进入该状态的动作;
2、exit事件指定退出该状态的动作;
3、do事件则指定在该状态下的动作。
需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。
事件表达式的语法:
事件说明[守卫条件]/动作表达式
事件说明的语法为:事件名(参数表)。
守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。
动作表达式是一个过程表达式,当状态转换开始时执行该表达式。
例子
电话系统
![IN$JTG]M42E_V6V}0DWJDNI.png](https://p.ananas.chaoxing.com/star3/origin/31bcabf326dfbd7850e9e22c6c6368ec.png)

