UML箭头的解释

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

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

这将是最好的,如果它将为他们提供一些代码示例。

403591 次浏览

我最喜欢的UML“小抄”是Martin Fowler的UML蒸馏。这是我读过的唯一一本推荐他的书。

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

UML类图:参考: https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2015/modeling/uml-class-diagrams-reference

UML类图

5: 协会:两个分类器成员之间的关系。

5: 聚合:表示共享所有权关系的关联。的 owner角色的Aggregation属性被设置为共享

5 b: 作文:表示整体-部分关系的关联。< >强聚合 owner角色的属性被设置为复合

9: 泛化:特定分类器从一般分类器继承部分定义 分类器。通用分类器位于连接器的箭头端。属性、关联和 操作由特定的分类器继承。使用继承工具创建一个

包装箱图

13: 进口:包之间的关系,表示一个

.包包含另一个包的所有定义

14: 依赖:依赖分类器的定义或实现可能会改变,如果 修改箭头端分类器

.输出说明

实现关系

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

16: 实现:相同关系的另一种表示。标签上的

.

.

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

关联的属性

聚合:在连接器的一端显示为菱形。你可以用它来 表示聚合角色的实例拥有或包含其他角色的实例

是通航:如果只有一个角色为真,则在可导航方向上出现一个箭头。你可以使用 这表示软件中链接和数据库关系的可导航性


泛化意味着专门化或派生类型继承属性, 操作,以及一般类型或基本类型的关联。一般类型出现在箭头处

.关系结束

实现:实现意味着类实现了属性和指定的操作 接口。

.接口位于连接器箭头端

如果你还有其他问题,请告诉我。

Allen Holub的《UML quick reference》非常优秀,它提供了清晰简洁的示例,便于快速参考:

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

(在表的第一列中有相当多关于箭头和指针的具体示例,在第二列中有描述。)

一个非常容易理解的描述是yuml的文档,其中有类图、用例和活动的示例。

一个不错的小抄(http://loufranco.com/wp-content/uploads/2012/11/cheatsheet.pdf):

它涵盖了:

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

并提供了一些示例。

类图元素,如父到子关系,子类关系,接口和实实者,加上序列图元素

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

如果想要一个更完整的答案,并且有更多的时间,在这里是一个彻底的解释。

enter image description here

enter image description here

我认为这些图片是可以理解的。

如果你更喜欢MOOC,我推荐一门免费的课程,它教你大多数UML图的所有进出,这门课程来自Udacity: https://www.udacity.com/course/software-architecture-design--ud821

聚合和合成有点令人困惑。但是,think like composition是聚合的更强版本。这是什么意思? 让我们举个例子: (聚合) 1. 以教室和学生为例: 在这种情况下,我们试图分析他们之间的关系。课堂与学生的关系。这意味着教室由一个或多个学生组成。即使我们删除了Classroom类,Students类也不需要销毁,这意味着我们可以独立地使用Student类 < p >(作文) 2. 看看页面和书类。 在本例中,页面 一个 book,这意味着页面的集合组成了这本书。如果我们删除book类,整个Page类将被销毁。这意味着我们不能独立地使用页面的类

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

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