状态机
状态机展示状态与状态转换的图。在操作系统的进程调度中,通常用状态机描述进程的各个状态之阿健的转换关系。利用状态机可以精确的描述对象的行为,从对象的初始状态起,开始响应事件并执行某些动过,这些事件引起状态的转换,对象在新的状态下又开始响应状态和动作,如此连续进行直到终结状态。
状态的组成:状态、转换、事件、活动、动作。
状态图
一个状态图表示一个状态机。主要用于表现从一个状态到另一个状态的控制流。状态图包括:状态、转换。
状态:描述了状态机所在对象动态行为的执行所产生的结果。这里的结果一般指能影响此对象对后续事件响应的结果。图形上,使用一个圆角矩形表示一个状态,一个完整的状态由5部分组成,分别为:名字、入口/出口动作、内部转换、延迟事件、子状态。
名字:由一个字符串构成,用以识别不同的状态。状态可以时匿名的,即:没有名字
入口/出口动作:表示进入/退出这个状态所执行的动作。
内部转换:内部转换时不会引起状态变化的转换,此转换的触发不会导致状态的入库/出口动作被执行。
延迟事件:延迟事件该状态下暂不处理,但将推迟到该对象的另一个状态下事件处理队列。
子状态:在UML中,子状态被定义为状态的嵌套结构,即包含在某状态内部的状态。包含子状态的状态被称为复合状态,不包含子状态的状态称为简单状态,子状态以两种形式出现:顺序子状态和并发子状态。
转换:转换包括事件和动作。事件是原子性的。状态图上每一个状态图都有一个初始状态(实心圆)用来表示状态机的开始,还有一个终止状态(半实心圆)用来表示状态的终止,其他状态用一个圆角矩形表示,转换表示状态间可能的路径,用箭头表示,事件写在由它们触发引起的转换上。转换由源状态、目标状态、触发事件、监护条件和动作。
源状态:转换描述的是状态机所在的对象的变化。某对象处于源状态,当他接收到触发事件或满足监护条件,就会激活一个转换。
目标状态:转换使对象从一个状态转换到另一个状态。转换完成后,对象状态发生了变化,这时对象所处的状态就是转换的目标状态。目标是转换完成后的状态。
触发事件:状态机描述了对象的具有事件驱动的动态行为。
使用状态图对系统反映型对象建模时步骤:
1、识别一个要对其生命周期进行描述的参与行为的类
2、对状态建模,即确定对象可能存在的状态
3、对事件建模,即确定对象可能存在的事件
4、对动作建模,即确定当转变被激活时,相应被执行的动作
5、对建模解惑进行精化和细化。