📅  最后修改于: 2021-01-11 13:24:01             🧑  作者: Mango
状态机图也称为Statechart或State Transition图,它显示了系统中某个对象所经历的状态的顺序。它捕获了软件系统的行为。它对类,子系统,包和完整系统的行为进行建模。
它往往是在外部实体和系统中建模交互和协作的有效方法。它对基于事件的系统进行建模以处理对象的状态。它还定义了系统中组件的几种不同状态。每个对象/组件都有特定的状态。
以下是状态机图的类型,如下所示:
由于它记录了系统的动态视图,因此可以描述软件应用程序的行为。在生命周期内,一个对象经历了几种状态,因此生命周期一直存在,直到程序执行为止。每个状态都描述了一些有关对象的有用信息。
它设计了一个交互式系统,可对内部事件或外部事件做出响应。从一个状态到另一状态的执行流程由状态机图表示。它可视化了从创建到终止的对象状态。
主要目的是描绘单个对象的每种状态。它代表一个交互式系统以及系统内部的实体。它记录了系统的动态行为。
以下是下面列出的状态机图的符号:
UML包含三个状态:
状态机图用于描述对象经历的各种状态。从一种状态到另一种状态的变化是由于某个事件的发生。在绘制状态机图之前,必须确定特定组件的所有可能状态。
状态机图的主要焦点是描绘系统的状态。这些状态在绘制状态转换图时至关重要。在执行状态机图之前,必须确认发生状态转换的对象,状态和事件。
以下是绘制状态机图时要结合的步骤:
状态机图实现了真实世界的模型以及面向对象的系统。它记录了系统的动态行为,用于区分系统的动态行为和静态行为。
它描绘了对象从开始到结束所经历的变化。它基本上设想了触发事件如何导致系统内的更改。
状态机图用于:
下面给出了显示银行自动柜员机(ATM)的顶级状态机图的示例。
最初,自动柜员机是关闭的。打开电源后,ATM开始执行启动操作并进入自检状态。如果测试失败,则ATM会进入“服务停止”状态,或者将经历无触发的过渡到“空闲”状态。这是客户等待交互的状态。
每当客户将银行卡或信用卡插入ATM的读卡器中时,ATM状态就会从“空闲”更改为“服务客户” ,进入服务客户状态后便会执行输入操作readCard。由于客户可以随时取消交易,因此取消事件可以触发从“服务客户”状态回到“空闲”状态的转换。
在这里,“服务客户”是一个复合状态,具有依次为“客户身份验证”,“选择交易”和“交易”的子状态。
客户身份验证和交易是复合状态,其本身由隐藏的分解指示图标显示。交易完成后,服务客户将无触发地转换回空闲状态。在离开状态时,它会经历退出操作弹出卡,该弹出卡排出客户卡。
State Machine | Flowchart |
---|---|
It portrays several states of a system. | It demonstrates the execution flow of a program. |
It encompasses the concept of WAIT, i.e., wait for an event or an action. | It does not constitute the concept of WAIT. |
It is for real-world modeling systems. | It envisions the branching sequence of a system. |
It is a modeling diagram. | It is a data flow diagram (DFD) |
It is concerned with several states of a system. | It focuses on control flow and path. |