目录

什么是UML?

为什么要用UML?

UML图有哪些?

UML图概览

什么是类图?

泛化(Generalization)

实现(Realization)

关联(Association)

聚合(Aggregation)

组合(Composition)

依赖(Dependency)

什么是组件图?

什么是部署图?

什么是对象图?

什么是包图?

什么是组合结构图?

什么是轮廓图?

什么是用例图?

什么是活动图?

什么是状态机图?

什么是序列图?

什么是通讯图?

什么是交互概览图?

什么是时序图?

总结


什么是UML?

UMLUnified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。

为什么要用UML?

通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。

UML提供了极富表达能力的建模语言,可以让软件开发过程中的不同人员分别得到自己感兴趣的信息。

Page-Jones 在《Fundamental Object-Oriented Design in UML》 一书中总结了UML的主要目的,如下:

  1. 为用户提供现成的、有表现力的可视化建模语言,以便他们开发和交换有意义的模型。
  2. 为核心概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
  3. 独立于特定的编程语言和开发过程。
  4. 为了解建模语言提供一个正式的基础。
  5. 鼓励面向对象工具市场的发展。
  6. 支持更高层次的开发概念,如协作,框架,模式和组件。
  7. 整合最佳的工作方法 (Best Practices)。

UML图有哪些?

UML图概览

什么是类图?

在类图中,常见的有以下几种关系。

泛化(Generalization)

实现(Realization)

关联(Association)

自己买的车,想什么时候开就开。但是车是车,人是人,没有整体与部分的关系。

聚合(Aggregation)

电脑有键盘才能输入信息,电脑是整体,键盘是部分,键盘也可以离开电脑,单纯的拿去敲。所以是聚合。

组合(Composition)

鸟是整体,翅膀是部分。鸟死了,翅膀也就不能飞了。所以是组合。我们再看一下,下面的一组经典的聚合组合关系的例子。

一个公司拥有多个部门,公司和部门之间是组合关系,公司破产了,部门就不复存在了。部门和员工是聚合关系,部门被裁掉,员工就换下家了。

依赖(Dependency)

老司机只管开车,车是谁的不重要,给什么车开什么车。

什么是组件图?

订单系统组件依赖于客户资源库和库存系统组件。中间的虚线箭头表示依赖关系。另外两个符号,表示组件连接器,一个提供接口,一个需要接口。

什么是部署图?

图中简单的表示,不同机器上面部署的不同软件。

什么是对象图?

图中就是描述的,某时间点bat这个公司有一个研发部,一个销售部,两个部门只有一个人iisheng

什么是包图?

什么是组合结构图?

图中描述了Car是由车轴连接着的两个前面轮子、两个后面轮子,和引擎组合的。

什么是轮廓图?

图中我们定义了一个简易的EJB的概要图。Bean是从Component扩展来的。Entity BeanSession Bean继承了BeanEJB拥有RemoteHome接口,和JAR包。

什么是用例图?

用例图中包含以下三种关系:

什么是活动图?

图中简单描述了,从开始到登录到查看订单列表,或者登录失败直接结束。

什么是状态机图?

图中描述了,门在其生命周期内所经历的状态。

什么是序列图?

图中展示的是支付宝条码支付场景的序列图。其中,loop是循环,alt是选择,序列图的其他关系这里就不介绍了。

什么是通讯图?

图中展示了一个线上书店的通讯图,方框和小人表示生命线,不同生命线之间可以传递消息,消息前面的数字可以表达序列顺序。

什么是交互概览图?

图中表示一个调度系统的交互概览图,跟活动图很像。其中sd的框代表具体的交互流程,ref框代表使用交互。

什么是时序图?

图中展示了老年痴呆病人随着时间的变化病情的变化。

总结

学习UML,我们没必要纠结比如像聚合关系是带箭头还是不带箭头,这样的问题。更重要的是UML图所给我们带来的画图思想,让我们画UML图或者其他图能让其他人更好的理解我们的设计思想。

掌握14种UML图,清晰图示相关推荐

  1. uml 时序图_UML学习-14种UML图

    14种UML图 统一建模语言是一种标准化的通用建模语言,现在由对象管理组 (OMG)作为实际行业标准进行管理.UML 包括一组图形表示技术,用于为软件密集型系统创建可视化模型. 在 UML 2.2 中 ...

  2. UML科普文,一篇文章掌握14种UML图

    前言 上一篇文章写了一篇建造者模式,其中有几个UML类图,有的读者反馈看不懂了,我们今天就来解决一哈. 什么是UML? UML是Unified Model Language的缩写,中文是统一建模语言, ...

  3. 图书馆的uml概念类图怎么画_UML科普文,一篇文章掌握14种UML图

    前言 上一篇文章写了一篇建造者模式,其中有几个UML类图,有的读者反馈看不懂了,我们今天就来解决一哈. 什么是UML? UML是Unified Model Language的缩写,中文是统一建模语言, ...

  4. UML图大科普 :14种UML图图例详解

    文章目录 类图 组件图 部署图 对象图 包图 组合结构图 轮廓图 用例图 活动图 状态机图 序列图 通讯图/通信图 顺序图 状态图 类图 组件图 部署图 对象图 类图的实例 包图 组合结构图 轮廓图 ...

  5. 这7种UML图的画法每个程序员都应该掌握~

    大家好,我是飘渺.今天我们来探讨几种常见UML图的画法. 众所周知,软件开发是一个分阶段进行的过程.不同的开发阶段需要使用不同的模型图来描述业务场景和设计思路,在不同的阶段输出不同的设计文档也是必不可 ...

  6. 五种UML图的画法详细介绍【软件工程】

    文章目录 I.介绍 II.五种图的画法汇总 I.介绍 统一建模语言(UML)是软件工程领域的一种通用的.开发的建模语言,旨在提供一种标准的方法来可视化系统的设计. UML的创建最初是出于将不同的符号系 ...

  7. StarUML 及9种UML图

    文章目录 uml图 状态图(statechar diagram) 活动图(activity diagram) 用例图(use case diagram) 类图(class diagram) 对象图(s ...

  8. SVG与UML图详解

    一.SVG 可缩放矢量图形(SVG)是W3C的推荐标准,它使用XML描述两维图形结构和图形应用,可以在Web浏览器.手持设备或移动电话等多种上显示.目前稳定版本为1.1版,最新的版本是以草案形式存在的 ...

  9. 【机房合作】UML图之包图再学习

    在合作中对包图验收没有通过,对包图的理解不深刻,整幅图中,在包与包之间,只用了两种关系:实现和import.因此需要重新修改,可是修改起来比较费劲儿,于是查资料,跟霍亚静师傅和连江伟师傅交流,对包图有 ...

最新文章

  1. 【ES6新特性】一行代码解决:搜索对象数组,匹配具体字段属性值的返回值和索引的问题
  2. Linux系统性能分析:内存 优化
  3. 无限循环的ViewPager
  4. 怎么快速搜索服务器里的文件,Windows中快速搜索指定文件夹
  5. 更新整理本人所有博文中提供的代码与工具(Java,2013.11)
  6. 项目支持规划标准文档编写要点
  7. 【UVA1339】古老的密码(巧妙思路+(q)sort降序排列的三种方法)
  8. 大数据导论答案_2020年智慧树APP大数据导论第一单元章节测试网课答案大学课后答案...
  9. 【系统分析师之路】2020年系统分析师综合知识历年真题
  10. Bat| 批处理注释
  11. 关于机器人方面的sci论文_近十年机器人学科中国学者SCI十大发文期刊 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  12. Cisco思科常用指令
  13. 树莓派系统安装 3.5寸LCD驱动安装 ssh远程链接
  14. mysql查看sa密码_sqlserver怎么查看sa密码
  15. 大数据世界中的新技术
  16. 【推荐】《Java 并发编程的艺术》迷你书
  17. 迅龙中文搜索 0.7 nSearch版 C# 源代码下载
  18. 战争艺术 java_战争艺术2网络对战版
  19. tokenizer()和tokenizer.encode_plus()的区别
  20. 文件系统之软连接、硬链接的区别/文件删除与空间的联系/df和du的区别

热门文章

  1. AAAI‘21 Addressing Class Imbalance in Federated Learning
  2. html春节祝福烟花,《烟花AR》用ARkit带来浪漫情人节和新春祝福
  3. android 高仿苹果listview,android listview仿iphone特效
  4. userInteractionEnabled与enabled的区别
  5. python 好玩_好用好玩的Python包
  6. 用Gmail收取Hotmail里的邮件
  7. Nginx高阶用法(二)
  8. 软件开发成本太高,怎么办?
  9. mysql 页分裂_Innodb页面分裂
  10. 做自己的救世主——系统安全保卫战