UML - 状态图


图表的名称本身阐明了图表的目的和其他细节。它描述了系统中组件的不同状态。状态特定于系统的组件/对象。

状态图描述了状态机。状态机可以定义为定义对象的不同状态的机器,这些状态由外部或内部事件控制。

活动图在下一章中解释,是一种特殊的状态图。当状态图定义状态时,它用于模拟对象的生命周期。

状态图的目的

状态图是用于模拟系统动态​​特性的五个UML图之一。它们定义了对象在其生命周期中的不同状态,并且这些状态由事件更改。状态图对于反应系统的建模很有用。可以将反应系统定义为响应外部或内部事件的系统。

状态图描述了从一个状态到另一个状态的控制流。状态被定义为对象存在的条件,并且在触发某个事件时它会发生变化。状态图最重要的目的是模拟对象从创建到终止的生命周期。

状态图也用于系统的正向和反向工程。但是,主要目的是模拟反应系统。

以下是使用状态图的主要目的

  • 模拟系统的动态方面。

  • 模拟反应系统的寿命。

  • 描述对象在其生命周期中的不同状态。

  • 定义状态机以模拟对象的状态。

如何绘制状态图?

状态图用于描述生命周期中不同对象的状态。重点放在一些内部或外部事件的状态变化上。这些对象状态对于准确分析和实现它们非常重要。

状态图对于描述状态非常重要。当特定事件发生时,可以将状态识别为对象的条件。

在绘制状态图之前,我们应该澄清以下几点

  • 确定要分析的重要对象。

  • 确定状态。

  • 确定事件。

以下是状态图的示例,其中分析了Order对象的状态

第一个状态是进程开始的空闲状态。接下来的状态是发送请求,确认请求和发送订单等事件。这些事件负责订单对象的状态更改。

在对象的生命周期(此处为订单对象)期间,它会经历以下状态,并且可能存在一些异常退出。由于系统中的某些问题,可能会发生此异常退出。当整个生命周期完成时,它被视为完整的事务,如下图所示。对象的初始状态和最终状态也显示在下图中。

UML状态图

在哪里使用状态图?

从上面的讨论中,我们可以定义状态图的实际应用。状态图用于模拟系统的动态方面,就像本教程中讨论的其他四个图一样。然而,它具有一些区别于动态性建模的特征。

状态图定义了组件的状态,这些状态变化本质上是动态的。其具体目的是定义事件触发的状态更改。事件是影响系统的内部或外部因素。

状态图用于模拟状态以及在系统上运行的事件。在实现系统时,明确对象在其生命周期中的不同状态非常重要,并且状态图用于此目的。当识别出这些状态和事件时,它们用于对其进行建模,并且在系统的实现期间使用这些模型。

如果我们研究状态图的实际实现,那么它主要用于分析受事件影响的对象状态。此分析有助于了解执行期间的系统行为。

主要用途可以描述为

  • 模拟系统的对象状态。

  • 模拟反应系统。反应系统由反应对象组成。

  • 识别负责状态变化的事件。

  • 正向和反向工程。