UML 中状态行为建模详解
1. 状态历史节点与洗衣机示例
在状态机中,历史节点起着重要作用。以洗衣机为例,如果之前选择过某种模式,洗衣机可能会回到浅历史节点,进而进入漂洗状态,这是运行复合状态中最近的活动子状态。若之前选择的是智能模式,洗衣机则会到达深历史节点,递归地进入最内层的活动子状态,如逆时针子状态。
2. 并发状态建模
2.1 并发状态的表示
当复合状态具有并发行为时,它们会在独立(正交)区域中展示。每个复合状态的区域可能有初始伪状态和最终状态。例如,家庭入侵检测系统有空闲、监控和报警三种状态,其中空闲是默认初始状态,监控和报警都是具有两个并发区域的复合状态。
2.2 状态转换
- 进入复合状态 :向复合状态的转换代表向每个区域的初始伪状态的转换。当系统开启时,进入监控状态,传感器关闭和等待数据这两个子状态会同时进入。也可以使用叉形伪状态(用短粗条表示)将传入转换拆分为两个或更多终止于复合状态不同区域子状态的转换,且从叉形节点发出的线段不能有守卫或触发器。
- 离开复合状态 :有几种方式可以离开具有并发区域的复合状态:
- 由关闭事件触发的转换会终止监控状态的所有并发活动。
- 带有守卫 [入侵检测到] 的转换,以运动处理子状态为源,同样会终止监控状态的所有并发活动。
- 使用连接伪状态合并来自不同正交区域源状态的多个转换,进入连接伪状态的转换不能有守卫或触发器,通常用于同步。
<