我需要修复我的Alloy图,例如我有这个输出:
我无法移动" node2" " node0"行上的矩形;和" node1",我无法移动" node1"在" node2" whitout也会移动" node0"。有什么解决方案吗?谢谢。
PS:我在Windows下使用Alloy Analyzer 4.2。
PPS:这只是一个例子,我得到一个包含5或6行20-25个矩形的大图,如果我无法手动修复它,那只会是一团糟。
答案 0 :(得分:2)
回答直接的问题:我从来没有找到一种方法让可视化工具改变主意,关于哪些节点应该在同一水平面上。 (这并不意味着它不可能,但它确实意味着,如果可能的话,它不会立即明白如何去做。但我想你已经知道了。 )
如果您的目标是使自动生成的图表更易于阅读,最简单的方法是尝试调整可视化工具主题。 "魔术布局"按钮可以是有帮助的;手动调整隐藏一些节点或显示一些关系作为标签而不是弧可以帮助图表,否则太乱了。
如果你的目标是做一个好的'包含在用于谈话的幻灯片或纸张图形的图表的版本,您可能希望导出到Dot并导入到图形绘制工具中,该工具为您提供所需的手动控制(或编辑.dot如果你熟悉graphviz并且可以使它做你想做的事情,或者导出到XML并从XML生成你选择的图形描述语言。
我希望这会有所帮助。
答案 1 :(得分:0)
Lightning工具是一个Ecplise插件,依靠Alloy4.2正式定义领域特定语言,可能是您问题的解决方案。
它仍处于开发阶段,但如果您只对能够自由重组生成实例的每个原子和标签感兴趣,那么应该没有任何问题,因为它使用Ecplise draw2D来渲染后者。
如果现在您真的对为生成的实例提供直观的可视化感兴趣(通过直观我的意思是更接近其域而不是模型结构的可视化),那么您可以定义自己的语言(使用你的模型作为抽象语法)并为它定义一个具体的语法。
用于安装该工具的更新站点是:http://lightning.gforge.uni.lu/update-site
如果您打算试一试并解决任何问题,请随时与我联系。 (我渴望建设性的反馈;-))
生成可以移动任何组件的图形实例的步骤如下: