UML类图基本画法

摘要:
类图中的关系将一般关系表示为继承或实现关系,将关联关系表示为变量,将依赖关系表示为函数中的参数。两类关联关系处于同一级别,而两类聚合关系处于不同级别,一类是整体,另一类是部分。它要求在一般聚合关系中表示整体的对象负责表示部分的对象的生命周期,复合关系不能共享。

UML类图基本画法第1张

类 简要画法

  • 类有三个单元格的矩形(看上图中的动物类
  • 第一格:类名称(如果是抽象类,名称标注为斜体字)
  • 第二格:类属性名称
  • 第三格:类操作名称

类属性或者操作的访问修改符的标注:

  • public用加号标注
  • private用减号标注
  • protected用#号标注

接口 简要画法

  • 接口有两个单元格的矩形(看上图中的飞翔接口)
  • 第一格:接口名称(名称前面要加入接口标注<>)
  • 第二格:操作名称

属性或者操作的访问修改符的标注:同类

继承关系 简要画法

  • 继承关系简单介绍:类似is-a的关系,如:猫是一个动物
  • 鸟类+实线+空心三角形+动物类(即鸟类继承动物类,参考上图中的标注①)
  • 箭头方向说明:箭头方向由子类指向父类

接口实现关系 简要画法

  • 简单介绍:接口表达的是一种has-a的关系,即拥有这类接口的操作,如:猫可以实现爬树的接口
  • 大雁类+虚线+空心三角形+飞翔接口(即大雁类实现了接口飞翔,参考上图中的标注②)
  • 箭头方向说明:箭头方向由类指向接口

依赖关系 简要画法

  • 简单介绍:依赖关系表达的是一种use-a的关系,即一个类临时引用另外一个类的方法实现功能
  • 动物类+虚线+箭头+氧气类和水类(即动物类依赖氧气类水类,参考上图中的标注③)
  • 箭头方向说明:箭头由类指向被依赖类

关联关系 简要画法

  • 简单介绍:关联关系表达的是一种强依赖关系,需要长期知道对方,使用对方,如企鹅需要总是知道气候的变化
  • 企鹅类+实线+箭头+气候类(即企鹅类关联气候类,参考上图中的标注④)
  • 箭头方向说明:箭头由类指向被关联类

聚合关系 简要画法

  • 简单介绍:聚合关系表达的是一种弱拥有关系,如电脑与很多外设的关系
  • 雁群类+空心菱形+实线+箭头+大雁类(即雁群类是由大雁类聚合成的,参考上图中的标注⑤)
  • 箭头方向说明:箭头由整体指向部分

合成(或说组合)关系 简要画法

  • 简单介绍:合成关系表达的是一种强拥有关系,并且生命周期相同,不能单独存在
  • 鸟类+实心菱形+实线+箭头+翅膀类(即鸟类是由翅膀类及其它类合成的,参考上图中的标注⑥)
  • 箭头方向说明:箭头由整体指向部分

UML类图基本画法第2张

关系

常见的关系有:继承(Inheritance),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency),实现关系(Realization/Implementation)。

其中,聚合关系(Aggregation),复合关系(Composition)属于关联关系(Association)。

类图中的关系表示一般关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。

一般化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。

表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。

关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。

表示方法:用 实线+箭头, 箭头指向被使用的类。

聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。

表示方法:空心菱形+实线+箭头,箭头指向个体。

合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。

表示方法:实心菱形+实线+箭头,

依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。

表示方法:虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量。

免责声明:文章转载自《UML类图基本画法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用 C++ 处理 JSON 数据交换格式 .JavaScript中的鼠标事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用coreapi自动生成api接口文档

使用coreapi自动生成api接口文档 安装第三方扩展模块 pip install coreapi 在路由中配置: from rest_framework.documentation import include_docs_urls urlpatterns = [ # 自动生成接口文档 path('docs/',include_doc...

交换机安全学习笔记 第二章 MAC地址泛洪攻击

本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为、H3C设备的相关配置。华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02。  H3C配置参考S7600系列文档(资料版本:6W102-20130226 产品版本:S7600系列—Release 6701及以上版本  S7600-X系列 —Relea...

Http自动跳转Https的接口测试实践

日前,需要做一个接口测试,对象是一个web系统,登录的时候需要用SSL连接,登录进入系统后自动转成普通的Http连接。 这种类型的web网站很常见,既保证了登录时的安全,也避免了整个系统使用SSL带来的系统性能下降的问题。 首先,我们把整个访问过程分解成3个过程: 访问http接口:http://***.com/?; 跳转到Https,登录用ssl连...

学习pycharm----自动化接口

1.pycharm中安装requests a:打开pycharm软件,点击file-setting b:在目录下点击Project Interpreter,在目录的右侧,点击右上方的+ c: 在输入框中输入requests,点击安装(提示sucessful时,表名安装第三方库成功) ps:在pycharm中安装其他第三方库是一样的步骤 2.使用pychar...

Go-kit介绍及构建微服务

Go-kit简介   Go-kit 并不是一个微服务框架,而是一套微服务工具集,我们可以用工具Go-kit为 Go 创建微服务,包含包和接口,有点类似于JAVA Spring Boot,但是没那么强大。可以利用Go-kit提供的API和规范可以创建健壮的,可维护性高的微服务体系,它提供了用于实现系统监控和弹性模式组件的库,例如日志记录、跟踪、限流和熔断等,...

几句话说清楚m.2和AHCI、NVME

【简单解说】 M是一代mini硬件接口,如MSATA,M.2是二代mini硬件接口,如M.2 NVME/SATA,  M.2支持传统SATA和PCI Express存储设备 M.2更多的指的是主板上的硬件接口(M.2接口,是Intel推出的一种替代MSATA新的接口规范,也就是我们以前经常提到的NGFF,即Next Generation Form Fact...