UML之状态图

UML之状态图


          状态图——Statechart Diagram

          描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。

          通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。


UML之状态图_第1张图片


          状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。

          状态的概念

          状态是对象执行某项活动或等待某个事件时的条件,对象可能会在有限的时间长度内保持某一状态。

          状态的特征

          名称:将一个状态与其他状态区分开来的文本字符串,状态也可能是匿名的,这表示它没有名称。

          进入、退出操作:在进入和退出状态时所执行的操作。

          内部转移:在不使状态发生变更的情况下进行的转移。

          子状态:状态的嵌套结构,包括不相连的(依次处于活动状态的)或并行的(同时处于活动状态的)子状态。

          延迟的事件:未在该状态中处理但被延迟处理(即列队等待由另一个状态中的对象来处理)的一系列事件。


UML之状态图_第2张图片


          转移的概念

          转移是两个状态之间的关系,它表示当发生指定事件并且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态。当发生这种状态变更时,即“触发”了转移。

          在触发转移之前,可认为对象处于“源”状态;在触发转移之后,可认为对象处于“目标”状态。

          转移的特征

          源状态:转移所影响的状态;如果对象处于源状态,当对象收到转移的触发事件并且满足警戒条件(如果有)时,就可能会触发输出转移。


UML之状态图_第3张图片


          事件触发器:使转移满足触发条件的事件。

          当处于源状态的对象收到该事件时(假设已满足其警戒条件),就可能会触发转移。

          警戒状态:一种布尔表达式。

          在接收到事件触发器而触发转移时,将对该表达式求值;如果该表达式求值结果为True,则说明转移符合触发条件;如果该表达式求值结果为False,则不触发转移。如果没有其他转移可以由同一事件来触发,该事件就将被丢弃。

          操作:可执行的、不可分割的计算过程,该计算可能直接作用于拥有状态机的对象,也可能间接作用于该对象可见的其他对象。

          目标状态:在完成转移后被激活的状态。


UML之状态图_第4张图片


          注意:一个转移可能有多个源状态,在这种情况下,它将呈现为一个从多个并行状态出发的结合点;一个转移也可能有多个目标状态,在这种情况下,它将呈现为一个到多个并发状态的叉形图。

 

你可能感兴趣的:(————UML)