从 Alloy 视角与 UML 视角解释图表

Interpreting a diagram from an Alloy perspective versus a UML perspective

Software Abstractions 一书有一个对一组网络进程进行建模的示例。每个进程都连接到另一个进程。为了描述这一点,我在一张纸上画了这张图:

我将该图解释为:每个进程都有一个后续进程。

但后来我开始思考:那是不对的。如果它是一个 UML 模型,那么它是正确的,但它不是 Alloy 模型的正确描述。

经过一番思考,我得出了这样的描述:Process 有一组(原子)值;每个值代表网络中的一个进程。 succ有一组对,每对代表一个进程到另一个进程的连接。 Process 中的每个值恰好与 Process.

中的一个值配对

你同意这个描述吗?您是否同意上图在 Alloy 中表示的内容与在 UML 中所表示的完全不同?

也许上图更适合UML而下图更适合Alloy:

那会是更合适的 Alloy 图吗?

如果您为 UML class 图提供语义作为抽象数据模型(而不是代码草图),您给出的解释似乎是合理的 - Alloy 版本您给出的只是同一解释的形式化。你给出的第二个图是一种实例图,我会用它来为第一个图提供语义:也就是说,class 图的含义是一组可能的实例图。