UML状态机图用法图解

本文概述

  • 为什么要使用状态机图?
  • 状态机图的表示法
  • 国家类型
  • 如何绘制状态机图?
  • 什么时候使用状态机图?
  • 状态机图示例
  • 状态机与流程图
状态机图也称为状态图或状态转换图, 它显示了系统中某个对象所经历的状态的顺序。它捕获软件系统的行为。它对类, 子系统, 包和完整系统的行为进行建模。
它往往是在外部实体和系统中建模交互和协作的有效方法。它对基于事件的系统进行建模以处理对象的状态。它还定义了系统中组件的几种不同状态。每个对象/组件都有特定的状态。
【UML状态机图用法图解】以下是状态机图的类型, 如下所示:
  1. 行为状态机
    行为状态机图记录了系统内对象的行为。它描述了特定实体的实现。它对系统的行为进行建模。
  2. 协议状态机
    它捕获了协议的行为。协议状态机描述协议状态的更改以及系统内的并行更改。但是, 它没有描述特定组件的实现。
为什么要使用状态机图? 由于它记录了系统的动态视图, 因此它描绘了软件应用程序的行为。在生命周期内, 一个对象经历了几种状态, 因此生命周期一直存在, 直到程序执行为止。每个状态都描述了一些有关对象的有用信息。
它绘制了一个交互式系统的蓝图, 该系统可以响应内部事件或外部事件。从一个状态到另一状态的执行流程由状态机图表示。它可视化了从创建到终止的对象状态。
主要目的是描绘单个对象的每种状态。它代表一个交互式系统以及系统内部的实体。它记录了系统的动态行为。
状态机图的表示法 以下是下面列出的状态机图的符号:
UML状态机图用法图解

文章图片
  1. 初始状态:它定义系统的初始状态(开始), 并用黑色实心圆圈表示。
  2. 最终状态:代表系统的最终状态(结束)。它由一个圆圈内的实心圆圈表示。
  3. 决策框:呈菱形, 代表要在评估后卫的基础上做出的决策。
  4. 过渡:由于某些事件的发生, 控制权从一种状态更改为另一种状态称为过渡。它由带有事件的箭头表示, 由于该事件而导致发生更改。
  5. 状态框:描述特定时间点上类特定对象的条件或情况。具有圆角的矩形用于表示状态框。
国家类型 UML包含三个状态:
  1. 简单状态:它不构成任何子结构。
  2. 复合状态:它由嵌套状态(子状态)组成, 因此它不包含多个初始状态和一个最终状态。它可以嵌套到任何级别。
  3. 子计算机状态:子计算机状态在语义上与组合状态相同, 但是可以重用。
如何绘制状态机图? 状态机图用于描绘对象经历的各种状态。从一种状态到另一种状态的变化是由于某个事件的发生。在绘制状态机图之前, 必须确定特定组件的所有可能状态。
状态机图的主要焦点是描绘系统的状态。这些状态在绘制状态转换图时至关重要。在执行状态机图之前, 必须确认发生状态转换的对象, 状态和事件。
以下是绘制状态机图时要结合的步骤:
  1. 应该为描述系统行为的状态转换分配一个唯一且易于理解的名称。
  2. 在多个对象中, 仅实现了基本对象。
  3. 应为事件和过渡指定适当的名称。
什么时候使用状态机图? 状态机图实现了真实世界的模型以及面向对象的系统。它记录了系统的动态行为, 用于区分系统的动态行为和静态行为。
它描绘了对象从开始到结束所经历的变化。它基本上设想了触发事件如何导致系统内的更改。
状态机图用于:
  1. 用于建模系统的对象状态。
  2. 用于对反应堆系统进行??建模, 因为它由反应堆对象组成。
  3. 用于查明负责状态转换的事件。
  4. 用于实施正向和反向工程。
状态机图示例 下面给出了显示银行自动柜员机(ATM)的顶级状态机图的示例。
最初, 自动柜员机是关闭的。打开电源后, ATM开始执行启动操作并进入自检状态。如果测试失败, 则ATM会进入” 服务停止” 状态, 或者将经历无触发的过渡到” 空闲” 状态。这是客户等待交互的状态。
每当客户将银行卡或信用卡插入ATM的读卡器中时, ATM状态就会从” 空闲” 更改为” 服务客户” , 进入” 服务客户” 状态后便会执行输入操作readCard。由于客户可以随时取消交易, 因此取消事件可以触发从” 服务客户” 状态回到” 空闲” 状态的转换。
UML状态机图用法图解

文章图片
在这里, “ 服务客户” 是一个复合状态, 具有依次为” 客户身份验证” , “ 选择交易” 和” 交易” 的子状态。
客户身份验证和交易是复合状态, 其本身由隐藏的分解指示图标显示。交易完成后, 服务客户将无触发地转换回空闲状态。在离开状态时, 它将经历退出操作弹出卡, 该弹出卡排出客户卡。
状态机与流程图
状态机 Flowchart
它描绘了系统的几种状态。 它演示了程序的执行流程。
它包含等待的概念, 即等待事件或动作。 它不构成等待的概念。
它用于真实世界的建模系统。 它设想了系统的分支顺序。
这是一个建模图。 这是数据流程图(DFD)
它涉及系统的几种状态。 它着重于控制流和路径。

    推荐阅读