问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何绘制UML类图:详解和实例解读

创作时间:
作者:
@小白创作中心

如何绘制UML类图:详解和实例解读

引用
CSDN
1.
https://blog.csdn.net/qq_36078699/article/details/140727111

UML类图是软件工程中一种重要的建模工具,用于描述系统的静态结构。通过UML类图,开发团队可以直观地理解系统的组件构成及其相互关系,从而提高开发效率和软件质量。本文将从UML类图的基本概念出发,逐步讲解类的基本属性、类之间的关系,并通过多个实例进行说明。最后,还将介绍使用ProcessOn工具绘制类图的具体步骤。

一、UML类图简介

UML类图是UML中最常用的图之一,主要用于描述系统中的类、接口、协作和它们之间的关系,如继承、聚合、组合、依赖和实现。它以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。类图用来描述系统中有意义的概念,包括具体的概念、抽象的概念、实现方面的概念等,是对现实世界中事物的抽象。

类图的主要作用是对系统的词汇进行建模、对简单的协作进行建模和对逻辑数据库模式进行建模。

UML类图的用途比较多,常用的给大家列举几个:

  1. 设计系统架构:类图帮助设计者在早期阶段规划系统的架构,定义类和它们之间的关系。
  2. 代码生成:一些工具可以基于UML类图自动生成代码框架,加速开发过程。
  3. 文档化系统:类图可以作为系统文档的一部分,帮助团队成员理解系统的结构和功能。
  4. 交流和协作:类图提供了一种通用的语言,便于开发团队、利益相关者和客户之间的沟通。

二、类图基本属性

类图概括起来主要由两部分组成:类和类之间的关系,其中对类的定义如下图所示,主要由三部分组成,它们分别是类名、类的属性、类的方法,对应图中的三个分区内容。

  • 类名:图中最上面的矩形框中为类名。如果字体为斜体,表示为抽象类
  • 类的属性:类名下方的区域
  • 类的方法:图中的下面部分

*符号解释

说明:属性和方法前面的“+”“-”和“#”表示访问级别,以下对这些符号进行解释说明。

  • +:public,公用的,对所有类可见
  • -:private,私有的,只对该类本身可用
  • #:protected,受保护的,对该类的子孙可见
  • ~:package,包的,只对同一包声明的其他类可见
  • =:表示默认值
  • 下划线:static
  • 斜体:抽象 (注意也可以用两个尖括号包裹来表示抽象,比如 —— <<我是抽象类or接口>>)
  • 冒号前是方法名/变量名(根据有无括号区分),冒号后是返回参数/变量类型(根据有无括号区分),如果没有冒号的话表示方法返回空(也有人通过:void表示返空)

三、类之间的关系

类之间的关系主要包括泛化(继承)、依赖、关联、聚合、组合和实现6种关系,下面对它们进行一一阐释。

  1. 泛化关系

泛化关系是一种继承关系,子类继承父类的所有行为和属性,子类可以新增新的功能或者重写父类功能。

表示方法:空心三角+实线,箭头指向父类

  1. 依赖关系

依赖关系表示一个类使用(依赖)另一个类的服务或信息。当一个类的改变会影响到另一个类时,两个类之间存在依赖关系。一般来说,依赖总是单向的,不应该存在双向依赖。

表示方法:尖括号+虚线

  1. 关联关系

关联关系是一种拥有的关系,它使一个类知道另一个类的属性和方法。它体现不同类的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强,不存在依赖关系中的偶然性,关系也不是临时的,一般是长期性的。

关联关系分为单向关联或双向关联,也可以有多重性(一对多),双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

表示方法:尖括号+实线,箭头指向被拥有者

  1. 聚合关系

聚合关系在UML类图中表示的是“整体-部分”之间的关系,但是这种关系不像组合关系那样强烈,部分可以独立于整体存在。换句话说,即使整体不存在了,部分仍然可以继续存在并且有其独立的功能或意义。

假设我们有两个类:Professor(教授)和Course(课程)。教授可以教授多个课程,而一个课程也可以由多位教授来教授。这种情况下,Professor和Course之间的关系就可以被描述为聚合关系。

表示方法:空心菱形+实线,菱形指向整体

  1. 组合关系

组合关系(Composition)在UML类图中表示一种强类型的“整体-部分”关系,其中部分与整体的生命周期紧密相关,部分不能独立于整体存在。当整体对象被销毁时,其组成部分也将随之销毁。

比如:公司和部门是整体和部分的关系,没有公司就不存在部门,公司对其部门拥有完全的控制权,包括创建和销毁部门。当公司不存在时,其所属的部门也没有存在的意义。

表示方法:实心菱形+实线

  1. 实现关系

在UML类图中,实现关系(Realization)表示一个类(实现类)实现了接口中定义的所有抽象操作,这是一种契约关系,确保实现类遵守接口规定的协议。实现关系通常用于描述面向对象编程中的接口实现。

比如:图书馆系统。假设我们有一个图书馆系统,其中涉及到图书借阅功能。我们可以定义一个接口ILoanable(可借阅的),用于描述任何可以被借阅的物品应具备的行为。我们有具体的类Book(书籍)和Magazine(杂志),这两个类都可以实现ILoanable接口。

表示方法:空心三角+虚线

四、类图模板案例

为了帮助大家更好的理解类之间的6种关系,下面使用例子辅助大家学习和消化吸收。

  1. 汽车类图

点击查看模板高清原图

汽车类图说明:

  • 车与小汽车和自行车之间是「实现」 关系,使用带空心箭头的虚线表示;
  • 小汽车与SUV之间的关系为泛化关系,使用带空心箭头的实线表示;
  • 小汽车与发动机和轮胎之间是「组合」 关系,使用实心菱形箭头的实线表示;
  • 学生上学需要用到自行车,与自行车是一种「依赖」 关系,使用带箭头的虚线表示。
  • 学生与班级之间是「聚合」 关系,使用带空心菱形箭头的实线表示;
  • 学生与身份证之间为「关联」 关系,使用尖箭头的实线表示;
  1. 动物UML类图

点击查看模板高清原图

  1. 学生上网UML类图

点击查看模板高清原图

  1. 微信支付类图

点击查看模板高清原图

如果你能快速的看懂并理解以上案例,说明你基本上已经把类图弄懂了,再去多结合一些代码和对应的类图巩固一下,以后再看到类图就不会懵了。

五、如何绘制类图?

ProcessOn支持多种图形的绘制,当然也包括UML图啦,用ProcessOn绘制类图的方法很简单,只要掌握了类图绘制的知识点,研究明白了小编分享的类图案例,相信每个人都可以快速学会画类图。

Step1:识别类。确定系统中需要的类,以及它们的属性和操作。

Step2:定义类间关系。确定类之间的关联、依赖、泛化、实现、聚合和组合关系。

Step3:绘制图。注册登录ProcessOn,新建UML图形,在左侧工具栏中选择类的标志,拖拽到右侧编辑区,写上类名、属性和方法,然后根据类之间的关系,标注箭头和线。

注:ProcessOn每个图标之间的连线默认都是实线箭头,大家根据需要可以在上方工具栏中调整连线样式、连线类型、连线颜色、箭头方向和箭头样式等。

Step4:评审和修改。与团队成员一起评审类图,根据反馈进行必要的修改。

如果你想让自己的图更美观一些,可以把文本、图标、线条等填充不同颜色、相同的图标尽可能大小相同。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号