Properties 如何在UML中使用子集属性?

Properties 如何在UML中使用子集属性?,properties,eclipse-plugin,uml,ooad,Properties,Eclipse Plugin,Uml,Ooad,子集属性在UML规范图中被广泛使用 子集属性的语义(含义)是什么 如何使用UML子集属性 一个真实的例子会很好 编辑: 以下是UML规范2.5(测试版)的截图 你能告诉我这个图中的子集是什么意思吗? 根据UML2.4.1规范,子集属性引用该属性被约束为子集的属性。 你所说的真实例子是什么意思?我想UML规范就是其中之一。。。 但是您可能会在所有应用程序中发现这种属性,在这些应用程序中,一个对象与另一个对象关联,并且这种关联是在它们的两个子类型的上下文中重新定义的。 例如,动物类可以与肢体类相

子集属性在UML规范图中被广泛使用

  • 子集属性的语义(含义)是什么
  • 如何使用UML子集属性
一个真实的例子会很好

编辑: 以下是UML规范2.5(测试版)的截图

你能告诉我这个图中的子集是什么意思吗?

根据UML2.4.1规范,子集属性引用该属性被约束为子集的属性。 你所说的真实例子是什么意思?我想UML规范就是其中之一。。。 但是您可能会在所有应用程序中发现这种属性,在这些应用程序中,一个对象与另一个对象关联,并且这种关联是在它们的两个子类型的上下文中重新定义的。 例如,
动物
类可以与
肢体
类相关联。我们还可以定义两个类
人类
腿部
分别扩展
动物
四肢
。最后,我们可以关联
人类
腿部
,这将是对先前存在的关联的重新定义

希望有帮助, BR

简短回答 由于有两个约束可能会产生问题,并且它们之间有一定的相关性(它们让我想到了这个问题;-),让我来描述这两个约束,即子集和重定义

总而言之-为同一关系重新定义模型的更改(提供更精确的)逻辑,但在专用类中,而子集显示同一类的不同关系之间的关系(它们可能是继承的,但不一定是继承的)并显示位于一个关系中的对象创建位于另一个关系中的对象的子集

更详细的回答 重新定义 为链接到关系的类的专门化以某种方式重新定义关系逻辑的更改。例如,虽然动物可以有任意数量的四肢(章鱼8和蜈蚣-谁知道…),但人类总是有4条。因此,我们有一个从人类到肢体的关系,目标名称为肢体,但多重性发生了变化(变为4)。 图1-正常肢体-重新定义

还可能有进一步的变化,比如我们可能定义一个专门化Limb的新类JointLimb。由于人类只有JointLimb,我们的关系不仅会改变多样性,而且在关系的两端只允许一个特殊的类。 图2-关节肢体-重新定义

子集 另一方面,子集显示处于一个关系(具有子集约束)中的对象同时也处于某个其他关系(指向子集约束的对象)中,即关系1中的对象集是关系2中对象的子集。在我们的例子中,我们将有新的类Hand和Leg专门化类Limb(或后一个例子中的JointLimb)。由于每只手(分别是腿)都是一个肢体(JointLimb),人与手(腿)之间的关系将具有多重性2,目标名称为手(腿),并将受到肢体子集的约束。 图3-正常肢体-子集 图4-JointLimb-子集

在前面的例子中,我们有一个与继承相关的子集,但不一定是这样。让我们考虑等级汽车和阶级车轮。一辆汽车装有车轮(这是一种关系装备车轮),其中一些车轮(例如,4个用于乘用车)是安装车轮,而另一些车轮(1个用于乘用车)是备用车轮。安装的车轮和备用车轮都配有车轮。 图5-车辆-子集

很抱歉,我还不能放置图片,也不能放置超过2个链接,因此您必须按照下面的说明查看示例


希望能有所帮助。

感谢@Red beard对我的善意帮助:)#我所说的真实世界的例子是来自物理世界(狗、人等)的例子,它帮助我理解了子财产#是的,我可以在规范中找到这种类型的属性,但我不能像我问题的编辑部分中的那样理解它#在您的示例中,可以在哪里找到
子集属性
子集属性
#你的回答让我觉得专业化和重新定义是一样的?这就是你想说的吗?嗨,我更新了我的前一篇文章,以便澄清一下。现在,如果看一下7.3.45节约束部分中的UML2.4.1规范,第四个约束描述为“重新定义的属性必须从包含重新定义属性的更通用的分类器继承”。所以,是的,子设置属性与类继承有关。