2017-10-01 23 views

回答

2

根据UML标准(约关联语义部分11.5.3.1):

适航意味着参加链接在运行时 (一个关联的实例)实例可以被有效地从 实例在访问的协会的另一端。实现这种高效访问的精确机制 是实现特定的。 如果一端不可导航,则从另一端访问可能或不可能 不可能如果是,则可能效率不高

例1

让我们想象一个UserAccountCLearTextPassword之间的关系:

  • 用户帐户不以明文密码存储。它存储了该密码的散列。随着密码质量的散列,您不能从UserAccount导航到ClearTextPassword
  • 相反,使用已知的ClearTextPassword您无法直接找到UserAccount。你首先必须计算散列。最后,可以导航,但效率不高,因为计算可能很重。

例2

让我们想象一下一个安全台账。该分类账中的每个Transaction都由委托User记录。但是分类账不会保留对User的任何参考:它只会保留交易的数字签名。我知道它的第一眼听起来很愚蠢,但想象voting machine that must guarantee anonymity of votes ...

所以有UserTransaction之间的关联:

  • 在任何时间点,您可以验证特定Transaction,如果它是由给定用户记录(存在关联)。
  • 您不能从User导航到他/她记录的Transactions:您错过了仅由用户控制的私钥,您无法计算您不知道的事务的散列提前,因此您无法重新计算签名(这是唯一的连接元素)。
  • 相反,您不能从Transaction导航到User:您可以找到的唯一方法是使用所有用户的公钥验证签名,以找出匹配的签名。这是可行的,肯定会非常低效。
+0

很好的例子。谢谢 :) –

2

我没有现实世界的例子,但它意味着CD一定不知道对方。这是一种反联系。与一个物体的死亡迫使另一个物体死亡的复合聚合体相反。

P.S.在两个审讯单元中带两名嫌犯。他们有一个联系,但不知道另一个的状态。非常构建,但这是我能想到的最好的。