【问题标题】:Representing something like address example表示类似地址示例的内容
【发布时间】:2015-11-05 16:33:16
【问题描述】:

我对类图中的 UML 感到困惑。 一个人有两个地址,第一个是强制性的,第二个不是。 我该如何表示?

【问题讨论】:

    标签: uml


    【解决方案1】:

    地址最好不要建模为表示对象类型的类,而应建模为复杂数据类型,它表示为用>。对于具有这种数据类型的建模属性,您不会在类图中使用任何关联,而只需使用复杂数据类型的名称Address 作为属性primaryAddresssecondaryAddress 的范围/数据类型。

    【讨论】:

    • 我认为最好的方法是在这种情况下使用数据类型
    • 是的,那将是最好的方法。在类模型/图表中,您将有两个类:一个具有 > 立体类型的类Address,以及一个具有两个属性(如“primaryAddress”和“secondaryAddress”)的普通Person 类,两者都具有@ 987654326@ 作为他们的类型。
    • @gwag 为了 100% 正确,Datatype 不是 Class 上的原型,它是正确的 UML 元类型。符号与添加关键字 «dataType»的类相同
    • @GeertBellekens:感谢您对所涉及的 UML 语义的澄清。然而,我想,实际上,使用通用 UML 工具,没有选择这样的元类型,你必须将它建模为一个类。
    • 我不确定其他工具,但在 Enterprise Architect 中它作为单独的元类型存在。
    【解决方案2】:

    您通常会通过关联的多重性来显示属性和角色名称:

    有关在关联中使用属性/角色的信息,请参阅 cmets。

    【讨论】:

    • 请注意,根据 UML 2.5,您应该使用 关联结束所有权点,而不是导航箭头(点暗示)。见stackoverflow.com/questions/21321446/…
    • 另请注意,将属性复制为属性和关联端是不好的做法,UML 规范不鼓励这样做。
    • @gwag 这就是我问这个问题的原因
    • 实际上关联上的角色和类型化属性是同一事物的不同呈现。我用 Enterprise Architect 勾勒了上面的草图,它提供了从属性派生的角色名称。从我的 POV 来看,应该使用 either 角色或属性。但是由于 UML 没有明确禁止上述渲染,所以它本身并没有错。
    • @gwag 我刚刚看了 p. 221 的 2.5。没有提到任何东西的弃用。这是关于组件图的。附:现在在第209
    猜你喜欢
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    相关资源
    最近更新 更多