是否有适用于Java的Harel Statechart DSL工具?

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

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

  • Harel Statecharts
  • 视觉语言
  • 文字DSL
  • 生成Java
  • 生成C.
  • 生成C ++
  • 生成可配置/可定制
  • 基于Eclipse的
  • 开源
  • 模拟
  • 历史和深刻的历史

有一个用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
唉,这是德语。 但是,代码是英文的:
http://www.squeaksource.com/AuDSL3.html

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

如果你想做这个港口,我们很乐意帮忙(krasemann@acm.org)。
我们还没有完成它。

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

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

目前,JavaKI不支持历史状态,但如果需要,欢迎您实现此function。 JavaKI是基于Java的,并根据MIT许可证进行许可。

https://github.com/joachimhs/JavaKI

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

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