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

时间:2011-12-11 20:14:40

标签: java uml dsl state-machine

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

4 个答案:

答案 0 :(得分:5)

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

  • Harel Statecharts
  • 视觉语言
  • Textual DSL
  • 生成Java
  • 生成C
  • 生成C ++
  • 生成可配置/可自定义
  • 基于Eclipse
  • 开源
  • 模拟
  • 历史和深刻历史

答案 1 :(得分:3)

有一个用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

答案 2 :(得分:1)

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

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

https://github.com/joachimhs/JavaKI

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

答案 3 :(得分:1)

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