《软件建模与设计: UML、用例、模式和软件体系结构》一一2.6 状态机图

本节书摘来自华章计算机《软件建模与设计: UML、用例、模式和软件体系结构》一书中的第2章,第2.6节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.6 状态机图

在UML表示法中,一个状态转换图被称为状态机图。本书使用状态图(statechart)这一更为通用的术语。在UML表示法中,圆角框表示状态,连接圆角框的弧线表示转换,如图2-7所示。状态图的初始状态(initial state)用一个始于小黑圆圈的弧线表示。终结状态(final state)是可选的,它被描绘为嵌套在大白圈中的小黑圆圈,有时也被称为靶心(bull’s-eye)。状态图可以按层次分解,将一个组合状态分解成为一组子状态。
在表示状态转换的弧线上,使用事件[条件]/动作(Event[Condition]/Action)进行标记。事件(event)引起了状态的转换,当事件发生时,为了发生转换,可选的布尔条件(condition)必须为真。可选的动作(action)作为转换的结果被执行。一个状态可具有以下任意的动作:
进入动作(entry action),它在进入状态的时候执行
退出动作(exit action),它在退出状态的时候执行
图2-7描述了一个被分解为顺序的子状态A1和A2的组合状态A。在这种情况下,状态图在一个时刻内只会处于一个子状态,即进入第一个子状态A1然后进入子状态A2。图2-8描述了一个被分解为正交区域(orthogonal region)BC和BD的组合状态B。在这种情况下,状态图在同一个时刻进入了每一个正交区域BC和BD中。每一个正交的子状态被进一步分解为顺序的子状态。因此,当进入组合状态B时,同样进入了状态B1和B3。

《软件建模与设计: UML、用例、模式和软件体系结构》一一2.6 状态机图