几分钟几张图教你学会如何使用UML
很多初次接触UML的朋友们可能会感觉它各种各样的线条、关系、描述等晦涩难懂。本篇文章简单介绍了一下其中几个图,用最朴实的语言结合上图片来让你一眼就能理解他们,如果您在阅读的过程种发现错误之处恳请您在评论区指点。
1.类图、对象图、接口
这三种图是uml中最简单的图了,我想看了下方三张图片你就明白了:

在类中存在几种关系,是我们必须要掌握的:
- 一般化关系:表示类与类的继承、接口与接口之间的继承、类对接口的实现。

- 关联关系:类与类之间的关系,一个类持有另一个类的属性和方法,他可以是单向的也可以是双向的,但是不推荐使用双向的。
关联关系还包括一个属性:基数。基数就表明这一段的类可以有几个实例,就比如说唐僧肯定只有一个,但是徒弟就可以有很多。我们就可以使用下图来表示
- 聚合关系:它属于关联关系的一种,它表示的整体和个体的关系。例如电脑是由屏幕、键盘、鼠标等组成的

- 合成关系:它也是关联关系的一种,不过它的关系表示的是最强的,例如人是由大脑、心脏、四肢组成的(区分聚合和合成关系时可以想象类似于人体的不可分割的是合成关系,类似于机器的坏了可以换的是聚合)

- 依赖关系:依赖关系与一般化关系不同的是一般话关系是一个类持有另一个类的属性或方法,而依赖关系类中的方法参数为另一个类

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

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

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

5.时序图
时序图是用来描述对象之间的消息的流动顺序的,下面以一个简单的的注册流程为例分析:
在这个图片中,垂直的虚线叫做生命线,代表一个对象的存在时间。每一个箭头都是一个调用,生命线上白色的条叫做激活条,激活条代表的就是这次调用持续的时间

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

几分钟几张图教你学会如何使用UML的更多相关文章
- 三张图教你生成一个Android jar 库。
我看到非常多教人使用第三方开源组件的Android教程.都是在教基于源代码project的库导入,个人觉得非常不妥,觉得最恰当的方式是把源代码project生成一个jar再导入到目标project上使 ...
- 一张图让你学会Python
有编程基础的人一看就可以了解 Python 的用法了.真正的 30 分钟上手.国外一高手画的,现把它翻译成中文,入门超简单python入门神图 *单击放大
- 一张图教你搞定Mac App Store 应用安装包存储路径
还在为找不到App Store 更新应用的安装文件发愁吗?是否有过多个人同时需要更新Xcode,都自己下载一次的痛苦经历? 大家都知道通过苹果服务器下载东西,确实难耐!AppStore 甚至都经常提示 ...
- 一张图让你学会Python【转】
转自:http://blog.csdn.net/qq_30845505/article/details/51588423 有编程基础的人一看就可以了解 Python 的用法了.真正的 30 分钟上手. ...
- 一张图让你学会LVM
导读 随着科技的进步,人们不知不觉的就进入了大数据的时代,数据的不断增加我们发现我们的磁盘越来越不够用了,接下来就是令人头疼的事情--加硬盘,数据的备份与还原.LVM就是Linux下专门针对我们数据的 ...
- 一张图11招学会Python网络黑客
全部学起来: 第一招:搭建Python防范环境 第二招:扫描漏洞 第三招:暴力破解的秘密 第四招:防SQL注入 第五招:防命令注入 第六招:看清文件上传木马 第七招:看清Web攻击 第八招:利用Pyt ...
- 一张图教你读懂AI简史
- 一张图教你弄清楚linux虚拟机的静态IP设置原理 VMnet8
- 一张图让你快速学会UML(聚合、组合、依赖、继承、接口、类)
有朋友反映,一上来直接讲设计模式就算理解了,也不知道如何画出类图,那么我们就通过一张图,来图解如何应用UML正确表示类与类之间的关系. 这张图完整讲述了鸟类的生存. 首先是类:在UML中,我们用分成三 ...
随机推荐
- 【收藏】ETH以太坊各个环境的公共的RPC服务!!!
Choose a Network Use one of these endpoints as your Ethereum client provider or IPFS endpoint. NOTE: ...
- 关于Android UI 优化
之前项目为了同时兼容tv和手机端的UI,使用了百分比布局来动态计算控件的宽高,这种适配方案只关心屏幕的宽高(分辨率),与屏幕的像素密度无关. 在新的项目里也使用了这种方案.但是由于项目的运行硬件计算能 ...
- 执行sql语句后报1055-- this is incompatible with sql_mode=only_full_group_by
这个问题是mysql5.7中存在的问题,查看原因,在任意库执行select @@sql_mode,查到的结果为ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZER ...
- Linux-01初级学习
刚刚接触 Linux学习中的一点笔记`02 ps:自己学习过程中的记录,略菜,给没学过的纯小白 配置网络 1.虚拟网卡 2.虚拟机服务 我的电脑-->管理-->服务 3.修改网络配置文件 ...
- Mysql运行状态查询命令及调优详解
(转载自点击打开链接) MySQL运行状态及调优(一) 一.查看MySQL运行情况SHOW STATUS; 二.查看INNODB数据库引擎运行状态SHOW ENGINE INNODB STATUS; ...
- H5基础
<html> <head lang="en"> <meta charset="utf_8"> ...
- 用Python语言开发VTK程序的步骤
在Windows环境下用Python语言开发VTK程序 1.安装Python集成开发环境IDLE:下载地址:https://www.python.org/downloads/ 2.然后到VTK官网下载 ...
- tomcat 请求处理流程分析(基于nio)
在这里我先简单的说下bio和nio的区别 这里我以电话客服的情况来解释 bio 一个客户对应一个客服, 假如客户比较麻烦,中途不挂电话,或者去做其他事情了,而客服资源会被一直占用 导致的后果是系统处理 ...
- 关于python,完善我计算机知识的一步。
因为身为理科男,所以特别喜欢涉及其他领域的知识.而对我来说,计算机是很有诱惑力的--尤其是程序语言设计,懂得一门“外语”是多么的重要.大一时候接触过包括有计算机的基本知识,c语言,这个新的学期也开始接 ...
- dubbo入门学习 四 注册中心 zookeeper入门
一.Dubbo支持的注册中心 1. Zookeeper 1.1 优点:支持网络集群 1.2 缺点:稳定性受限于Zookeeper 2. Redis 2.1 优点:性能高. 2.2 缺点:对服务器环境要 ...

