【问题标题】:UML class diagram enumUML 类图枚举
【发布时间】:2010-09-29 14:27:02
【问题描述】:

我正在建模一个类图。类的属性是枚举。我该如何建模?通常你会这样做:

- name : string

但是如何用枚举做到这一点?

【问题讨论】:

    标签: class enums uml diagram


    【解决方案1】:

    它们只是这样显示:

    _______________________
    |   <<enumeration>>   |
    |    DaysOfTheWeek    |
    |_____________________|
    | Sunday              |
    | Monday              |
    | Tuesday             |
    | ...                 |
    |_____________________|
    

    然后在它和你的类之间建立一个关联。

    【讨论】:

    • 枚举实际上更像是数据类型而不是 UML 中的类,因此通常不会显示关联,就像您将属性声明为整数类型时一样。如果您的建模工具明确支持枚举,您应该使用它,并且仅在必要时使用 Class + > 构造型表示法作为后备。
    • 你能告诉我在哪里可以找到 ArgoUML 的 > 原型吗?
    • @Tim ArgoUML 对枚举具有一流的支持,因此无需使用构造型
    • &lt;&lt;enumeration&gt;&gt; 实际上不是刻板印象,而是关键字。不幸的是,UML 作者没有进行任何视觉区分。
    【解决方案2】:

    如果您的 UML 建模工具支持指定枚举,您应该使用它。它可能会更容易做,它会给你的模型更强的语义。从视觉上看,结果与带有&lt;&lt;enumeration&gt;&gt; Stereotype 的 Class 非常相似,但在 UML 元模型中,Enumeration 实际上是一个单独的(元)类型。

    +---------------------+
    |   <<enumeration>>   |
    |    DayOfTheWeek     |
    |_____________________|
    | Sunday              |
    | Monday              |
    | Tuesday             |
    | ...                 |
    +---------------------+
    

    定义后,您可以将其用作属性的类型,就像使用数据类型或您自己的类的名称一样。

    +---------------------+
    |        Event        |
    |_____________________|
    | day : DayOfTheWeek  |
    | ...                 |
    +---------------------+
    

    如果您使用 ArgoEclipse 或 ArgoUML,工具栏上有一个下拉菜单,可以在 Datatype、Enumeration、Signal 等之间进行选择,让您可以创建自己的 Enumerations。然后可以使用 EnumerationLiterals 填充通常包含 Attributes 的隔间,以获取您的枚举值。

    这是 ArgoUML 中一个稍微不同的示例的图片:

    【讨论】:

    • 感谢 ArgoUML 截图。
    【解决方案3】:

    通常您将枚举本身建模为具有enum 构造型的类

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多