2013-10-30 25 views
0

我已收到以下UML图实施:这个关系可以用UML建模吗?

enter image description here

从问题描述我知道

  • 每美孚只能属于分块。
  • 每个酒吧都属于Block。
  • 酒吧可以不属于同一个Block的一个或多个Foo的

这是什么UML图表示,如果没有, 怎么能说明关系在UML表示?

换句话说:如果两者都属于同一个Block,则Foo和Bar之间的关系只能存在 。我被告知图中的 聚合(菱形)确保这是真实的。我已经问了another question关于同样的问题。

+0

莫非关系用组合而不是聚合来表达? – bbuser

回答

2

您的图表正常。为了表达要求酒吧的Foos必须位于酒吧的同一个区块中,您需要所谓的约束。在UML中,约束条件通常在Object Constraint Language(OCL)中制定。

你的约束可以这样写:

context Bar 
inv: self.foo -> forAll(t | t.block = self.block) 
+0

那么这个图中的聚合与Foo和Bar之间的关系没有关系吗? OCL要求是完全不同的并且与聚合分开的东西? – bbuser

相关问题