- UML 教程
- UML - 首页
- UML - 概述
- UML - 构建块
- UML - 架构
- UML - 建模类型
- UML - 基本符号
- UML - 标准图
- UML - 类图
- UML - 对象图
- UML - 组件图
- UML - 部署图
- UML - 用例图
- UML - 交互图
- UML - 状态图
- UML - 活动图
- UML - 总结
- UML 2.0 概述
- UML 2.0 - 概述
- UML 有用资源
- UML - 有用资源
- UML - 知识测试
- 实用工具
- UML - 工具与实用工具
- UML - 讨论
UML - 状态图
图的名称本身就阐明了图的目的和其他细节。它描述了系统中组件的不同状态。这些状态特定于系统的组件/对象。
状态图描述了一个状态机。状态机可以定义为一个机器,它定义了对象的不同状态,而这些状态受外部或内部事件控制。
下一章中解释的活动图是一种特殊的状态图。由于状态图定义了状态,因此它用于对对象的整个生命周期进行建模。
状态图的目的
状态图是用于对系统动态特性进行建模的五个 UML 图之一。它们定义了对象在其生命周期中的不同状态,并且这些状态会因事件而改变。状态图可用于对反应式系统进行建模。反应式系统可以定义为对外部或内部事件做出响应的系统。
状态图描述了从一个状态到另一个状态的控制流。状态被定义为对象存在的一种条件,当触发某些事件时,它会发生变化。状态图最重要的目的是对对象从创建到终止的生命周期进行建模。
状态图也用于系统的正向和反向工程。但是,主要目的是对反应式系统进行建模。
以下是使用状态图的主要目的:
对系统的动态方面进行建模。
对反应式系统的生命周期进行建模。
描述对象在其生命周期中的不同状态。
定义状态机来对对象的状态进行建模。
如何绘制状态图?
状态图用于描述对象在其生命周期中不同状态。重点放在某些内部或外部事件发生时状态的变化上。这些对象的状态对于分析和准确实现它们非常重要。
状态图对于描述状态非常重要。状态可以识别为当特定事件发生时对象的条件。
在绘制状态图之前,我们应该阐明以下几点:
确定要分析的重要对象。
识别状态。
识别事件。
以下是一个状态图示例,其中分析了 Order 对象的状态
第一个状态是空闲状态,进程从此开始。接下来的状态是针对发送请求、确认请求和调度订单等事件而到达的。这些事件是导致订单对象状态更改的原因。
在对象(此处为订单对象)的生命周期中,它会经历以下状态,并且可能存在一些异常退出。此异常退出可能是由于系统中的一些问题引起的。当整个生命周期完成后,它被认为是一个完整的交易,如下面的图所示。对象的初始状态和最终状态也显示在下面的图中。
在何处使用状态图?
从上面的讨论中,我们可以定义状态图的实际应用。状态图用于对系统的动态方面进行建模,就像本教程中讨论的其他四个图一样。但是,它具有一些用于建模动态特性的独特特征。
状态图定义了组件的状态,并且这些状态更改本质上是动态的。其特定目的是定义由事件触发的状态更改。事件是影响系统的内部或外部因素。
状态图用于对状态以及作用于系统的事件进行建模。在实现系统时,阐明对象在其生命周期中的不同状态非常重要,状态图用于此目的。当这些状态和事件被识别后,它们被用于对它进行建模,并且这些模型在系统实现过程中使用。
如果我们深入了解状态图的实际实现,那么它主要用于分析受事件影响的对象状态。此分析有助于理解系统在执行期间的行为。
主要用途可以描述为:
对系统的对象状态进行建模。
对反应式系统进行建模。反应式系统由反应式对象组成。
识别导致状态更改的事件。
正向和反向工程。