什么是UML,UML类图

article/2025/8/19 11:00:59

1.什么是UML?

       UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

  UML的概念包括了UML语义(Semantics)和UML表示符(Notation)两个部分。UML语义定义了静态模型和动态模型。结构模型强调系统的对象结构,入对象的类、接口、属性和关系;行为模型关注的是系统对象的行为动作,如对象的方法、交互、协作和状态。UML表示符为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。重要内容由9种图来定义,包括用例图、类图、对象图、状态图、构件图、部署图、协作图、交互序列图、活动图。

 

      UML的特点是:

      (1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效地消除了各种建模语言之间不必要的差异,它实际上是一种通用的建模语言。

      (2)UML建模能力比其他面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。

      (3)UML是一种建模语言,而不是一个开发过程

 

     UML的构成是:

2.UML图之类图

怎么画类图?用什么工具?

使用工具:Visio或者processon在线作图

在类图中一共包含了以下几种模型元素,分别是:类(Class)、接口(Interface)以及类之间的关系。

2.1类(Class)

  在面向对象编程中,类是对现实世界中一组具有相同特征的物体的抽象。

          

2.2 接口(Interface)                                                                                                                                                            

  接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现(继承)。在UML中,接口使用一个带有名称的小圆圈来进行表示。

                       

2.3、类图中关系(relation)

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

1. 泛化(Generalization)

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

【箭头指向】:带三角箭头的实线,箭头指向父类

 

                                                       

  2. 实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

【箭头指向】:带三角箭头的虚线,箭头指向接口。

               

                                                                         

3.关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,

丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者

                         

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。

但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

下图为自身关联:

 

                                                    

 4.聚合(Aggregation)                         

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。

如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向整体

                                       

 5.组合(Composition)                         

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。

如公司和部门是整体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,

它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

                                                      

6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,

所以要尽量不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

                       

 

各种关系的强弱顺序:

泛化(类与继承关系) = 实现(类与接口关系) > 组合(整体与部分的关系) > 聚合(整体与部分的关系) > 关联(拥有的关系) > 依赖(使用的关系

下面这张UML图,比较形象地展示了各种类图关系:

    


                               
                            

 

 

 

 

 

 

 


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

相关文章

什么是uml?

相信你可能建立过以木块为基础的建筑模型,建立过解决实际问题的数学模型,学过一个系统的物理模型,听说过UML建模,但是什么是UML呢? 学习了几天的UML,昨天师傅大体问了我UML是什么,由什么构成&am…

[UML 扫盲]什么是UML?

文章目录 一、UML 是什么?二、UML 与 面向对象三、UML 基本要素四、UML 常见图 概述 UML 是统一建模语言(Unified Modeling Language)的缩写。UML 提供了标准通用的图形化设计语言,使得在构建计算机应用时,开发团队的成…

大数据学习(3)

大数据学习(3) 1 Hive-SQL-DML语句1.1 Hive SQL Load 加载数据语句1.1.1 Load功能1.1.2 Load语法规则1.1.3 Load 语法实验1.1.3.1 Load Data From Local FS1.1.3.2 Load Data From HDFS1.1.3.3 Overwrite选项 1.2 Hive SQL Insert 插入数据语句1.3 Hive …

如何学习大数据分析

上面有很多关于BOT的信息:这并不是嗡嗡作响。归根结底,BINO数据已经成为每个行业的驱动力,这充分说明了利用大数据分析的最大优势。但是,仅B此字不只是因为我们知道而改变了业务。更重要的是,大数据分析分析系一直是开…

大数据分析怎么学习

大数据分析从业虽然有难度,但大数据分析岗的薪酬高、发展潜力好,很多人们想转行做大数据分析,朝着大数据分析方向去发展。那么,大数据分析怎么学习?学习哪些内容呢? 第一,可视化分析,事实上&am…

大数据学习路线,如何学习大数据?

声明:本文转至http://blog.csdn.net/yuexianchang/article/details/52468291 1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念&#xff…

机器学习-大数据

模式识别 性能好,算法,经验 实际和模型的差距太大

大数据学习(1)-大数据概述

文章目录 目录大数据产生背景大数据概念大数据影响大数据应用大数据关键技术大数据产业大数据,云计算,物联网关系云计算物联网大数据,物联网,云计算三者之间联系 目录 大数据产生背景 三次信息化浪潮 根据IBM前首席执行官郭士纳…

2021年全新大数据学习路线图,(含入门到精通项目学习免费教程哦)

大数据教程,大数据学习,大数据学习路线图, 今天就给大家分享2021年全新的大数据学习教程哦! 2021年黑马程序员全新的大数据学习路线图分享给大家,大家可以按照这个大纲来学习,自学也可哦! 第一…

大数据——学习路线

学习大数据首先我们要学习Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。下面是大数据相关的技术 Hadoop 这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDF…

怎样进行大数据的入门级学习?

大数据在刚出来的时候,人们表现的非常乐观,以至于对它持有非常高的期望,和普遍的追捧。 不过只要有数据在,大数据就不会过时。随着上游的数据规模持续增长,大数据在未来一定会扮演重要角色。因此,市场需求…

当我说转行大数据工程师时,众人笑我太疯癫,直到四个月后......

【不要错过文末彩蛋】 申明: 本文旨在为【大数据自学者|大数据专业学生|工资低的程序员(Java/Python等)】提供一个从入门到入职的的大数据技术学习路径,不适合5年以上大数据工程师的进阶学习。 前言: 一、个人介绍 …

网络层协议(6)

文章目录 一、网络层二、网络层的功能三、IP数据包格式1.版本2.头部长度3.服务类型4.包裹总长5.重组标识6.标志7.段偏移量8.生存时间(TTL)9.协议代码10.首部检验和11.源地址12.目的地址13.可选字段14.数据部分 四、其他网络层协议1.ICMP协议2.ARP协议3.R…

网络层的各层协议

网络层的各层协议 目录 一、IP数据包格式 二、Icmp协议介绍 2.1 ICMP协议 2.2 ICMP协议的封装 三.ARP协议介绍 3.1 什么是ARP协议 3.2 ping命令 3.3 TRACERRT命令 3.4ARP协议工作原理 四、ARP攻击原理 一、IP数据包格式 协议字段 IP数据包格式&#xf…

网络层协议------IP协议

这里写目录标题 IP协议基本概念协议头格式网段划分特殊的ip地址私网ip地址和公网ip地址ip地址的数量限制路由 IP协议 IP协议:其实就是TCP/IP协议中对于网络层的一个协议(注意IP协议是TCP/IP协议族中最为核心的协议,因为对于上层的数据&#…

网络协议层

1.osi七层模型以及每层的都是干什么的 七层模型分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 数据链路层&…

网络协议:网络层传输层

目录 网络层 网络层首部 网络层首部--总长度 网络层首部--标识、标志 网络层首部--片偏移 网络层首部--生存时间 ping的几个用法 传输层 UDP UDP--数据格式 UDP--检验和(Checksum) 端口 网络层 网络层数据包(IP数据包,Pac…

第四讲:网络层协议

文章目录 一、网络层功能二、IP数据包的格式1、IP数据包格式2、各字段说明 三、ICMP协议1、ICMP封装与格式2、ping命令2.1 ping命令的各种用法 四、ARP协议1、什么是ARP协议?2、ARP协议是如何工作的?3、ARP工作原理4、windows当中如何查看ARP缓存表5、AR…

网络层协议的介绍

目录 ICMP协议(Internet控制报文协议) 网络层的功能 *定义了基于IP协议的逻辑地址 *连接不同的媒介类型 *选择数据通过网络的最佳路径 总体结构 IP数据包格式ICMP协议介绍ARP协议介绍ARP攻击原理 1,IP数据包格式 协议字段 版本&…

网络层协议

网络层有四个协议:ARP协议,IP协议,ICMP协议,IGMP协议。 ARP协议为IP协议提供服务,IP协议为ICMP协议提供服务,ICMP协议为IGMP协 议提供服务。 ARP协议:将IP地址通过广播,目标Mac地址是FF-FF-FF…解析目标IP地址的Mac 地址。(局域网中)通过arp -a可以查看Mac地址。…