前言
状态图是描述实体基于事件反应的动态行为,显示了实体如何根据当前所处的状态对不同的事件做出反映。一般用状态机对一个对象的整个生命周期建模。重点在与描述状态图的控制流,显示该实体如何根据当前所处的状态对不同的事件做出反应。我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
椭圆或圆角矩形:表示对象的一种状态,椭圆内部填写状态名
箭头:表示从箭头出发的状态可以转换到箭头指向的状态
事件:引起状态转换的原因。事件名可在箭头线上方标出
条件:事件名后加方括号,括号内写状态转换条件
实心圆:初始状态
内部实心的同心圆:最终状态
.
状态的转移:
下图例子,状态机描述了门对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作(A如ction)。
事件有 打开、关闭、锁门和开锁。
注意:
2、转移(Transition)有警备条件,比如只有关门的条件需要没有障碍物才能满足时,才会响应事件,如果有障碍物无法关上门则不会改变们的状态为关闭状态。
状态
指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。所有对象都有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。
状态用圆角矩形表示
初态和终态(Initialand Final States)初态用实心圆点表示,终态用圆形内嵌圆点表示。
转移(Transitions)是两个状态之间的一种关系,表示对象将在源状态(Source State)中执行一定的动作,并在某个特定事件发生而且某个特定的警界条件满足时进入目标状态(Target State)
状态动作(Actions)是一个可执行的原子操作,也就是说动作是不可中断的,其执行时间是可忽略不计的。
状态图与活动图区别
状态图侧重从行为的结果来描述(状态)
活动图侧重从行为的动作来描述(活动)