2024-03-03 08:00:04

UML箭头的解释

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

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

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


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


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

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

5: Association: A relationship between the members of two classifiers. 5a: Aggregation: An association representing a shared ownership relationship. The Aggregation property of the owner role is set to Shared. 5b: Composition: An association representing a whole-part relationship. The Aggregation property of the owner role is set to Composite. 9: Generalization: The specific classifier inherits part of its definition from the general classifier. The general classifier is at the arrow end of the connector. Attributes, associations, and operations are inherited by the specific classifier. Use the Inheritance tool to create a generalization between two classifiers.

13: Import:包之间的关系,表示一个 包包含另一个包的所有定义。 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)

如果你想要一个更完整的答案,并且有更多的时间,这里有一个详细的解释。


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


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


Aggregations and compositions are a little bit confusing. However, think like compositions are a stronger version of aggregation. What does that mean? Let's take an example: (Aggregation) 1. Take a classroom and students: In this case, we try to analyze the relationship between them. A classroom has a relationship with students. That means classroom comprises of one or many students. Even if we remove the Classroom class, the Students class does not need to destroy, which means we can use Student class independently.

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

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

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