如何画UML类图

article/2025/10/21 5:54:05

简单介绍

统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。

类、接口、类图

类(Class)是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性。在 UML 中,类使用包含类名、属性和操作且带有分隔线的矩形来表示。

类名

类名(Name)是一个字符串,例如,Student(注意java语言类名的命名规范)

属性

属性(Attribute)是指类的特性,即类的成员变量。UML 按以下格式表示:

[可见性]属性名:类型[=默认值]

eg.-name:String

注意:“可见性”表示该属性对类外的元素是否可见,包括公有(Public)、私有(Private)、受保护(Protected)和朋友(Friendly)4 种,在类图中分别用符号+、-、#、~表示。

操作

类的成员方法。UML 按以下格式表示:

[可见性]名称(参数列表)[:返回类型]

eg.+display():void

图.

接口

接口(Interface)是一种特殊的类,它具有类的结构但不可被实例化,只可以被子类实现。它包含抽象操作,但不包含属性。它描述了类或组件对外可见的动作。在 UML 中,接口使用一个带有名称的小圆圈来进行表示。

图 2 所示是图形类接口的 UMDL 表示。
 

类图

类图(ClassDiagram)是用来显示系统中的类、接口、协作以及它们之间的静态结构和关系的一种静态模型。它主要用于描述软件系统的结构化设计,帮助人们简化对软件系统的理解,它是系统分析与设计阶段的重要产物,也是系统编码与测试的重要模型依据。

类图中的类可以通过某种编程 语言直接实现。类图在软件系统开发的整个生命周期都是有效的,它是面向对象系统的建模中最常见的图。下图所示是“计算长方形和圆形的周长与面积”的类图,图形接口有计算面积和周长的抽象方法,长方形和圆形实现这两个方法供访问类调用。
 

“计算长方形和圆形的周长与面积”的类图
图  “计算长方形和圆形的周长与面积”的类图

类和类之间的关系

在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。

依赖关系

依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。

四种情况:

(1) A类是B类中的(某中方法的)局部变量;
(2) A类是B类方法当中的一个参数;
(3) A类向B类发送消息,从而影响B类发生变化;

(4) 静态方法调用


在 UML 类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。

下图所示是人与手机的关系图,人通过手机的语音传送方法打电话。

依赖关系的实例

 

关联关系

关联(Association)关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。我们先介绍一般关联。

在代码中通常将一个类的对象作为另一个类的成员变量来实现关联关系

关联关系分为双向关联,单向关联,自关联

双向关联-一般用直线来表示,例如顾客购买商品并拥有商品,反之卖出的商品总是某个顾客与之相关联:

 

也可以这样表示

单向关联

自关联,系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系为自关联,常见于链表:

 

聚合关系

聚合(Aggregation)关系是关联关系的一种,是强关联关系,是整体和部分之间的关系,是 has-a 的关系。

聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。

在 UML 类图中,聚合关系可以用带空心菱形的实线来表示,菱形指向整体。图 6 所示是大学和教师的关系图。
 

聚合关系的实例
图6 聚合关系的实例

组合关系

组合(Composition)关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是 cxmtains-a 关系。

在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。

在 UML 类图中,组合关系用带实心菱形的实线来表示,菱形指向整体。图 7 所示是头和嘴的关系图。
 

组合关系的实例
图7 组合关系的实例

泛化关系

泛化(Generalization)关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系,是 is-a 的关系。

在 UML 类图中,泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。在代码实现时,使用面向对象的继承机制来实现泛化关系。例如,Student 类和 Teacher 类都是 Person 类的子类,其类图如图 8 所示。
 

泛化关系的实例
图8 泛化关系的实例

实现关系

实现(Realization)关系是接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。

在 UML 类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,汽车和船实现了交通工具,其类图如图 9 所示。
 

实现关系的实例

 

一遍UML比较好的文章:https://zhuanlan.zhihu.com/p/158693052

 

 


http://chatgpt.dhexx.cn/article/SuCOS19y.shtml

相关文章

visio uml 画java类图_用visio画UML类图

对于画类图的工具很多,曾经学过用starUML画类图,但这个是用于Java语言的,对于用vs编程C语言,个人感觉用visio会好一点。以下用以前面的俄罗斯方块游戏中的一个Block类为例来讲述 class Block { public: Block(void); void Init();…

【系统架构】类图怎么画

文章目录 类图是什么&#xff1f;类图组成元素类图六大关系强弱关系&#xff1a;依赖<关联<聚合<组合<实现<继承 类图是什么&#xff1f; 类图中包含从用户的客观世界模型中抽象出来的类、类的内部结构和类与类之间的关系。它是构建其他设计模型的基础&#xf…

PowerDesigner 画类图

PowerDesigner 画类图&#xff1a; 目录 1&#xff0c;建立class的Model 2&#xff0c;UML基础 类 接口&#xff1a; 关系 1, 泛化 generalization 用空心三角形实线来表示 2, 实现 Realization用空心三角形 虚线 来表示 3, 关联 Association用实线箭头来表示   …

EA画类图

EA画类图 演示所使用软件版本&#xff1a; 1 准备工作 1.1 新建工程 新建工程时取个工程名字然后确定&#xff0c; 之后会进入这个界面&#xff0c;选择Class&#xff0c;并确定&#xff1a; 展开Model&#xff0c;再展开Class Model&#xff0c;点击下方Class Model&…

php类图怎么画,类图怎么画?

类图怎么画&#xff1f; 步骤&#xff1a; 1、打开visio画图软件&#xff0c;在左边的导航中选择“软件”选项&#xff0c;在右边会有很多图&#xff0c;我们会看到UML图&#xff0c;点击选择进入。 2、我们会进入画图的界面&#xff0c;在上面导航区有个百分比的选项&#xff…

StarUML画类图

一. 前言 工作中&#xff0c;在写文档总结时&#xff0c;需要画类图&#xff0c;有助于理清楚类之间的调用关系和内部组成, Ubuntu下推荐使用StarUML 来画, 如果不知道这个工具&#xff0c;请参考笔者这篇文章下载安装&#xff1a; Ubuntu StarUML安装教程 当然StarUML这个…

类图到底该如何画

什么是类图&#xff1f; 要学习如何画类图的话那么我们首先要明确一下什么是类图&#xff1f; 顾名思义&#xff0c;类图是显示了模型的静态结构&#xff0c;特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要…

通俗易懂教你画类图

1. 类图 1.1类的内容 第一层&#xff1a;类的名称&#xff0c;如果是抽象类&#xff0c;则就用斜体显示。 第二层&#xff1a;字段和属性。 第三层&#xff1a;方法。 前面的符号&#xff1a; “” 表示public&#xff1b;"-“ 表示private&#xff1b;"#"…

UML详解(1):类的关系与如何绘制类图

作为一个程序员&#xff0c;我们经常会使用UML来绘制各种图&#xff0c;类图就是其中常用之一。对于初学者来讲&#xff0c;如何读懂类图可能是一件有些困惑的事情&#xff0c;这里通过逐步梳理&#xff0c;帮助你详细了解类的关系&#xff0c;以及以后如何绘制类图。 1.0 定义…

保姆级教程--类图怎么画

类图怎么画 类与类之间的关系 类和类之间存在着六种关系 由弱到强分别是 依赖<关联<聚合<组合<实现继承 相对应的 每一种类的关系在类图里面都有一种画法来表示 首先是依赖 这是一种什么关系呢 就好像人使用用计算机一样 在人这个类里面用到了计算机 那么 我们就…

[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一

统一建模语言(Unified Modeling Language&#xff0c;UML) 可分类成&#xff1a; 功能模型&#xff1a;从用户的角度展示系统的功能&#xff0c;包括用例图。对象模型&#xff1a;采用对象&#xff0c;属性&#xff0c;操作&#xff0c;关联等概念展示系统的结构和基础&#…

【OS学习笔记】七 Bochs的下载、安装和配置

参考&#xff1a;《X86汇编语言-从实模式到保护模式》-李忠。纯学习笔记&#xff0c;更详细内容请阅读正版书籍。 1 开源的BOCHS虚拟机软件 Bochs是开源软件。它用软件来模拟处理器取指令和执行指令的过程&#xff0c;以及整个计算机硬件。当它开始运行时&#xff0c;就直接模…

emulator教程 lbochs pc_bochs模拟器怎么用?bochs模拟器安装使用教程

bochs模拟器怎么用呢?你是否还在xp系统停止服务而惋惜呢?那就来系统天堂看看bochs模拟器安装使用教程吧。bochs模拟器能够把xp系统装进手机或者平板电脑哦;具体bochs模拟器怎么用我们一起来学习一下。 我们先来了解一下bochs是什么&#xff1a; Bochs是一个x86硬件平台的开源…

bochs core教程linux,ubuntu14.04中安装配置bochs详解(二)

这里面又很有用的东西。。 上一篇主要说安装的事情&#xff0c;安装成工的标志就是在命令行中有bochs这个程序&#xff0c;来张图片&#xff1a; 有这个界面的话就说明安装成功了。。。 接下来要干的事就是制作软盘和配置了&#xff0c;如果配置不成功的话&#xff0c;选6进去以…

bochs的安装和配置

参考书籍&#xff1a;《操作系统 真象还原》 书上使用的是bochs-2.6.2.tar.gz。是2013的版本&#xff0c;老旧老旧了&#xff0c;我不使用。 我的系统是Ubuntu18.04。 这篇文章的安装教程并不能正常运行。&#xff08;只能清楚的熟悉配置文件位置信息等&#xff09; 对于我而言…

bochs2.7安装

Bochs安装 谨以此篇博客记录长达一个星期之久的bochs安装之旅 实测Ubuntu18.04及Ubuntu20.04均可通过自带软件仓库顺利安装并使用&#xff0c;安装指令&#xff0c;远离折腾烦恼 sudo apt-get install bochs bochs-x问题 选用系统&#xff1a;debian11 debian11自带软件仓库…

Windows10下安装使用Bochs-2.6.11

1 环境说明 1.1 下载安装Bochs-2.6.11&#xff1a; 官网&#xff1a;http://bochs.sourceforge.net/ 。 下载&#xff1a;https://sourceforge.net/projects/bochs/files/bochs/ 。 1.2 安装centos7 使用centos7来编译汇编程序。 安装nasm&#xff1a; yum -y install nas…

安卓bochs安装linux教程,Ubuntu 14.04 LTS 安装和配置Bochs

系统是:Ubuntu 14.04 LTS 64位 安装的是:bochs-2.6.8 Bochs 需要在 X11 环境下运行&#xff0c;因此你的 Linux 系统必须已经安装了X Window 系统才能使用Bochs。 因为 Bochs 是用C写的&#xff0c;所以这里要安装GNU gcc/g编译器。 安装命令如下&#xff1a; sudo apt-get ins…

安卓bochs安装linux教程,Ubuntu环境下安装Bochs

首先说一下我的Ubuntu版本&#xff0c;敲命令 sudo lsb_release -a 就可以看到 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS Release: 14.04 Codename: trusty 所以&#xff0c;我的Ubuntu版本是14.04 也可以用 cat /etc/issue 查看…

bochs运行xp_bochs模拟器xp系统镜像安装教程及注意事项

bochs模拟器xp系统镜像安装教程前面系统天堂小编已经为你详细介绍了&#xff0c;下面系统天堂小编就给你带来bochs模拟器xp系统镜像安装教程及一些注意事项&#xff0c;希望你能喜欢。 bochs模拟器xp系统镜像安装教程&#xff1a; ps&#xff1a;有两个xp镜像&#xff0c;一个是…