几分钟几张图教你学会如何使用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中,我们用分成三 ...
随机推荐
- vue 打包后本地先自己启动服务 anywhere 非常好用
:)nodejs服务器Anywhere Anywhere是一个随启随用的静态服务器,它可以随时随地将你的当前目录变成一个静态文件服务器的根目录. 一,安装node 在nodejs官网下载,安装后打开c ...
- 10.Redis分布式集群
10.Redis分布式集群10.1 数据分布10.1.1 数据分布理论10.1.2 Redis数据分区10.1.3 集群功能限制10.2 搭建集群10.2.1 准备节点10.2.2 节点握手10.2. ...
- FastDFS防盗链
FastDFS扩展模块内置了通过token来实现防盗链的功能.开启防盗链后,访问文件是需要在url中加两个参数:token和ts.ts为时间戳,token为系统根据时间戳和密码生成的信物.为了系统的安 ...
- oracle的部分增删查改
1. 创建表空间 create tablespace (demo)表名 logging datafile( 表空间存放的位置) ‘D:\app\Administrator\oradata\orcl\ ...
- 服务管理之httpd
目录 1. httpd简介 2. httpd版本 2.2 httpd-2.4新增的模块 3. httpd基础 3.1 httpd自带的工具程序 3.2 rpm包安装的httpd程序环境 3.3 web ...
- 解决Ubuntu 16.04 上Android Studio2.3上面运行APP时提示DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs的问题
本人工作环境:Ubuntu 16.04 LTS + Android Studio 2.3 AVD启动之后,运行APP,报错提示: DELETE_FAILED_INTERNAL_ERROR Error ...
- rsync @ERROR: auth failed on module backup 解决思路及附录rsync常见问题及解决办法
昨晚小版本上线,使用rsync往服务器上传文件时,client报如下异常: @ERROR: auth failed on module backup rsync error: error starti ...
- angularJs 2-quickstart学习记录
angular官网文档 我尝试文档中下载<快速起步>种子的方法进行quickstart. cd quickstart npm install npm start npm install 这 ...
- java的OSGi确实是个坑
sun已经把java的OSGi这个坑填得够深了,sun估计短时间想把这个坑调回来是不可能了,跟.net比包管理模块化开发确实java够烂的. java的模块化架构开发只能让OSGi回去睡觉,自定义模块 ...
- xbee3的先进性功能用法
xbee3以及xbee3 PRO 是digi无线模块的又一大突破:不仅实现了所有2.4G的模块整合,更在以后的程序更新中会增加蓝牙功能:它打通了xbee系列1和系列2之间的壁垒:不同于xbee S2C ...