一、什么是状态图
状态图(State Diagram)用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。状态图显示了状态机。状态图用于对系统的动态方面建模.动态方面是指系统体系结构中任一对象按
事件排序的行为,这些对象可以是类、接口、构件和节点。
二、状态图的图符
三、状态图的基本要素
1.状态机:描述一个对象或一个交互在生命期内响应事件所经历的状态序列。单个类或一组类之间写作的行为可以用状态机来描述。一个状态机涉及到其他元素,包括状态、转换、事件和活动。
2.状态:指在对象的生命期中满足某些条件、执行某些活动或等待某些事件的一个条件或状况。
一个状态又以下几部分:
1)名称——name
2)进入协作和退出动作——entry action/exit action:分别指进入或退出这个状态时所执行的动作。
3)内部转换——internal transition:不会导致状态改变的转换。
4)子状态——substate:主要存在状态的嵌套结构中,包括不相交或并发子状态。
5)延迟事件——deferred event:是指在该状态下暂不处理,但将推迟到该对象的另一个状态下排队处理的事件列表。
起始状态和终止状态是两个特殊的状态。
3.转换:一个转换是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生而某个特定的条件满足时进入第二个状态。
一个转换由5部分组成:
1)源状态——source state:受转换影响的状态。
2)事件触发——event trigger:用来为转换定义一个事件,包括调用,改变,信号,时间。
3)监护条件——guard condition:布尔表达式,决定是否激活转换。
4)动作——action:转换激活时的操作。
5)目标状态——target state:转换完成后的状态。
转换的类型:
四、状态图的作用
1.描述一个并行的过程或者行为。
2.描述一个算法。
3.描述一个跨越多个用例的活动。
五、活动图与状态图的区别
活动图是状态图的一个特例,状态图中的多数状态时活动状态,而且所有或多数转换是由源状态中的活动完成所触发的。
活动图显示的是活动到活动的控制流,侧重从行为的动作来描述。状态图则显示的是从状态到状态的控制流,侧重从行为的结果来描述。