自动设计状态机

时间:2012-08-24 19:59:00

标签: language-agnostic graph state-machine

在这些日子里,我正在设计一款非常复杂的软件,只有经过深思熟虑的状态机才能正常设计。我的问题是,超过一定程度的复杂性,在一张纸上绘制状态机变得一团糟!

是否有允许自动进行布局的软件?我正在寻找具有以下功能的东西:

  • 语言不可知;
  • 基于某种州定义语言;
  • 以某种方式类似于 Graphviz Dot (从布局的角度来看),但支持状态机语义,而不仅仅是通用图形;
  • 可能在演讲中自由,而不是在啤酒中;
  • 可能允许生成图表的矢量输出。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

虽然通常不被认为是状态机表示,但Jackson结构化编程图可以这样使用。当应用程序涉及大量数据操作时,我更喜欢它们来描述转换图。它们可以显示整体图像,并为附加在图表叶子上的数据操作提供大量空间。

我在搜索中找到了以下两个工具:

Jackson Work Bench这是由杰克逊方法的创始人产生的。我熟悉他们的旧工具。这些旧工具在语法上支持状态机的所有构造 - 循环;选择;和状态序列。它们提供了一种内部语言,它是一种状态机语言。它们还支持JSD从选择和迭代中回溯的概念。较旧的工具不支持状态机的一些改进 - 至少完成一次的循环;前缀,中缀和后缀;和嵌套的状态机。我不知道当前工具中是否提供了这些改进。这个工具可能成本很高,但我再也没有成本。

Make a Jackson Diagram。我没有关于此工具的信息。它似乎只是一个绘图工具,只有Mac。目前尚不清楚它是否支持状态图语义的任何方面,但它是免费的。