状态机图
基本概念: 状态机图,UML 1.x规范中称状态图,是一个展示状态机的图。
状态机图基本上就是一个状态机中元素的投影,这也就意味着状态机图包括状态机的所有特征。状态机图显示了一个对象如何根据当前状态对不同事件做出反应的动态行为。
状态机图主要由状态和转换两种元素组成。
状态机
状态机是一种行为,它说明对象在其生命周期中响应事件所经历的状态变化序列以及对那些时间的响应。
一般情况下,一个状态机依附于一个类,用来描述这个类的实例的状态及其转换,和对接收到的事件所做出的响应。此外,状态机也可以依附于用例、操作、协作等元素上,描述它们的执行过程。
状态机从对象的初始状态开始,响应事件并执行某些动作,从而引起状态的转换;在新状态下又继续响应事件并执行动作,如此循环进行到对象的终结状态。
状态机主要由状态、转换、事件、动作和活动5部分组成。
1)状态表示对象的生命周期中的一种条件或情况。
2)转换表示两种状态间的一种关系。
3)事件表示在某一时间与空间下所发生的有意义的事情。
4)动作表示一个可执行的原子操作,是UML能够表达的最小计算单元
5)活动表示状态机中的非原子执行,一般由一系列动作组成。
状态机图作用:状态机图用于对系统的动态方面进行建模,适合描述一个对象在其生命周期中的各种状态及状态的转换。
状态机图的作用主要体现在以下几点:
1)状态机图描述了状态转换时所需的触发事件和监护条件等因素,有利于开发人员捕捉程序中需要的事件。
2)状态机图清楚地描述了状态之间的转换及其顺序,这样就可以方便地看出事件的执行顺序,状态机图的使用节省了大量的描述文字。
3)清晰的事件顺序有利于开发人员在开发程序时避免出现事件错序的情况。
4)状态机图通过判定可以更好地描述工作流在不同的条件下而出现的分支。
状态机图的组成: 简单状态、转换、伪状态。
简单状态
状态是状态机图的重要组成部分,它描述了一个对象稳定在的某一个持续过程或所处状况,与动态行为的执行所产生的结果。
当对象满足某一状态的条件时,该状态被称为激活的。
在UML中,状态分为简单状态与复合状态。
a.简单状态就是没有嵌套的状态。
b.初态和终态是两个特殊的状态,分别表示状态机的入口状态和出口状态。对于一个不含嵌套结构的状态机,只能有一个初态,可以有一个或多个终态甚至没有终态。
状态一般由状态名称、子状态、入口动作和出口动作、内部执行活动、内部转换和可推迟事件组成。对于简单状态而言,不会有子状态。
状态名称:可以把一个状态与其他状态分别开来,即状态名称必须在当前层次内保持唯一。没有名称的状态被称为匿名状态。</