【问题标题】:Is there a Harel Statechart DSL tool for Java?是否有适用于 Java 的 Harel Statechart DSL 工具?
【发布时间】:2011-12-11 20:14:40
【问题描述】:

我正在寻找一种能够理解 DSL 的工具,我可以在其中定义生成 Java 代码的状态图,或者 DSL 中的状态图可以按原样运行。该工具最好用 Java 编写,并且必须通过 Harel 状态图(或等效的 UML 2 状态机)的定义来支持超状态和正交区域。或者,编写这样一个 DSL 的最佳库或工具是什么?

【问题讨论】:

标签: java uml dsl state-machine


【解决方案1】:

Yakindu 看起来不错:http://www.statecharts.org

  • Harel 状态图
  • 视觉语言
  • 文本 DSL
  • 生成 Java
  • 生成 C
  • 生成 C++
  • 代可配置/可定制
  • 基于 Eclipse
  • 开源
  • 模拟
  • 历史和深厚的历史

【讨论】:

  • Yakindu 很棒;我已编辑您的帖子以包含 C 和 C++ 代码生成目标
【解决方案2】:

有一个用 Pharo Smalltalk 编写并发布在 OBJEKTspektrum 中的 Harel Statechart DSL:
http://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2011/04/krasemann_brauer_crasemann_OS_04_11.pdf
唉,这是德语。但是,代码是英文的:
www.squeaksource.com/AuDSL3.html

这个 DSL 的实现可能很容易被移植到 Scala 解析器组合器, 这意味着,它将可用于 Java。

如果您想做移植,我们很乐意提供帮助 (krasemann@acm.org)。
我们只是还没有完成。

* 添加于 2012-03-17 * Scala 端口现已准备就绪。它以 Scala Trait 的形式出现,因此可以很容易地被 Java 程序使用的 Scala 类继承。 你可以在这里找到它:http://dl.dropbox.com/u/4548797/AuDSLinScala-src.zip

【讨论】:

    【解决方案3】:

    我开发了一个库,用于跟踪状态并在应用程序内的状态之间移动,称为 JavaKI。这是基于现在是 SproutCore JavaScript 框架一部分的 KI 框架。两者都基于 Harel 图表。

    目前,JavaKI 不支持历史状态,但如果您需要,欢迎您实现此功能。 JavaKI 是基于 Java 的,并在 MIT 许可下获得许可。

    https://github.com/joachimhs/JavaKI

    使用 JavaKI,您可以在“Plain Old Java”中定义您的状态和状态图。

    【讨论】:

      【解决方案4】:

      ThingML 是一种文本 DSL,它允许对类似 UML 的状态机(包括复合状态、并行区域等)进行建模。根据 ThingML 规范,可以生成 Java、C 或 JavaScript。一套教程可用here

      【讨论】:

        猜你喜欢
        • 2011-08-19
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多