0

我收到了下面的UML图来实现:

在此处输入图像描述

从问题描述中我知道

  • 每个 Foo 都完全属于 Block。
  • 每个 Bar 都完全属于 Block。
  • 一个 Bar 可以不属于同一个 Block的一个或多个 Foo 。

这就是 UML 图所表达的吗?如果不是,那么所描述的关系如何用 UML 来表达?

换句话说:Foo和Bar之间的关系只有在都属于同一个Block的情况下才能存在。有人告诉我,图中的聚合(菱形)确保这是真的。

我问过另一个关于同样问题的问题。

4

3 回答 3

2

你的图没问题。为了表达 bar 的 Foos 必须在 Bar 的同一个 Block 中的要求,您需要所谓的约束。在 UML 中,约束通常用对象约束语言(OCL) 来表述。

你的约束可以这样写:

context Bar
inv: self.foo -> forAll(t |  t.block = self.block)
于 2013-10-30T18:43:04.723 回答
1

http://www.omg.org/spec/UML/2.5/Beta1/PDF/第 194 页(在文件 204 中),图 11.5

于 2013-11-01T11:54:04.000 回答
0

另见http://msdl.cs.mcgill.ca/people/tfeng/docs/The%20Unified%20Modeling%20Language%20Reference%20Manual.pdf第 230 页,图 13-70

于 2013-11-01T12:11:01.007 回答