有一种使用Pharo Smalltalk编写的Harel状态图DSL,并在OBJEKTspektrum上发布:
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出现,因此可以很容易地被您的Scala类继承,而该类可能会被您的Java程序使用。 您可以在这里找到它:http://dl.dropbox.com/u/4548797/AuDSLinScala-src.zip
我开发了一个库,用于跟踪应用程序中的状态并在状态之间切换,称为JavaKI。这基于现在是SproutCore JavaScript框架一部分的KI框架。两者都基于Harel图表。
目前,JavaKI不支持历史状态,但如果您需要,欢迎实现此功能。JavaKI基于Java并获得了MIT许可证。
https://github.com/joachimhs/JavaKI
使用JavaKI,您可以在“普通的Java”中定义状态和状态图。