第5章 建立辅助模型—状态机图
一、状态机图:描述了一个对象在其生存期内因响应事件所经历的状态序列以及对这些事件所做出的反应,主要是由状态和状态间的转移构成的。
二、事件:指所发生的在时间和空间上可以定位并具有实际意义,值得注意的事情。在OO中,事件是对一件事情的规格说明,这种事情的发生可以引发状态的转移。
1、信号事件:特征标记放在由它所触发的转移上;
2、调用事件:对操作的调用的接收,导致一个调用事件,这样的操作由接收事件的对象实现;
3、时间事件:在指定事件发生后,经过一段时间或到了指定时间,就导致一个时间事件;
4、改变事件:布尔表达式描述的指派条件;
5、事件通常后面跟一个监护条件(布尔表达式)。
三、状态:对象在其生存期中满足某一条件、进行某种活动或等待某一事件的条件或状况。没有名称的状态是匿名的,在同一张图中的各匿名状态被认为是互不相同的。在一个状态机图中,有一个初始状态,可有一个或多个终止状态。在一个状态下,可能出现在当前状态下暂不处理,而推迟到该对象的另一个状态下才处理的事件(延迟事件)。
四、转移:
1、状态内转移:指在一个状态内由事件引起的动作或活动执行后,对象仍处于该状态的情形,即引发状态内的转移的事件的发生不会导致状态的改变。
2、状态间转移:是两个状态之间的关系,表示当一个特定事件出现时,且满足一定的条件,对象就从第一个状态进入第二个状态,并执行一定动作或活动。
如果一个转移正在引起状态的改变,就称该状态间的转移被触发了。
3、组合状态:
五、建立状态机图:
1、在对系统的动态方面建模时,有时要刻画一些对象对语境中的事件所作出的反应,描述对象的状态以及状态间的转移。
2、对对象的状态变迁建模,要说明:这个对象可能处于的稳定状态及其内部的情况,触发状态到状态转移的事件,以及当触发转移时发生的动作。
3、有时还需要说明这个对象的创建时刻和消亡时刻。
4、考虑清楚了一个类的各个对象的状态机图,也就综合出了描述该类的状态机图。
5、通常用状态机图描述类的行为,也可以用它描述其他模型元素的行为。