UML:不相交与重叠的学术废料?

时间:2010-01-06 21:24:20

标签: uml

这不是一个真正的编程(编码)问题,对不起(但设计是第一位的)。

我不明白disjointoverlapping之间的区别。它出现在几本书中,与OCL有关系,被认为是UML的一部分,但OMG最新的OCL规范不再提及这些术语;因此,对我来说,它似乎有些不明确。如果有人能澄清这背后的原因,我将不胜感激。它只是同一个超类的多重继承吗?

2 个答案:

答案 0 :(得分:6)

想象一下,超类A有两个子类B和C.

我们说A,B和C之间的继承关系是不相交的,当A实例不能同时是B实例和C实例时(即超类型的实例最多只出现在子类中)。否则,我们说继承集重叠

默认情况下,OO语言中的继承实现是不相交的。

答案 1 :(得分:1)

目前的2.2上层结构规范,第76页(印刷版),第7.3.21节,引用如下。它与泛化规则和集合论有关。您可以在Web上搜索子类型和不相交并阅读非UML示例,它们应该适用。虽然图7.4 8看起来很有用,但是在第78页开始的示例中。好的,我读了规范中的示例,他们把它钉了下来,但是有图片所以我不能轻易复制那些。

一个例子中的文字:{完整,不相交}

  

因为这个   GeneralizationSet是分区的(即,被约束为完整且不相交),Person的每个实例必须是a   女性或男性;也就是说,它必须是一个或另一个而不是两者。

http://www.omg.org/spec/UML/2.2/Superstructure/PDF/

规范列出了所有组合。