目标状态1
源状态
目标状态2
• 判定: 在状态图中的一个特定的位置,工作流在此依 据条件的取值而发生的分支。判定用空心小菱 形表示。
36
转移类型[4]
37
多条件链式分支 源状态
事件1
[条件1]/动作1
[条件3]/动作3
[条件4]/动作4
目标状态1 目标状态2 目标状态3
[条件2]/动作2
[条件5]/动作6 [条件6]/动作6
资源休闲
未分配任务
[NumAssTasks=1] / NumAssTasks=0 分配任务给资源 / NumAssTasks+1
取消对任务的资源分配
已分配任务
分配任务给资源 / NumAssTasks+1
[NumAssTasks>1] / NumAssTasks-1
项目与资源管理系统( PRMS)的一个资源状态图
event 事件名(参数)[监护条件] / 动作
内部转移
转移的类型[2]
• ① 自身转移: 源状态和目标状态为同一状态的转移。
• 转移发生时执行的顺序:
– 首先当前状态下正在执行的do动作全部停止, – 然后执行退出动作, – 接着执行引起转移事件的相关动作, – 紧接着回到该状态,开始执行该状态的入口动作和其他动作 – 不会改变对象的状态;调用状态的入口和出口动作。
结论: 部分对象的行为与其所处的状态相关。通过分析对象的 状态及引起状态转变的原因,有利于寻找对象所处类的 操作。
状态机图的作用:寻找类的操作
I
引
言
• 根据当前事件,以及对以前事件的响应的结果决 定对当前事件的响应的软件对象的动态行为, 称为是事件驱动的。 • 在UML里,最适合于描述这类动态行为的建模 手段,就是状态机。 • 状态机 – 用状态:记录以前的动态行为的结果 – 用转移(迁移):描述软件对象对外来事件 的响应以及响应的状态的变化。