如何在 UML 中对某些关联进行建模?
How to model certain associations in UML?
我应该在 UML class 图中描述电影院、电影和电影发行商之间的以下联系:
- 电影发行商将某部电影借给几家电影院。
- 电影发行商将某部电影借给某家电影院,但不借给其他电影院。
- 最多一个电影发行商将一部电影借给电影院。
- 但是不同电影院的电影可以有不同的电影发行商。
- 电影发行商可以将多部电影借给同一家电影院。
现在我的 UML 图如下所示:
我从以下陈述中推导出了多重性:
- class 电影发行商 - 上面的陈述 3(最多)
- class 电影院 - 上面的陈述 1 和 2:我将这些陈述解释为“电影发行商将电影借给至少 1 家电影院
- class 电影:声明 5(几部电影)
我对陈述 4 非常困惑,我也不确定我对其他陈述的解释。
您可能正朝着多样性的方向前进。但是,您是否发现多个 class 参与同一协会的挑战?
要解决这个问题,您可以:
- 除了电影、发行商和电影院之外,还引入了第四个模拟租赁的对象。
- 在已识别的 classes 之间使用三元关联。
- 使用关联class 来表示三个类别的 pne。但这在这里似乎不合适,因为它不知道电影、电影院和发行商独立于他们的关系而存在。
- 使用关联 class 来展示租金
编辑
鉴于您的图表,我们首先 ,因为它远非显而易见:
The multiplicity says something about how many times an instance may be present in this associations for any given tuple of linked instances.
让我们依次应用它。这将毫无意外地证实你自己的分析:
- 对于给定的
Distributor
和给定的 Cinema
,可以 0..*
Movies
借出。那是 (5).
- 对于给定的
Cinema
和给定的 Movie
,可以有 0..1
Distributor
进行借出。那是 (3)
- 对于给定的
Movie
和给定的 Distributor
,可以借出 1..*
Cinema
。那就是(1)和(2)。 (这也意味着不借电影是没有意义的)
第 4 项缺失,但这只是其他项的结果。 (4) 表示我们拍摄给定的电影:
- 没有人说给定的
Movie
只能有一个 Distributor
。所以我们可以想象同一部电影有多个发行商的情况,不是吗?
- 没有人说给定的
Movie
只显示在一个 Cinema
中。所以我们可以想象同一部电影在几家电影院。
- 两者加在一起,我们有一部电影有几家发行商和几家电影院。
- 现在没有什么要求一对
Cinema
/Distributor
应该只有一个 Movie
(否则 Movie 的多重性将是 0..1
而不是 0..*
- 通过推演,一部电影可以与多家影院和发行商结合,涉及不同的发行商。
我应该在 UML class 图中描述电影院、电影和电影发行商之间的以下联系:
- 电影发行商将某部电影借给几家电影院。
- 电影发行商将某部电影借给某家电影院,但不借给其他电影院。
- 最多一个电影发行商将一部电影借给电影院。
- 但是不同电影院的电影可以有不同的电影发行商。
- 电影发行商可以将多部电影借给同一家电影院。
现在我的 UML 图如下所示:
我从以下陈述中推导出了多重性:
- class 电影发行商 - 上面的陈述 3(最多)
- class 电影院 - 上面的陈述 1 和 2:我将这些陈述解释为“电影发行商将电影借给至少 1 家电影院
- class 电影:声明 5(几部电影)
我对陈述 4 非常困惑,我也不确定我对其他陈述的解释。
您可能正朝着多样性的方向前进。但是,您是否发现多个 class 参与同一协会的挑战?
要解决这个问题,您可以:
- 除了电影、发行商和电影院之外,还引入了第四个模拟租赁的对象。
- 在已识别的 classes 之间使用三元关联。
- 使用关联class 来表示三个类别的 pne。但这在这里似乎不合适,因为它不知道电影、电影院和发行商独立于他们的关系而存在。
- 使用关联 class 来展示租金
编辑
鉴于您的图表,我们首先
The multiplicity says something about how many times an instance may be present in this associations for any given tuple of linked instances.
让我们依次应用它。这将毫无意外地证实你自己的分析:
- 对于给定的
Distributor
和给定的Cinema
,可以0..*
Movies
借出。那是 (5). - 对于给定的
Cinema
和给定的Movie
,可以有0..1
Distributor
进行借出。那是 (3) - 对于给定的
Movie
和给定的Distributor
,可以借出1..*
Cinema
。那就是(1)和(2)。 (这也意味着不借电影是没有意义的)
第 4 项缺失,但这只是其他项的结果。 (4) 表示我们拍摄给定的电影:
- 没有人说给定的
Movie
只能有一个Distributor
。所以我们可以想象同一部电影有多个发行商的情况,不是吗? - 没有人说给定的
Movie
只显示在一个Cinema
中。所以我们可以想象同一部电影在几家电影院。 - 两者加在一起,我们有一部电影有几家发行商和几家电影院。
- 现在没有什么要求一对
Cinema
/Distributor
应该只有一个Movie
(否则 Movie 的多重性将是0..1
而不是0..*
- 通过推演,一部电影可以与多家影院和发行商结合,涉及不同的发行商。