一,什么是状态图?
状态图用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移.
二,状态图内容
状图图中包括: 状态
转换
起点
终点
如图:
当支票被创建时,支票为未支付的状态,当支票被付款后,支票变成已支付的状态,然后支票作废。
1,状态
状态是指在对象的生命期中满足某些条件,执行某些活动或等待某些事件时的一个条件或状况。
一个状态有以下几个部分:
1,名称name
2,进入协作或退出动作entryaction/exit
action
3,内部转换internal
transition
4,子状态substate
5,延迟事件deferred
event
如图,状态示例:
2,转换
一个转换是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生而某个特定的条件满足时进入第二个状态。
一个转换由5部分组成:
源状态source
state
事件触发event
trigger
监护条件 guard condition
动作action
目标状态 target state
三,状态机
状态机是这样一种行为,它描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。
单个类或一组类之间协作的行为可以用状态机来描述。
一个状态机涉及到一些其他元素,包括状态,转换(从一个状态到另一个状态的流),事件(触发转换的)
四,比较活动图和状态图
状态图侧重从行为的结果来描述,而活动图侧重从行为的动作来描述。
从应用方面看,
在实际项目中,活动图并不是必须的.一般在一下情况需要使用活动图:
描述一个并行的过程或者行为.
描述一个算法
描述一个跨越多个用例的活动.
状态图描述了一个具体对象的可能状态以及它们之间的转换.
活动图更像流程图,注重逻辑和流程;而状态图则注重状态之间的转变。
如图,下图是一个大楼建造的活动图,主要描述了大楼建造的过程,其中建造和交易处理是并行的,体现了活动图可以描述并行活动的特点。
如图,为一个状态图(转换条件省略),主要是描述了各个状态的转换过程,对比上面的活动图,可以非常直观的看出这两种图所要表达的侧重点。