很多初次接触UML的朋友们可能会感觉它各种各样的线条、关系、描述等晦涩难懂。本篇文章简单介绍了一下其中几个图,用最朴实的语言结合上图片来让你一眼就能理解他们,如果您在阅读的过程种发现错误之处恳请您在评论区指点。

1.类图、对象图、接口

这三种图是uml中最简单的图了,我想看了下方三张图片你就明白了:

在类中存在几种关系,是我们必须要掌握的:

  • 一般化关系:表示类与类的继承、接口与接口之间的继承、类对接口的实现。
  • 关联关系:类与类之间的关系,一个类持有另一个类的属性和方法,他可以是单向的也可以是双向的,但是不推荐使用双向的。 关联关系还包括一个属性:基数。基数就表明这一段的类可以有几个实例,就比如说唐僧肯定只有一个,但是徒弟就可以有很多。我们就可以使用下图来表示
  • 聚合关系:它属于关联关系的一种,它表示的整体和个体的关系。例如电脑是由屏幕、键盘、鼠标等组成的
  • 合成关系:它也是关联关系的一种,不过它的关系表示的是最强的,例如人是由大脑、心脏、四肢组成的(区分聚合和合成关系时可以想象类似于人体的不可分割的是合成关系,类似于机器的坏了可以换的是聚合)
  • 依赖关系:依赖关系与一般化关系不同的是一般话关系是一个类持有另一个类的属性或方法,而依赖关系类中的方法参数为另一个类

2.组件图

组件图可以简单理解为在一个系统中的物理组件。例如程序包、类文件、配置文件、样式文件等。学习组件图请看下图:

3.部署图

部署图可以简单理解为硬件的配置及其软件是如何在网络结构中部署的(例如一个程序中一共有多少个tomcat、多少个mysql、多少个redis、他们分别部署在哪台服务器上)一起来看下图学习一下:

4.用例图

用例图主要作用是来收集系统的要求,包括内部和外部的影响(例如此系统的用户分为n种角色,每一个角色所能干的事)下图以一个用户所能使用的功能为例

5.时序图

时序图是用来描述对象之间的消息的流动顺序的,下面以一个简单的的注册流程为例分析:

在这个图片中,垂直的虚线叫做生命线,代表一个对象的存在时间。每一个箭头都是一个调用,生命线上白色的条叫做激活条,激活条代表的就是这次调用持续的时间

6.状态图

状态图描述对象从开始到结束的状态改变流程,下面同样以上方注册流程为例分析:

几分钟几张图教你学会如何使用UML的更多相关文章

  1. 三张图教你生成一个Android jar 库。

    我看到非常多教人使用第三方开源组件的Android教程.都是在教基于源代码project的库导入,个人觉得非常不妥,觉得最恰当的方式是把源代码project生成一个jar再导入到目标project上使 ...

  2. 一张图让你学会Python

    有编程基础的人一看就可以了解 Python 的用法了.真正的 30 分钟上手.国外一高手画的,现把它翻译成中文,入门超简单python入门神图 *单击放大

  3. 一张图教你搞定Mac App Store 应用安装包存储路径

    还在为找不到App Store 更新应用的安装文件发愁吗?是否有过多个人同时需要更新Xcode,都自己下载一次的痛苦经历? 大家都知道通过苹果服务器下载东西,确实难耐!AppStore 甚至都经常提示 ...

  4. 一张图让你学会Python【转】

    转自:http://blog.csdn.net/qq_30845505/article/details/51588423 有编程基础的人一看就可以了解 Python 的用法了.真正的 30 分钟上手. ...

  5. 一张图让你学会LVM

    导读 随着科技的进步,人们不知不觉的就进入了大数据的时代,数据的不断增加我们发现我们的磁盘越来越不够用了,接下来就是令人头疼的事情--加硬盘,数据的备份与还原.LVM就是Linux下专门针对我们数据的 ...

  6. 一张图11招学会Python网络黑客

    全部学起来: 第一招:搭建Python防范环境 第二招:扫描漏洞 第三招:暴力破解的秘密 第四招:防SQL注入 第五招:防命令注入 第六招:看清文件上传木马 第七招:看清Web攻击 第八招:利用Pyt ...

  7. 一张图教你读懂AI简史

  8. 一张图教你弄清楚linux虚拟机的静态IP设置原理 VMnet8

  9. 一张图让你快速学会UML(聚合、组合、依赖、继承、接口、类)

    有朋友反映,一上来直接讲设计模式就算理解了,也不知道如何画出类图,那么我们就通过一张图,来图解如何应用UML正确表示类与类之间的关系. 这张图完整讲述了鸟类的生存. 首先是类:在UML中,我们用分成三 ...

随机推荐

  1. 手工脱壳之AsPack压缩脱壳-随机基址

    一.工具及壳介绍二.脱壳1.ESP定律脱壳2.单步跟踪脱壳3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查看待脱壳 ...

  2. windows下的mongodb安装与配置

    一.下载mongodb安装文件 https://www.mongodb.com/download-center/community 选择zip压缩包方式,如:mongodb-win32-x86_64- ...

  3. aws

    名称 对应的技术 EC2 虚拟机技术 Virtual Machine 抽象了物理机,看到的是多台虚拟的机器 需要配置管理存储.网络.操作系统等 数分钟启动,运行数周或数月 ECS 容器 Contain ...

  4. asp.net WebService如何去掉asmx后缀

    现在有一个发布好的WebService,地址是http://hovertree.com:2706/UploadExpenseToConstract.asmx能不能把最后面的asmx去掉呢?变成http ...

  5. python 10 迭代器和三元运算符

    一.迭代器 1.迭代器协议:对象必须提供一种next方法,执行该方法要么返回迭代中的下一项,要么引起一个stopIteration异常,终止迭代 2.可迭代对象:实现了迭代器协议的对象 3.pytho ...

  6. python3 安装 basemap 包(windows10)

    下载 pyproj 和 basemap 的安装包 basemap 是具有专业标准的地图绘制工具,可以与 matplotlib 的一般绘图功能结合,在地图上绘制数据. basemap 文档:https: ...

  7. Solved: RDP Disconnected – Error Code 2825 mremote

  8. Unity - Photon PUN 本地与网络同步的逻辑分离 (二)

    上篇实现了事件系统的设计,这篇就来结合发送RPC消息 并且不用标记 [PunRPC] 先来看下上编的代码 GameEnvent.cs private static Dictionary<Comm ...

  9. js url参数解析获取

    function get_url_parm_list(str){ var params=str.substr(str.indexOf('?')+1); var param_list=[]; while ...

  10. 异步async与await的简单探究

    在学习.net core的过程中,到处见到异步的使用,Task.async.await随处可见.有点疑惑,就去了解了下这个过程是怎样的. 下面是一段代码,去看看是怎么执行的吧. 一.看看异步执行的方式 ...