标签:splay 基本概念 intern 一个 执行 href order tab 关键字
利用状态图模拟响应系统,反应系统模型声明周期,将静态的业务可以动态流动起来,按照预定的状态进行业务描述。
状态(state)是指在对象的生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。所有对象都具有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态发生变化。
状态图(statechart diagram)用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。并不是所有的类都需要画状态图,有明确意义的状态,在不同状态下行为有所不同的类才需要画状态图。
状态机是计算机科学理论的一部分,但UML中的状态机模型主要是基于David Harel所做的扩展,是用来展示状态与状态之间转换的图。
1.状态的组成部分
2.状态图的要素
3.状态的类型
①按状态过程分:
一个状态图只能有一个初态,但终态可以有一个或多个,也可以没有终态。
中间状态包括两个区域:名字域和内部转移域,如图所示。其中内部转移域是可选的。
②含有子状态的状态被称为组合或嵌套状态
组合状态可以使用“与”关系分解为并发子状态,或者通过“或”关系分解为互相排斥的顺序子状态。
③历史状态是伪状态, 其目的是记住从组合状态中退出时所处的子状态, 当再次进入组合状态时, 可以直接进入这个子状态, 而不是再从组合状态的初态开始。
如下图,running状态被打断到power on状态,再转回到running状态时,希望直接进入历史状态
4.转换(Transition)
转换是两个状态间的一种关系,表示对象将在当前状态中执行动作,并在某个特定事件发生或某个特定的条件满足时进入后继状态。 每个转换只允许有一个事件触发,一个事件只允许有一个动作。
举例:与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作。而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了。
转换类型
|
描述
|
语法
|
外部转换 | 对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转换 | 事件(参数)[监护条件]/动作 |
内部转换 | 对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换 | 事件(参数)[监护条件]/动作 |
进入转换 | 当进入某一状态时,执行相应活动 | entry/活动 |
退出转换 | 当离开某一状态时,执行相应活动 | exit/活动 |
5.事件(Event)
事件是对一个时间和空间上占有一定位置的有意义的事情的规格说明。事件触发状态的转移。
对象之间通过发送信号和接收信号实现通信。信号是一种异步机制。在计算机中,鼠标和键盘的操作均属于此类事件。对于一个信号而言,对象一般都有相应的事件处理器,如onMouseClick()等。
表示一个操作的调度。一个对象请求调用另一个对象的操作信号是一个异步事件,而调用事件一般是同步的。也就是说,当对象调用另一对象的操作时,控制就从发送者传送到接收者,该事件触发转换,完成操作后,接收者转换到一个新的状态,控制返还给发送者。
用关键字When,后面跟布尔表达式When(temperature>120)/alerm(),变化事件的意图是要频繁测试表达式,只要表达式由假变为真,事件就会发生。
时间事件是指在绝对时间或在某个时间间隔内发生的事情所引起的事件。例如到达某一时间或经过了某一时间段。用关键字When 或After表示。
6.状态图建模步骤:
①找出适合用模型描述其行为的类。
②确定对象可能存在的状态。
③确定引起状态转换的事件。
④确定转换进行时对象执行的相应动作。
⑤对建模的结果进行相应的精化和细化。
采样点位状态变更过程:初始状态为待采样,如果点位采集到了样品,则变更点位状态到已采样,点位存在无法采样情况,可以取消采样,变更状态到无效,点位存在当前不可以采样,可以变更状态到待补采,采集的样品交接完毕,点位变更状态到已完成,采样活动结束。
至此,针对UML状态图的相关内容做了大概的总结,利用状态图,可以快速掌握具体对象的生命周期。
2020-02-06,望技术有成后能回来看见自己的脚步
标签:splay 基本概念 intern 一个 执行 href order tab 关键字
原文地址:https://www.cnblogs.com/CKExp/p/12262919.html