在一个状态图的活动区中画有一个或多个状态图的称为嵌套状态图,被嵌套的状态称为子状态。子状态还可以有自己的嵌套状态。一个状态所拥有的子状态可以画成另一个状态图。
一个不含内嵌套状态的状态称为简单状态。简单状态对应一个动作,而嵌套状态中每个被嵌套的状态都对应于该嵌套状态内正在进行的一个活动。在UML中,动作和活动的含义是不同的。
(1)动作:一组可执行的语句。动作具有如下特性:
①转移性:与状态转移有关。
②原子性:这组语句不可中断。
③连续性:这组语句必须连续执行,直到完毕。
(2)活动:一组可执行的动作。活动具有如下特性:
①有限性:完整的活动有一定的期限。
②非原子性:这组动作可因某一事件发生而中断。
在一个嵌套状态图中,被嵌套的子状态图必须有自己的起始状态和终止状态。在状态转移中,一个嵌套状态图的入转移就是其子状态图的起始状态的入转移;其子状态图的终止状态的迁移表示该嵌套状态的相应活动结束。
嵌套状态内的多个子状态可以是“并”关系或者是“或”关系。“或”关系子状态表示在任一时刻这些子状态中只有一个子状态是活动的。
案例学习
◎一部在正常使用的车床,其状态可以由两个状态属性值描述:设备使用状况和设备操作状况。这两个状态属性值的排列组合就可以描述出车床的全部状态变化。但在此例中,由于设备操作状况只对使用中的车床才有意义,所以只用8个状态便可以描述车床全部的状态转移。采用嵌套状态图可以使画面清晰,更清楚地表达了状态的结构关系,便于分清主次,简化对复杂行为的建模,如图6-19所示。
(1)设备使用状况。(https://www.xing528.com)
①使用中:正在使用,一切正常。
②维修中:例行检修或有毛病正在修理,不能使用。
③闲置:设备正常,但不适合生产使用。
④报废:损坏严重不能修理或超过使用年限。
(2)设备操作状况:只有使用中的设备才有操作。
①待命:车床已经启动,进入准备运行状态。
②提速:得到运行命令,从0开始加速,逐渐进入运行所需速度。
③运行:匀速正常运行。
④减速:得到停止运行命令,正在减速,逐渐进入待命状态。
描述设备(车床)操作状况的状态图嵌套在设备状况为“使用中”的状态内,也可以抽出来单独成为一个状态图,这样可以更加详细地描述设备操作状况的各个状态的属性值、对象做的具体动作及引起状态转移发生的事件。

图6-19 描述设备(车床)状况的嵌套状态图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
