关于UML类图的问题?

时间:2014-01-31 05:14:54

标签: uml

您好我有一些关于UML类图的问题,我们将不胜感激任何帮助

1)如何在属性中显示指针?

2)多重性?

3)构图箭头应该指向什么方向?

4)你如何把枚举?

2 个答案:

答案 0 :(得分:1)

根据当前的UML标准2.4.1和下一个2.5(它几乎只有更简单的文档):

  • 指针/参考应显示为箭头,在参考端有小黑圈(点)。如果它不是指针对象具有的属性,但以任何方式计数,则会出现没有点的箭头。如果线条两侧都有箭头,则可以省略两个箭头。但不是点!如果箭头只在一侧并且你知道,那么另一边应该没有人,这个空端应该用十字架签名

在你应该理解的其他事情之前

协会是什么

  • 从A到B的关联显示为A和B之间的实线。它可以表示将A的类/实例与B的类/实例连接的一种结构。结构可以是任何种类并属于任何地方。所有关于该行的信息都描述了这种结构。
  • 如果有两个结构,一个结构连接A的一个实例和B的实例,另一个结构连接B的实例和A的实例,则可以在一个关联中显示它们。然后,关于其B端写入的信息描述第一结构(b-> a),关于另一端的信息描述另一结构。
  • 如果您有多个结构从A到B引导,则必须绘制两个不同的关联。
  • 如果连接结构很复杂,您可以将其表示为关联类。在那里你可以定义更多细节。
  • 连接结构可以连接两个以上的类,然后它将显示为一个大的菱形,并且具有到这些类的实心分支。它还是联想!注意:现有工具非常支持这两个更复杂的关联。您可以轻松地创建一些绝对无意义的东西。他们很难。小心使用。

example Class diagram


  • 多重性。
    • 一个结构的情况:关联两端的多重性显示,结构控制的这个相邻类的实例数。
    • 两种结构的情况:A-B关联的A端的多重性表示,A的多少个实例由从B引导到A的结构控制。它在B侧有0或1。另一侧的数字属于 另一个 结构。
  • 如果还不够,可以对这两种结构使用两种关联。

是的,这不容易,抱歉。但它更容易,“更容易”2.5 UML标准的文本。简单的解释是错误的,使用它你会很快遇到任何实际任务中的问题。

  • 组成和关于它。

    • 只有一个作品“箭头”,正如你所说,它被称为黑色或完整的钻石。当然,它位于容器一侧,而不是。另一个,空白钻石,被称为“共享聚合”,或者,简称为“共享”。它没有严格定义,您可以使用它创建自己的标准。当然,将它放在项目 - 容器关联的项目方面是愚蠢的。但它很容易在关联的两端。
    • 为什么组合钻石只能在一边?因为组合意味着,只有在容器(或容器本身)存在引用它们时才存在这些项目。当然,这对双方都不利。
    • 通常,您可以看到“共享聚合”的名称“聚合”。这是一个不好的错误。因为,根据标准compositionshared甚至none,所有三个都是聚合。有人混合了父母和子女的条款。
  • 简单的旧枚举很简单 - 它们有一种类块,@ MagicMan正确地说。但它们已经过时了。如果您使用更详细的Java的枚举类型(当然,其他语言也有它),并且您为不同的项目设置了不同的字段或函数,您必须为它们使用块,只有你自己必须创建自己的构造型(如果你的工具还没有),并为其设置适当的类块。

修改:

因此,简单的指针是带点的箭头。但如果存在另一个后导航,则根本没有箭头,只有点(s)。

在C ++实例中,A可以使B实例不是指针,而是直接。它没有特殊的UML符号,它应该以与普通的指针属性相同的方式显示。

答案 1 :(得分:0)

1)对于单向关联(指针),常见的方式是这样的:---->,但显然正确的方法是在末尾添加一个点来表示引用的一面:---->* < / p>

2)Multiplicty是它可以运行的范围,如(0..1)所示,即指针可以为null,因此零指定它可以有0到1个目标对象

3)组合箭头属于包含对象的一侧:Container<>-----Child

4)我看到他们的代表是这样的:

_______________________
|   <<enumeration>>   |
|       Colors        |
|_____________________|
| Red                 |
| Green               |
| Blue                |
| ...                 |
|_____________________|

一个好的UML备忘单:Link