uml-状态图学习
Posted 微示例
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uml-状态图学习相关的知识,希望对你有一定的参考价值。
内部行为
内部行为是对象处于某种状态时的发生的任何行为。
内部行为可以写成label/behavior,label支出行为执行的时机,即引起行为的事件或环境。有3种特别的label,即entry、do、exit。
进入行为在状态变得活跃时发生,写为entry/behavior。在状态变为不活跃之前,退出行为立即发生,写为exit/behavior。与do行为不同,进入和退出行为是无法被中断的
自我转换和内部转换
自我转换
自我转换由内部行为触发,从当前状态重新进入当前状态,会再次触发entry和exit行为
在CD播放器读完一张光盘后,若还有其他光盘,则重新进入Playing状态
内部转换
内部转换则不引起状态发生变化,也不会触发entry和exit行为,对不引起状态改变的事件回应,使用内部转换来建模
在攻击状态下,当距离小于3,则触发内部的闪躲行为
组合状态
组合状态是包含一个或多个状态图的状态。每个图属于一个区域,各个区域以虚线分割。区域内的状态被称为组合状态的子状态(substate)。
顺序子状态
如果一个组成状态的多个子状态之间是互斥的,不能同时存在的,这种组成状态称为顺序组成状态。
一个顺序组成状态最多可以有一个初始状态和一个终态,同时也最多可以由一个浅( shallow )历史状态和一个深( deep )历史状态。
并行子状态
并发状态图用于描述一个对象在某个时刻有多个并发的子状态机的情况,并发状态图是这些子状态图的组合。
如下图,假定处于Neutral状态的巨魔同时在做两件事:Searching和Pacing。那么可以使用组合状态对两个同时发生的状态建模
同步子状态
同步条是为了说明并发工作流的分支与汇合。状态图和活动图中都可能用到同步。在UML中,同步用一条线段来表示。
历史状态(History States)
历史状态是一个伪状态(Pseudostate), 其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入这个子状态,而不是再次从组合状态的初态开始。
在上图的状态图中,正常的状态顺序是:【Washing】- >【Rinsing】->【Spinning】。
如果是从状态【Rinsing】突然停电(Power Cut)退出,, 洗衣机停止工作进入状态【Power Off】,当电力恢复时直接进入状态【Rinsing】。
参考:
https://www.pianshen.com/article/99751897949/
以上是关于uml-状态图学习的主要内容,如果未能解决你的问题,请参考以下文章