本文概述
- 为什么要使用状态机图?
- 状态机图的表示法
- 国家类型
- 如何绘制状态机图?
- 什么时候使用状态机图?
- 状态机图示例
- 状态机与流程图
它往往是在外部实体和系统中建模交互和协作的有效方法。它对基于事件的系统进行建模以处理对象的状态。它还定义了系统中组件的几种不同状态。每个对象/组件都有特定的状态。
【UML状态机图用法图解】以下是状态机图的类型, 如下所示:
- 行为状态机
行为状态机图记录了系统内对象的行为。它描述了特定实体的实现。它对系统的行为进行建模。 - 协议状态机
它捕获了协议的行为。协议状态机描述协议状态的更改以及系统内的并行更改。但是, 它没有描述特定组件的实现。
它绘制了一个交互式系统的蓝图, 该系统可以响应内部事件或外部事件。从一个状态到另一状态的执行流程由状态机图表示。它可视化了从创建到终止的对象状态。
主要目的是描绘单个对象的每种状态。它代表一个交互式系统以及系统内部的实体。它记录了系统的动态行为。
状态机图的表示法 以下是下面列出的状态机图的符号:
文章图片
- 初始状态:它定义系统的初始状态(开始), 并用黑色实心圆圈表示。
- 最终状态:代表系统的最终状态(结束)。它由一个圆圈内的实心圆圈表示。
- 决策框:呈菱形, 代表要在评估后卫的基础上做出的决策。
- 过渡:由于某些事件的发生, 控制权从一种状态更改为另一种状态称为过渡。它由带有事件的箭头表示, 由于该事件而导致发生更改。
- 状态框:描述特定时间点上类特定对象的条件或情况。具有圆角的矩形用于表示状态框。
- 简单状态:它不构成任何子结构。
- 复合状态:它由嵌套状态(子状态)组成, 因此它不包含多个初始状态和一个最终状态。它可以嵌套到任何级别。
- 子计算机状态:子计算机状态在语义上与组合状态相同, 但是可以重用。
状态机图的主要焦点是描绘系统的状态。这些状态在绘制状态转换图时至关重要。在执行状态机图之前, 必须确认发生状态转换的对象, 状态和事件。
以下是绘制状态机图时要结合的步骤:
- 应该为描述系统行为的状态转换分配一个唯一且易于理解的名称。
- 在多个对象中, 仅实现了基本对象。
- 应为事件和过渡指定适当的名称。
它描绘了对象从开始到结束所经历的变化。它基本上设想了触发事件如何导致系统内的更改。
状态机图用于:
- 用于建模系统的对象状态。
- 用于对反应堆系统进行??建模, 因为它由反应堆对象组成。
- 用于查明负责状态转换的事件。
- 用于实施正向和反向工程。
最初, 自动柜员机是关闭的。打开电源后, ATM开始执行启动操作并进入自检状态。如果测试失败, 则ATM会进入” 服务停止” 状态, 或者将经历无触发的过渡到” 空闲” 状态。这是客户等待交互的状态。
每当客户将银行卡或信用卡插入ATM的读卡器中时, ATM状态就会从” 空闲” 更改为” 服务客户” , 进入” 服务客户” 状态后便会执行输入操作readCard。由于客户可以随时取消交易, 因此取消事件可以触发从” 服务客户” 状态回到” 空闲” 状态的转换。
文章图片
在这里, “ 服务客户” 是一个复合状态, 具有依次为” 客户身份验证” , “ 选择交易” 和” 交易” 的子状态。
客户身份验证和交易是复合状态, 其本身由隐藏的分解指示图标显示。交易完成后, 服务客户将无触发地转换回空闲状态。在离开状态时, 它将经历退出操作弹出卡, 该弹出卡排出客户卡。
状态机与流程图
状态机 | Flowchart |
---|---|
它描绘了系统的几种状态。 | 它演示了程序的执行流程。 |
它包含等待的概念, 即等待事件或动作。 | 它不构成等待的概念。 |
它用于真实世界的建模系统。 | 它设想了系统的分支顺序。 |
这是一个建模图。 | 这是数据流程图(DFD) |
它涉及系统的几种状态。 | 它着重于控制流和路径。 |
推荐阅读
- UML顺序图介绍和用法图解
- Android???????????????Content Provider
- Android跨进程通信AIDL服务
- Android跨进程通信访问其他应用程序的Activity
- audio与video控件/标签的隐藏,iso/Android下自动全屏播放,短暂黑屏问题
- POJ2773Happy2006题解--数论好题
- 基于Android平台的图书管理系统的制作
- netAPP存储恢复删除数据方法-留着万一有用呢
- android开发环境搭建