uml - 状态图与状态机

标签 uml state-machine statechart

我正在准备考试,以前的考试之一的问题是:

enter image description here

网上很多答案都说状态图和状态机是一回事?如果没有,有人可以解释与这个问题有关的区别。

如果有人可以举出两者的例子,那真的会有所帮助。
谢谢

最佳答案

状态图与有限状态机完全不同(我假设这就是“常规”状态机的含义)。状态图指的是 1984 年发明的 Harel 符号,它被提议作为对传统有限状态机的重要符号扩展。

状态图已被合并到 UML 语言中(尽管他们将其称为行为状态机,并且 UML 还支持另一个称为协议(protocol)状态机的概念以增加混淆)。

主要的重要区别在于状态图实际上是一种“分层”状态机。状态可以包含嵌套状态机(在任何深度级别)。除此之外,还添加了正交区域的概念来模拟并行运行的不同子状态图,并且历史状态的概念(浅历史或深历史)可用于记住重新进入时要访问的子状态一个复合状态。

所有这些额外的特性使状态图比简单、扁平的状态机更具可扩展性和表现力。状态图还允许添加与事件相关的操作(在状态内部或在状态之间的转换上)。

存在许多不同的(通常是商业的)工具,它们允许从状态图中完全生成可执行代码或模拟模型行为(例如 StateMate、Rhapsody、Stateflow、Yakindu Statechart Tools、visualSTATE 等等)。它们在工业中也经常使用,主要是在嵌入式和响应式(Reactive)系统领域。

这就是为什么状态图可以被认为是可执行建模的成功案例之一。

关于uml - 状态图与状态机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034913/

相关文章:

Python-如何从 python 代码自动生成 UML 图

c# - 动态状态机的更多 .net 方法

scala - 如何在 Akka FSM 转换期间访问状态

javascript - 使用xstate,是否可以配置一个适用于所有状态并在所有状态和子状态下以相同方式处理的事件?

javascript - 更多 Javascript 状态图框架

uml - 任何在 native Win32 上运行的免费 UML 建模工具?

uml - 如何在UML CLASS DIAGRAM中显示常量?

c# - 如何智能解析xml?(使用状态机?)

algorithm - brainfuck 解释器的状态图

oop - 做Use Case时如何描述算法?