UML学习(四)-----状态图
转载:https://www.cnblogs.com/silent2012/archive/2011/11/01/2178278.html
状态图主要用于描述对象具有的各种状态、状态之间的转换过程以及触发状态转换的各种事件和条件。
1、状态图的组成
1.1 状态
主要用于描述一个对象在生命周期内的一个时间段。状态图中的状态包括状态名、内部活动、内部转换、入口和出口动作等部分。
1.2 转换
转换是指状态之间在某种事件或条件的驱动下的切换的过程。转换分为外部转换、内部转换、完成转换、复合转换等。如下图:
1.3 判定
判定用来表示一个事件依据不同的监护条件有不同的影响。在实际建模的过程中,如果遇到需要使用判定的情况,通常用监护条件来覆盖每种可能,使得一个事件的发生能保证触发一个转换。
1.4 同步
同步是为了说明并发工作流的分支与汇合。状态图和活动图中都可能用到同步。
1.5 事件
事件可以分成几种,主要包括:信号事件、调用事件、改变事件和时间事件等。
1. 信号事件(Signal Event)信号是作为两个对象之间的通信媒介的命名的实体,它以对象之间显式通信为目的。
2. 调用事件(Call Event)调用事件指的是一个对象对调用(Call)的接收,这个对象利用状态的转换而不是利用固定的处理过程实现操作。
3. 改变事件(Change Event)指的是依赖与特定属性值的布尔表达式所表示的条件满足时,事件发生改变。
4. 时间事件(Time Event)时间事件(Time Event)表示时间表达式被满足的事件,它代表时间的流逝。
2、组成状态
在一个复杂的状态中,可以细化为多个简单的子状态。这个复杂的状态就被称之为组成状态(Composite State)。
2.1 顺序组成状态
2.2 并发组成状态
(订货的状态图)
3 实例:团购旅游活动状态图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现