有什么方法可以手动修复 Alloy 分析器图表吗?

Is there any method for fix manually an Alloy Analyzer graph?

我需要修正我的 Alloy 图表,例如我有这个输出:

我无法将 "node2" 矩形移动到 "node0" 和 "node1" 的行上,我也无法将 "node1" 移动到 "node2" 下也动"node0"。有什么解决办法吗?谢谢你。

PS:我在 Windows.

下使用 Alloy Analyzer 4.2

PPS: 这只是一个例子,我得到一个大图,有 5 行或 6 行,每行 20-25 个矩形,如果我不能手动修复它,那只会是一团糟。

回答直接的问题:我从来没有找到一种方法来让可视化工具改变它对哪些节点应该在同一水平面上的想法。 (这并不完全意味着这是不可能的,但它确实意味着如果可能的话,如何去做并不是很明显。但我想你已经知道了。)

如果您的目标是使自动生成的图表更易于阅读,最简单的方法是尝试调整可视化工具主题。 "Magic Layout" 按钮可能会有帮助;手动调整以隐藏某些节点或将某些关系显示为标签而不是弧线,这有助于处理过于混乱的图表。

如果您的目标是制作图表的 'good' 版本以包含在演讲的幻灯片或论文的图表中,您可能想要导出到 Dot 并导入到绘图中为您提供您想要的手动控制类型的工具(或者您自己编辑 .dot 文件,如果您熟悉 graphviz 并且可以让它做您想要的事情),或者导出到 XML 并生成图形描述语言您从 XML.

中选择

希望对您有所帮助。

Lightning 工具是一个依赖 Alloy4.2 正式定义领域特定语言的 Ecplise 插件,可能是您问题的解决方案。

它仍在开发中,但如果您只对能够自由重组生成实例的每个原子和标签感兴趣,应该没有任何问题,因为它使用 Ecplise draw2D 来渲染后者。

如果现在您真的有兴趣为生成的实例提供直观的可视化(我所说的直观是指更接近其领域而不是模型结构的可视化),那么您可以定义自己的语言(将您的模型作为抽象语法)并为其定义具体语法。

用于安装该工具的更新站点是:http://lightning.gforge.uni.lu/update-site

如果您打算试一试并遇到任何问题,请随时与我联系。 (我渴望得到建设性的反馈 ;-) )

生成可以在其中移动任何组件的图形实例的步骤是:

  1. 安装闪电
  2. 创建一个新的 Lightning 项目
  3. 在此项目中创建新语言
  4. 将模型放入 ASM 文件夹
  5. 通过 "running the project"
  6. 生成语言实例