关于UML类图的问题?

关于UML类图的问题?,uml,Uml,您好,我有一些关于UML类图的问题,如有任何帮助,将不胜感激 1) 如何在属性中显示指针 2) 什么是多重性 3) 构图箭头应该是什么方向 4) 如何放置枚举?1)单向关联(指针)的常见方式如下:-->,但显然正确的方法是在末尾添加一个点以指示引用的边:-->* 2) multiplity是它可以运行的范围,如下所示(0..1),即指针可以为空,以便零指定它可以有0到1个目标对象 3) 组合箭头位于包含对象的一侧:容器----Child 4) 我见过他们这样表现: _______________

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

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

2) 什么是多重性

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

4) 如何放置枚举?

1)单向关联(指针)的常见方式如下:
-->
,但显然正确的方法是在末尾添加一个点以指示引用的边:
-->*

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

3) 组合箭头位于包含对象的一侧:
容器----Child

4) 我见过他们这样表现:

_______________________
|   <<enumeration>>   |
|       Colors        |
|_____________________|
| Red                 |
| Green               |
| Blue                |
| ...                 |
|_____________________|
_______________________
|      |
|颜色|
|_____________________|
|红色的|
|绿色的|
|蓝色的|
| ...                 |
|_____________________|

一个好的UML备忘单:

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

  • 指针/参考应显示为箭头,在参考端带有黑色小圆(点)。如果对象的属性不是指针,但它以任何方式计数,则会出现不带点的箭头。如果线的两侧都应有箭头,则可以忽略两个箭头。但不是点!如果箭头只在一边,而你知道,在另一边应该没有人,那么这个空的一端应该有一个十字架
在其他事情之前,你应该明白

什么是协会
  • 从A到B的关联显示为A和B之间的实线。它可以表示一个将A的类/实例C与B的类/实例连接起来的结构。该结构可以是任何类型,并且属于任何位置。所有关于该行的信息都描述了该结构
  • 如果有两个结构,一个结构连接A的一个实例与B的实例,另一个结构连接B的实例与A的实例,则可以在一个关联中显示这两个结构。然后,关于其B端的信息描述了第一个结构(B->a),关于另一端的信息描述了另一个结构
  • 如果有多个结构从A引导到B,则必须绘制两个不同的关联
  • 如果连接结构很复杂,可以将其表示为关联类。您可以在这里定义更多详细信息
  • 连接结构可以连接两个以上的类,然后它将显示为一个大菱形,带有指向这些类的实心分支。它仍然是协会!注意:现有工具对这两个更复杂的关联的支持非常差。你可以很容易地用它们创造出一些毫无意义的东西。而且它们是困难的。小心使用


  • 多样性。
    • 一个结构的情况:关联两端的多重性显示该结构控制的这个相邻类的实例数
    • 两种结构的情况:A-B关联A端的多重性表明,有多少个A实例受从B到A的引导结构控制。B端有0或1。另一侧的数字属于另一个结构
  • 如果这还不够,您可以对这两个结构使用两个关联
是的,很不容易,对不起。但是更简单的是,“Easter”2.5UML标准的文本。简单的解释是错误的,使用它你会很快在任何实际任务中遇到问题

  • 作文和关于它的讨论

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

编辑:

所以,简单的指针是带点的箭头。但如果存在另一个反向导航,则根本不会有箭头,只有点


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

注意!指针/引用通常用箭头表示,但这是不正确的。正确的方法是在关联的引用侧放置一个“点”。箭头仅表示适航性。导航能力可以通过直接引用来表示(以箭头和点的形式显示),但不需要这样做。它可以实现为对…的引用,也可以是g