UML箭头的说明

fay*_*aya 223 oop uml

我最近一直在研究UML,并在类之间用普通的普通箭头绘制简单的图表,但我知道这还不够.还有很多其他箭头:概括,实现等对图解读者有意义.

是否有一个很好的资源可以解释每个箭头(普通,普通,点缀,钻石填充,钻石)?

如果它有一些代码示例,那将是最好的.

Est*_*SFT 451

以下是Visual Studio 2015文档的一些解释:

UML类图:参考:https://msdn.microsoft.com/library/dd409437%28VS.140%29.aspx

UML类图

5:关联:两个分类器成员之间的关系.

5a:聚合:表示共享所有权关系的关联.所有者角色的 Aggregation属性设置为Shared.

5b:组成:表示整体关系的关联. 所有者角色的Aggregation属性设置为Composite.

9:泛化:特定分类器从一般分类器继承其定义的一部分.常规分类器位于连接器的箭头末端.属性,关联和操作由特定分类器继承.使用" 继承"工具在两个分类器之间创建泛化.

包图

13:导入:包之间的关系,表示一个包包含另一个包的所有定义.

14:依赖关系:如果箭头端的分类器发生更改,则依赖分类器的定义或实现可能会更改.

实现关系

15:实现:该类实现接口定义的操作和属性.使用继承工具在类和接口之间创建实现.

16:实现:相同关系的另一种表达方式.棒棒糖符号上的标签标识界面.

UML类图:指南:http://msdn.microsoft.com/library/dd409416%28VS.140%29.aspx

协会的属性

聚合:在连接器的一端显示为菱形.您可以使用它来指示聚合角色的实例拥有或包含另一个实例.

是否可导航:如果仅对一个角色为真,则会在可导航方向上显示箭头.您可以使用它来指示软件中链接和数据库关系的可导航性.


泛化:泛化意味着specialized或derived类型继承general或base类型的属性,操作和关联.常规类型出现在关系的箭头末端.

实现:实现意味着类实现接口指定的属性和操作.界面位于连接器的箭头端.

如果您有更多问题,请与我们联系.

  • 这两者仅表示订单商品属于订单且无法移动,而菜单项可以调整 - 用户可以更改菜单项的位置.这是选择的解决方案.为什么不? (4认同)
  • @JMD,订单项目也可以移动。复合聚合在 UML 规范中定义如下: 复合聚合是一种强聚合形式,要求一次最多将一个部分对象包含在一个复合对象中。如果删除复合对象,则其所有作为对象的部分实例也会随之删除。在删除复合对象之前,部分对象可以(在另外允许的情况下)从复合对象中移除,因此不会作为复合对象的一部分被删除。 (3认同)
  • @aGer谢谢,我已经更新了主题和图片链接. (2认同)

art*_*dev 128

在此输入图像描述

在此输入图像描述

我认为这些照片是可以理解的.

  • 在图中,Realization 重复了两次,但图像不同。请问您能详细说明一下区别吗? (5认同)
  • 其中一些概念不是重叠的吗?A 依赖于 B。A 可以访问 B。不是关联总是依赖关系,依赖关系总是关联关系吗? (3认同)

The*_*Pea 20

一个很好的备忘单:http: //loufranco.com/wp-content/uploads/2012/11/cheatsheet.pdf

它涵盖:

  • 类图
  • 序列图
  • 包装图
  • 对象图
  • 用例图

并提供一些样本.

  • 在过去的30分钟里,我一直在寻找这个.我知道这些概念,我只是忘记了符号. (3认同)

小智 13

我最喜欢的UML"备忘单"是Martin Fowler的UML Distilled.这是我读过的唯一一本我推荐的书.

  • 对于"备忘单"来说,185页似乎有点过分了! (9认同)
  • 有趣的是,我非常喜欢重构。您对此有意见吗? (2认同)

Sib*_*lja 12

这是简化的教程:

实用的UML

对于更多我建议获得一些文献.


小智 9

为了快速参考以及简明扼要的示例,Allen Holub的UML快速参考非常出色:

http://www.holub.com/goodies/uml/

(表格的第一列中有很多箭头和指针的具体示例,第二列中有说明.)


Kar*_* W. 6

一个非常容易理解的描述是yuml的文档,包含类图,用例和活动的示例.


Mak*_*ebi 6

接受的答案是说,它缺少一些解释。例如,单向关联和双向关联有什么区别?在提供的示例中,两者都存在。(箭头中的两个'5')

如果要寻找更完整的答案并有更多时间,这里有一个详尽的解释。


小智 5

聚合和组合有点令人困惑。然而,像组合一样思考是聚合的更强版本。这意味着什么?举个例子:(聚合) 1. 以一个教室和学生为例:在这个例子中,我们尝试分析他们之间的关系。课堂与学生存在着 一定的关系。这意味着教室由一名或多名学生组成。即使我们删除Classroom类,Students类也不需要销毁,这意味着我们可以独立使用Student类。

(作文) 2.看一下页面和书类。在这种情况下,页面是 一本书,这意味着页面的集合构成了这本书。如果我们删除 book 类,整个 Page 类将被销毁。这意味着我们不能独立使用页面的类。

如果你对这个话题还不清楚,请观看这​​个精彩的短视频,它已经更清楚地解释了聚合。

https://www.youtube.com/watch?v=d5ecYmyFZW0