可以创建状态机来描述具有重要行为的类和系统。并不是所有对象都需要状态机。如果对象的行为只是存储或检索数据之类的基本行为,那么该对象的行为可能对您不太重要,您可能对它的状态机也不太感兴趣。状态机还可以包含一些嵌套状态,用来表示不同的分层状态级别。可以使用嵌套状态来检查对象中复杂的状态更改。
可以向状态机添加图来描述一个对象的行为的不同透视图。每个图都将作为一个单独的窗口打开,但是所有图中将显示相同的模型元素。缺省情况下,状态机中的各个图是同步的。在项目资源管理器视图中对一个区域所作的更改将在同一状态机的其他图中反映出来,而对一个图中某个区域所作的更改将在项目资源管理器视图中反映出来的。可以更改一个区域的编辑设置,以便在项目资源管理器视图中对某个区域所作的更改不会在相应的状态机图中反映出来,从而可以通过将一个区域的规范属性值更改为 false 来独立于同一状态机中的其他图来编辑该区域。
因为状态机将显示动态行为,所以它们对于开发实时系统或事件驱动的系统来说是有用的建模帮助。可以在软件项目的所有阶段开发状态机并用于业务建模。可以在下列情况下使用状态机:
可以使用状态机来为事件驱动的行为建模。时间、信号或操作等事件会导致对象的状态发生变化。事件不存在持续时间,它可以在另一个事件之前或之后发生。在发生另一个事件之前,用来对事件驱动的行为建模的状态将继续保持同一状态。在因发生某一事件而改变状态之后,流程将还原为准备接收下一个事件的稳定状态。