"made of"和"made from"在UML中应该属于什么关系?

What kind of relationship should "made of" and "made from" belong to in UML?

请看下面的例子: 1) 椅子是木头做的。 2) 纸是由树制成的。 3) 沼气由废弃物发酵产生。 4) 沥青是通过石油精炼生产的。 这些应该是组合还是依赖?

我不认为任何“由……构成”是由某种静态关系表示的。要制作一把木椅,只需 Depends 在木头上。这里没有其他关系,因为将木头变成椅子需要一些复杂的过程。或一棵树变成纸。或您选择的任何其他内容。为了描述关系,您需要描述过程。这是可能的使用活动。您也可以使用 UML 描述物理组件。但这会让我们离你的问题太远了......

您可以在这里搜索有关作文的答案。但即使是这些也可能引起争议。模拟现实产生模型。这不是现实。

您的问题强调了 ontology 与信息模型或应用程序设计之间的区别。例如,在一个概念性的 ontology 中(它说明了世界上必要和可能的情况,而不是观察和测量的数据格式),每个人都有一个母亲。在特定的数据库或应用程序中,这些知识通常是无关紧要的。什么东西是由什么制成的以及它是如何生产的更多地属于概念性的 ontology,对此 UML 的表现力还不够。这就是为什么使用诸如一阶逻辑 (FOL) 和 OWL 之类的语言,以及为什么某些工具(例如我公司的)会堵塞 UML 中的漏洞的原因。 (UML 中的一个漏洞示例是无法 准确地表达 两个 类 的交集。)

一般

您可以排除 UML 组合:组合意味着排他性所有权。但是椅子并不是唯一的木制品。

依赖性太强(一旦产生沼气,就没有依赖性可以浪费了)或不够(椅子的木头是椅子的一部分;这是一种比需要更紧密的关系-知道)。

此外,不清楚您希望主席是 class 本身还是 class 产品的实例。

具体案例

"Made of" 表示与制造产品的部件之间的关系。这里的典型模式是 bill of material。该关系是一个简单的关联。有些人倾向于使用 UML 聚合,但 UML 规范没有精确定义语义,因此将其省略以避免歧义。

这是一个(非常简化的)图表:

"Made from"表达了一个转化过程,一些原始产品在这个过程中消失,另一些则被创造出来。纸是由从树木中提取的纤维素制成的。但是原来的树不在sheet的paper.

通常在加工工业中,如化学品,这由“配方”表示,这是一系列输入(废物)和获得产品(沼气)和副产品(发酵残余废物)的操作。在其他行业中,这由“工艺路线”表示,它是在 BOM 上执行的一系列操作(在这种情况下,BOM 不仅包含如前所示的组件,还包含由 BOM 中的操作转换的原始产品)路由)。

我不会显示图表,因为这很快就会非常复杂,但同样,它会使用简单的关联。

最终,“made of”和“made from”都将在具有关联的 UML 中表示。但是只有你附加到它的语义才会改变。