状态图
定义
用来描述一个特点对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。
一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。
状态机描述了对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作(Action).
基本组成
状态、转换、事件
状态state
指在对象的生命期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况。
一个状态有5部分:名称name、进入协作和退出动作:entryaction/exit action、内部转换internal transtion、子状态substate、延迟事件deferred event
由一个带圆角的矩形表示。三部分依次是:名称、内部转换、嵌套状态
转换transition
带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。
初始状态start state
转换的源,不能作为转换的目标,一个实心的圆。一个状态中只允许有一个。
终结状态end state
只能作为转换的目标,不能作为转换的源。一个状态图中可以有多个。一个套有一个实心圆的空心圆表示。
判定decision
空心小菱形表示
同步synchronus
并非工作流的分叉和汇合
状态具有的特点:
名称 | 将一个状态与其他状态区分开来的文本字符串;状态也可能是匿名的,这表示它没有名称。 |
进入/退出操作 | 在进入和退出状态时所执行的操作。 |
内部转移 | 在不使状态发生变更的情况下进行的转移。 |
子状态 | 状态的嵌套结构,包括不相连的(依次处于活动状态的)或并行的(同时处于活动状态的)子状态。 |
延迟的事件 | 未在该状态中处理但被延迟处理(即列队等待由另一个状态中的对象来处理)的一系列事件。 |
包含子状态的状态称为复合状态,不包含子状态的状态称为简单状态。
转换
转换五要素:
事件
信号事件
调用事件
变化事件
事件事件
下面是我画的关于机房收费系统登陆时的一个状态图
状态图与交互图的区别
交互图不显示对象所有可能的动态行为,只显示特点交互(一个具体的用例)中对象的行为
状态图与活动图的异同点:请看我的活动图博客。