首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Statechart vs Statemachine

Statechart vs Statemachine
EN

Stack Overflow用户
提问于 2016-05-05 02:04:42
回答 5查看 5.1K关注 0票数 7

我正在为一次考试复习,之前的一次考试中有一道题是:

网上有很多答案都说Statecharts和Statemachines是一回事?如果没有,有人能解释一下这个问题的区别吗?

如果有人能给出这两者的例子,那将会非常有帮助。谢谢

EN

回答 5

Stack Overflow用户

发布于 2016-11-18 22:50:05

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

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

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

所有这些额外的特性使得状态图比简单、扁平的状态机更具伸缩性和表现力。Statecharts还允许添加与事件关联的操作(在状态内或状态之间的转换中)。

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

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

票数 12
EN

Stack Overflow用户

发布于 2016-05-05 12:09:52

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

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2018-11-19 23:09:30

(也许太晚了)回答这个问题的一个很好的提示可能是关于状态图本身的基础工作-- David Harel于1984年发表的论文" statecharts :复杂系统的可视化形式主义“。

即:

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

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

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

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

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

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

HTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37034913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档