7

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

在此处输入图像描述

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

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

4

5 回答 5

12

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

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

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

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

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

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

于 2016-11-18T14:50:05.110 回答
0

(也许为时已晚)回答这个问题的一个很好的提示可能是状态图本身的基础工作——David Harel 1984 年发表的论文“STATECHARTS: A VISUAL FORMALISM FOR COMPLEX SYSTEMS”。

即:

一个好的状态/事件方法也应该自然地迎合更通用和灵活的语句,例如

(1) “在所有空降状态下,当拉动黄色手柄时,座椅将被弹射”,

(2)“变速箱状态变化与制动系统无关”,

(3) “当按下选择按钮时进入选择模式”,

(4)“显示方式包括时间显示、日期显示和秒表显示”。

条款 (1) 要求能够将状态聚集成超状态,(2) 引入独立性或正交性,(3) 暗示需要比单个事件标记的箭头更一般的转换,以及 (4) 捕获细化的州。

高温高压

于 2018-11-19T15:09:30.027 回答
0

状态:状态是对等待执行转换的系统状态的描述。在此处查找示例

状态机(Finite State Machine):多种状态组合的可视化描述或抽象。状态机可以在任何给定时间恰好处于有限数量的状态之一。

状态图:状态图是一种状态机,其中状态机中的每个状态都可以定义自己的从属状态机,称为子状态。状态图的主要特征是状态可以按层次结构组织。状态图可以在任何给定时间处于多个状态。在此处查找示例

于 2021-11-08T07:40:49.740 回答
0

状态机是一种计算的数学模型,其通用性不如图灵机。术语“状态机”的另一个常见用法是实现该模型并在计算机上运行的代码。

相反,状态是对状态机的描述,通常表示为图表或表格。“图表”这个词在拉丁语中是“纸”的意思,因此它暗示着某种书写或绘制的东西。

状态机有很多种,包括 Mealy、Moore 和 Harel。(我不清楚 Harel 是否定义了一种状态机形式主义或只是一种更好的状态图表示法。)UML 是这些的超集,具有用于底层模型的统一表面表示法。模型和图形符号都描述了可以运行的状态机的设计。表示模型的图形符号可以被视为状态图。

我认为您引用的问题实际上令人困惑和困惑。Harel 1984 年的论文将 Mealy 和 Moore 形式主义称为“传统”,但这个词现在可能也适用于 Harel 的工作。术语“状态图”可能是指 Harel 或 UML,可以映射到 Mealy 或 Moore 状态机。尽管如此,我还是会通过列举差异来回答这个问题。

于 2016-05-05T04:09:51.900 回答
0

在https://stackoverflow.com/a/67067188/2183503上查看我的完整答案,但简而言之,状态图是状态转换图,模块化分解和抽象对于单片代码

HTH(它帮助我理解了差异)。

于 2021-04-13T00:20:52.867 回答