在这些日子里,我正在设计一个非常复杂的软件,只有使用经过深思熟虑的状态机才能体面地设计它。我的问题是,超过一定程度的复杂性,在一张纸上绘制状态机变得一团糟!
有没有可以自动排版的软件?我正在寻找具有以下功能的东西:
- 语言不可知论;
- 基于一些状态定义语言;
- 某种程度上类似于Graphviz Dot(从布局的角度来看),但支持状态机语义,而不仅仅是通用图;
- 可能像言论一样自由,而不是啤酒;
- 可能允许结果图的矢量输出。
谢谢你的帮助 :)
在这些日子里,我正在设计一个非常复杂的软件,只有使用经过深思熟虑的状态机才能体面地设计它。我的问题是,超过一定程度的复杂性,在一张纸上绘制状态机变得一团糟!
有没有可以自动排版的软件?我正在寻找具有以下功能的东西:
谢谢你的帮助 :)
虽然通常不被认为是状态机表示,但杰克逊结构化编程图可以这样使用。当应用程序涉及大量数据操作时,我更喜欢它们而不是状态转换图。它们可以显示整体情况,并为附在图表叶子上的数据操作提供大量空间。
我在搜索中发现了以下两个工具:
杰克逊工作台这是由杰克逊方法的创始人生产的。我熟悉他们的旧工具。这些旧工具在语法上支持状态机的所有结构——循环;选项; 和状态序列。它们提供了一种内部语言,它是一种状态机语言。它们还支持从选择和迭代中回溯的 JSD 概念。较旧的工具不支持状态机的某些改进——至少完成一次的循环;前缀、中缀和后缀;和嵌套状态机。我不知道这些改进是否在当前工具中可用。这个工具可能很昂贵,尽管我手头没有任何成本。
制作杰克逊图。我没有关于这个工具的信息。它似乎只是一个图表制作者,并且仅基于 Mac。目前尚不清楚它是否支持状态图语义的任何方面,但它是免费的。