我正在寻找一种了解DSL的工具,我可以在其中定义生成Java代码的状态图,或者DSL中的状态图可以按原样运行。理想情况下,该工具将用Java编写,并且必须通过Harel Statecharts(或等效的UML 2状态机)的定义来支持上层和正交区域。或者,用这种DSL编写最好的库或工具是什么?
答案 0 :(得分:5)
Yakindu看起来不错:http://www.statecharts.org
答案 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)