3.4.2 状态图
状态图也叫状态转换图,是用于描述软件系统行为模型的图形工具,它通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为,它并不描述系统中数据的流动,尤其适合描述实时系统。
(1)状态。状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对时间的响应方式。系统对事件响应,既可以是做一个或一系列动作,也可以是仅仅改变系统本身的状态,还可以是两者兼有。
在状态图中定义的状态主要有初态、终态和中间状态。一张状态图中只能有一个初态,而终态可以有0至多个。
状态图描绘循环运行过程时,通常并不关心循环是怎样启动的。当描绘单程生存周期时,需要标明初始状态(系统启动时进入初始状态)和最终状态(系统运行结束时到达最终状态)。
(2)事件。事件是特定时刻发生的事情,是对引起系统状态改变或做动作的外部事件的抽象,它实质上是外部事件传递给系统的控制信息。
(3)符号。状态图中使用的主要符号如图3.5所示。初态用实心圆表示,终态用一对同心圆表示(内为实心圆)。中间态用圆角矩形表示,分为上中下三个部分。上面标注状态名称,此为必须项;中间标注状态变量的名字和值,为可选项;下部为活动表,为可选项。(https://www.daowen.com)

图3.5 状态图使用的符号
例3.1 下面以一个办公室复印机的工作过程为例子,具体说明如何使用状态图描绘系统的行为模型。

图3.6 复印机状态图
打印机开机后处于循环工作状态,因此不关心初态和终态,未接到命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成复印后又回到闲置状态,等待下一个复印命令;如果在执行复印命令时出现缺纸,则进入缺纸状态,并发出警告,等待装纸,装满纸后进入闲置状态;如果复印时发生卡纸故障,则进入卡纸状态,并发出警告等待维修人员排除卡纸,故障排除后又回到闲置状态。