李锋镝的博客

  • 首页
  • 时间轴
  • 说说
  • 读书观影
  • 系列
  • AI工具集
  • 论坛
  • 友圈
    • 友链
    • 朋友圈
    • 游客中心
  • 留言
    • 留言
    • 走心评论
  • 关于
    • 关于本站
    • Now
    • 每日心情
    • 网站地图
    • 网站统计
    • 赞助
  • 星球穿梭
  • 🚇开往
静亦定 动亦定
惟坚韧者始能遂其志
  1. 首页
  2. 后端
  3. 正文

九种常用的UML图总结

2019年6月29日 322 1 0
本文最后更新于 2025年11月20日,距今已 355 天,其中的信息可能已经发生变化,请注意甄别。
UML(Unified Modeling Language)统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。
UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。
UML图的作用:
UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
特点:
(1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。它实际上是一种通用的建模语言,可以为许多面向对象建模方法的用户广泛使用。
(2)UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。
(3)UML是一种建模语言,而不是一个开发过程。
——以上引用自百度百科

下面是九种常用的UML图:

1.用例图(UseCase Diagrams)

用例图是从用户(角色)的角度出发,描述角色和用例之间的关系。即:谁要使用系统,一级他们使用系统可以做什么。简单来说就是:谁,可以用此系统做什么。

2.类图(Class Diagram)

类图是描述系统中的类,以及各个类之间的关系的静态视图。是面向对象系统建模中最常用和最重要的图,是定义其他图的基础。
在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
  2.1.泛化(Generalization)
    泛化是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
    
  2.2.实现(Realization)
    实现是一种类与接口的关系,表示类是接口所有特征和行为的实现。
      
  2.3.关联(Association)
    关联是一种拥有的关系,它使一个类知道另一个类的属性和方法;关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
      
  2.4.聚合(Aggregation)
    聚合是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
          聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
    
  2.5.组合(Composition)
    组合是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
         组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
      
  2.6.依赖(Dependency)
       依赖是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
    

3.对象图(Object Diagrams)

对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。对象图显示某时刻对象和对象之间的关系。一个UML对象图可看成一个类图的特殊用例,实例和类可在其中显示。

4.状态图(Statechart Diagrams)

状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。他们可以告知一个对象可以拥有的状态,并且事件会怎么随着时间的推移来影响这些状态。
状态图是对类图的补充。

5.活动图(Activity Diagrams)

活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图的业务需求。
活动图是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。

6.序列图-时序图(Sequence Diagrams)

序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。序列图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
序列图展示的是多个系统或者对象之间的交互的顺序,强调时间顺序。

7.协作图(Collaboration Diagrams)

协作图和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。

8.构件图(Component Diagrams)

构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
构件图也叫组件图,由组件、接口和组件之间联系构成,描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块。
组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector)

9.部署图(Deployment Diagrams)

部署图又叫配置图,是用来建模系统的物理部署。
部署图由节点以及节点之间的关系组成。
部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。
部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图。
部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构。

参考链接

7
  1. 1统一建模语言baike.baidu.com
  2. 2标准建模语言baike.baidu.com
  3. 3建模baike.baidu.com
  4. 4面向对象baike.baidu.com
  5. 5软件架构baike.baidu.com
  6. 6UMLbaike.baidu.com
  7. 7建模baike.baidu.com
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
分享到

九种常用的UML图总结

也可使用浏览器菜单中的「分享」功能

微信扫一扫分享

标签: JAVA UML 协作图 对象图 序列图 建模 文档 时序图 构件图 架构 活动图 状态图 用例图 类图 部署图 领域模型
最后更新:2025年11月20日

岁月同一天 11 月 11 日

回望过去的今天,你在写什么

  • AI
    1 年前 2025年11月11日
    深度解析 RAG 技术:从原理到落地,构建高精度检索增强生成系统

    在企业知识库问答、专业文档处理、智能客服等场景中,大语言模型(LLM)常常面临“答非所问”“信息过时”“泄露隐私”等问题…

  • AI
    1 年前 2025年11月11日
    深度实战:基于 LangGraph + MCP 的智能音乐推荐 Agent 全解析(从搭建到落地)

    在 AI 与推荐系统结合的浪潮中,传统音乐推荐往往局限于“基于协同过滤”或“关键词匹配”,无法理解用户自然语言中的模糊需…

  • AI
    1 年前 2025年11月11日
    MCP深度解析:从协议本质到实战落地,彻底搞懂 AI 工具交互的标准化方案

    在 AI 工具化的浪潮中,Function Call 让 LLM 具备了调用外部工具的能力,但随着工具数量增多、LLM …

  • 5 年前 2021年11月11日
    WordPress的自动更新好烦啊

    昨晚突然收到邮件,说是WordPress自动更新到最新版了,好烦啊…… 每次更新完之后就得改一大堆东西,太坑了,今天终于…

  • 7 年前 2019年11月11日
    分布式锁-Zookeeper实现分布式锁

    如何用Zookeeper实现分布式锁? 在学习分布式锁之前,需要首先了解一下Zookeeper的[临时顺序节点]。 什么…

  • 7 年前 2019年11月11日
    再小的应用也有架构,面向架构新手的架构实践!

    文章主人公:小明,就职于某互联网公司,从事后端开发工作。最近小明收到通知公司需要开发一款《证件照》应用,需要征集架构方案…

  • 7 年前 2019年11月11日
    分布式锁-Java常用技术方案

    前言:       由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就…

  • 7 年前 2019年11月11日
    在微服务中使用领域事件

    稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程。当你点击鼠标、敲击键盘…

相关文章
  • JAVA简单快速的读写Excel之EasyExcel2019年10月25日
  • JVM安全点介绍2021年8月16日
  • 8条经验轻松上手IDEA插件开发2020年11月6日
  • 结合Apollo配置中心实现日志级别动态配置2021年12月29日
  • Java布尔运算2022年7月18日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
下一篇 >
1234567891112131415161718192021222324252627282930313233343536373839404142434446474849505152535455575859606162636465666769727476777879808182858687909293949596979899
取消回复
…

文章评论

还没有评论,快来抢沙发吧~

细草微风岸,危樯独夜舟。
星垂平野阔,月涌大江流。
名岂文章著,官应老病休。
飘飘何所似,天地一沙鸥。

听点儿音乐吧 朋友~
文章目录
最新 热点 随机
最新 热点 随机
给服务器加了WAF 又一个逆天改命的人:小小徐 AI的生成能力等于生产力吗? NGINX严重漏洞(CVE-2026-15176、CVE-2026-93479、CVE-2026-97205) Kratos-plus v1.1.27更新说明 php2shell远程执行漏洞修复(CVE-2026-109618 和 CVE-2026-109619)
给主题增加了游客中心功能心气没了,干什么都不得劲给服务器加了WAF我觉得是时候公布我的导航网站了游本昌去世关于主题加载速度优化的一点儿小演进
Kratos+ —— Kratos 主题二次开发记录 Java中的变量和数据类型 从SQL规范性检查、表结构索引检查着手分析如何优化SQL SpringBoot集成Redis,从Redis中获取数据为null,但实际上Redis中是存在对应的数据的,是什么原因导致的呢? 金融级JVM深度调优实战的经验和技巧 宝塔面板NGINX开启http3
最近评论
李锋镝 发布于 2 天前(11月09日) 我也刷到了,说是恶意引流的
皮皮社长 发布于 2 天前(11月09日) 我刷到的,怎么是说剧本骗流量的?如果真的是用来骗流量,那真恶心。欺骗网友感情。
李锋镝 发布于 2 天前(11月09日) 现在我这个是十个,其实也够用了
老张博客 发布于 2 天前(11月09日) 雷池唯一不好的就是只能免费5个网站。
fairy 发布于 4 天前(11月06日) 机器人快来我这里吧!
标签聚合
架构 Theme IDEA 分布式 数据库 SpringBoot SQL Claude WordPress K8s JAVA AI MySQL AI编程 多线程 ElasticSearch 日常 Redis JVM Spring
友情链接
  • 哥斯拉
  • 懋和道人
  • Serendipity
  • 知向前端
  • Honesty
  • 韩情脉脉
  • 老张博客
  • 皮皮社
  • 刘永博客
  • Mr.Sun的博客
  • 九仞之行
  • lijie blog
  • 韩小韩博客
  • 林羽凡
  • sssr7844的博客
  • 彬红茶日记
  • 志文工作室
  • 搬砖日记
  • 瓦匠个人小站

COPYRIGHT © 2016-2026 lifengdi.com. ALL RIGHTS RESERVED.

lifengdi.com 十年之约虫洞

Domain age badge for lifengdi.com

Theme Kratos-plus By Dylan Li

津ICP备2024022503号-3

京公网安备11011502039375号