我是否应该在Alloy“子模块”中找到踪迹

时间:2019-01-29 16:56:26

标签: alloy

这是一个“最佳做法”问题,而不是语言本身的问题。

我正在按照Software Abstraction一书中的建议将项目分解为模块。我在自己的单独文件中为较大模型的每个小片段都具有签名,事实和谓词。我已将它们正确包含在“主文件”中。

对于一些较小的模块,我发现通过在该级别添加跟踪来“证明”设计很有用。尽管跟踪只是事实,所以当我运行在主文件中创建的跟踪时,会得到奇怪的结果(“一次两个时间步长”,等等)。

我看到两个选项(在其中两个选项之后,我都可以完成我的主文件跟踪):

  1. 注释掉“子模块”中的痕迹
  2. 使“子模块”的跟踪限制少一些,以允许发生什么的选项

这两个看起来都正确吗?还是这通常是不同的?

1 个答案:

答案 0 :(得分:1)

我在使用Alloy时发现的最好的事情之一是不使用事实,而是使用谓词。您可以控制在运行或断言中哪些谓词是活动的。您可以始终合并谓词,因此带来的不便之处不大。