UML语言-状态图
状态图(State Diagram)又称作状态转换图(State Transition Diagram)。状态图的基本想法是定义一个具有有限个内部状态的机器,因此状态图又称作有限状态机。对象被外界的事件激发,从而从一个状态转换到另一个状态。
考虑汽水装瓶机上的汽水瓶子的例子。对象是瓶子,装瓶机器是外部环境。首先,一个空瓶子在传送带上被送到装瓶机龙头下面,此时瓶子是空的。如图所示:
图中的黑点表示起始状态,方框表示瓶子的状态,可以看出瓶子没满,处在未满状态。从起始状态到未满状态、有箭头的连线表示状态的过渡。过渡连线的标签通常分为两部分由一个斜线分开,斜线的第一部分是引起过渡的事件,第二部分是事件发生所引起的操作。本图中,只有第一部分,因为瓶子没有动作。
从瓶子被加灌汽水到瓶子达到已满状态为止,如下图所示。由图中可以看出,瓶子从未满状态过渡到已满状态的事件仍然是加灌事件,只是条件不同,变成了已加灌量>=容量。
已被加满的瓶子将被盖上盖子。这里的事件是加盖子,瓶子过渡到已加盖状态,如下图所示。
显然,只有处在已满状态的瓶子可以加盖子,处于未满状态的瓶子不会被加盖子。只有未满状态的瓶子会收到加灌汽水的事件,而已满的瓶子不会收到加灌汽水的事件。状态图可以让读者清楚地看到什么事件会发生到对象身上,以及发生的事件对对象会有什么样的效果。
状态可以嵌套。一个状态中的可以有一些别的状态。大的状态叫做父状态或者超状态,小的状态叫做子状态。仍然可以加灌汽水瓶为例,可以划分出一个超状态,它包括两个子状态,如下图所示。
状态图还有另外两个常用的图标,即历史状态图标和终态图标,如下图所示。
历史状态记住系统离开时的状态,终态图标是初态图标相反的图标,代表对象湮灭的状态。
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《UML语言-状态图》
本文地址:https://www.zhiletu.com/archives-7638.html
关注公众号:
微信赞赏支付宝赞赏