UML状态图
状态图描述一个动态机,它由状态,转移,事件和活动组成。状态图给出了对象的动态视图。它对于接口,类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模
状态图由五部分组成
状态(起始状态,终止状态),事件,监护条件,动作,转移
注意:
一个状态图只能有一个初态,但可以有一个或多个终态,也可以没有终态
转移是两个状态间的一种关系,表示对象将在当前状态中执行动作,并在某个特定事件发生或某个特定的条件满足时进入后续状态。每个转移只允许有一个事件触发,一个事件只允许有一个动作。
当对系统,类或用例的状态建模时,通常是对反应型对象建模。
状态转换
格式:事件(参数)【条件】/动作
五要素:
源状态
目标状态
触发事件
监护事件
动作
事件的分类:
信号事件 对象之间发送信号和接收信号实现通信
调用事件 一个对象请求调用另一个对象的操作
变换事件 when后面接布尔表达式
时间事件 到达某一时间或经过某一时间段,用when和after表示
一个状态有以下几个组成部分
状态名,进入/退出动作,内部转移,子状态,延迟事件
组合状态:顺序子状态,并发子状态
顺序子状态:多个子状态之间是互斥的,不能同时存在。整体完成,需要A1和A2都完成
并发子状态:某个1时刻可以同时达到多个子状态,并且状态内可以并发进行