gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:49:43 26 4
gpt4 key购买 nike

子集属性广泛用于 UML 规范图中。

  • 子集属性的语义(含义)是什么?
  • 如何使用 UML 子集属性?

  • 一个真实世界的例子会很棒
    编辑:
    以下来自 UML 规范 2.5(Beta) 的屏幕截图
    你能告诉我这个图中的子集是什么意思吗?
    enter image description here

    最佳答案

    简答

    由于有两个约束可能会产生问题并且它们有些相关(并且它们使我想到了这个问题;-))让我描述它们,即子集和重新定义

    总结 - 重新定义相同关系但在专门类中的模型的更改(提供更精确)逻辑,而子集显示相同类的不同关系之间的关系(它们可能被继承但不必)并显示对象处于一种关系中创建处于另一种关系中的对象的子集。

    更详细的回答

    重新定义

    以某种方式重新定义关系逻辑的变化,用于与关系相关联的类的特化。例如。虽然动物可以有任意数量的肢体( Octopus 8 和蜈蚣 - 谁知道......),但人类总是 4。所以我们有一个从 Human 到 Limb 的关系,目标名称为limb,但多样性改变了(到 4)。
    图 1 - 正常肢体 - 重新定义

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

    子集

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

    虽然在前面的例子中我们有一个与继承有些相关的子集,但不一定是这种情况。让我们考虑类 Car 和类 Wheel。一辆汽车配备了Wheel(这是一个配备Wheel的关系),其中一些(例如客车4个)是mountedWheel,而一些(客车1个)是spareWheel。 mountWheel 和spareWheel 子集都配备了Wheel。
    图 5 - 汽车 - 子集

    对不起,我还不能放图片,也不能放2个以上的链接,所以你必须关注this link查看示例。

    希望有帮助。

    关于properties - 如何在 UML 中使用子集属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20034010/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com