UML图主要包含9类,下面我重点详解UML图的9种图,看完后你会对UML图有非常清楚的了解@mikechen
UML用例图
UML用例图:主要用来描述角色,以及角色与用例之间的连接关系。
UML用例图是由参与者、用例、边界和关系构成,如下图所示:
1.参与者
参与者表示系统进行交互的用户、组织或者外部系统,用一个火柴人表示。
2.用例
用例:用例就是外部可见的系统功能,对系统提供的服务进行描述,通常用椭圆表示。
如下图所示:
用例一般用“动词 名词”表示,表明了系统能做什么事情,比如:登录app、下订单、支付等等。
3.系统边界
系统边界:将系统内外分开,参与者在外面,用例在里面,系统边界能清晰的表达出系统的范围。
通常用矩形框表示,如下图所示:
UML类图
UML类图是用来描述系统中的类以及各个类之间的关系。
UML类图包含:
- 类或者类与接口的继承关系;
- 类之间的依赖、聚合等关系;
- 还描述每一个类的详细信息,包括变量,和方法;
单个类图则只是表达了系统的一个方面,系统中可以有多个类图。
UML类图可以帮助我们在正确编写代码之前对系统有个很全面的认识,是建模中最常见的一种类型图。
UML对象图
UML对象图,描述的是一组对象之间的关系,而不是类之间的关系。
UML对象图是UML类图的变体,但是又与之不同,对象显示的类的多个对象而不是实际的类。
UML活动图
UML活动图,指的是从一个活动到另一个活动的控制流,描述活动的顺序,活动表示处理事物的动作和状态。
以小张早晨起床上班的活动为例:
活动描述:小张每天醒来后先看表是否到起床时间,如果没到继续睡觉,如果到了,抓紧时间起床,洗漱完毕后吃早餐,饭后出门。
用活动图绘制如下:
上图绘制的就是小张早晨日常生活的活动图,通过这种图形化模型可以把动作的流程性表达的更加清楚,动作的内容、流程、判断、交互、并发都能很好的表达。
活动图分析:
开始与结束:活动图只能有一个起点,但可以有多个终点的。
分支判断:菱形代表分支判断,这个与流程图的分支判断是一样的。
分叉与汇合:分叉表示一个活动完成后产生后续的多个并行的活动,汇合表示多个活动全部完成后再进行下一个活动
UML状态图
UML状态图,即描述一个对象所处的可能状态以及状态之间的转移。
UML状态图作用
1)为系统的动态方面建模,让系统的信息表述的更全面;
2)描述一个物体在其有生之年的不同状态,是处于触发,还是休眠,或者是死亡;
3)建立对象的生命周期模型,有利于程序员设计对象的方法等;
4)帮助程序员了解需求提高编码速度。
UML时序图
UML时序图,又叫序列图或者顺序图,是一种用来描述对象之间传送消息的时间顺序,是用来表示用例中的行为顺序。
UML时序图的常用元素分别有:
- 对象角色;
- 生命线;
- 会话;
- 消息;
如下图所示:
每次梳理流程,跟开发沟通,我都会借助它来描述。
绘制时序图,将一个个对象和其交互动作列出来,可以直观反映出,每个对象对其他对象、或其自身做的交互动作。
UML时序图如下图所示:
UML协作图
UML协作图,又叫通信图,它强调的是对象之间的交互关系。
UML协作图组成
1. 对象
协作图与顺序图中的对象的概念是一样,如下图所示:
2. 链
表示对象之间的语义关系,协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个对象的实线。
如下图所示:
3. 消息
有同步异步等消息,如下图所示:
UML协作图实例
UML组件图
UML组件图,又叫构件图,是用来描述组件与组件之间关系的一种UML图。
UML组件图 = 构件(Component) + 接口(Interface) + 关系(Relationship) + 端口(Port) + 连接器(Connector)。
如下图所示:
UML部署图
UML部署图用来显示系统中硬件和软件的物理架构,从中可以了解到软件和硬件组件之间的物理拓扑、连接关系以及处理节点的分布情况。
UML部署图中的主要元素有节点(Node)、构件(Artifact)和连接(Link)、部署规约(Deployment Specification)等等。
1.节点(Node)
节点代表计算机资源的物理元素,可以是硬件也可以是运行其上的软件系统。
比如:服务器主机、Linux操作系统等,一般用立方体表示,如下图:
2.构件(Artifact)
构件是软件开发过程中的产物,包括过程模型,比如:用例图、设计图、以及源代码、可执行程序、设计文档、需求原型、用户手册等。
构件表示如下:
构件表示一个软件部件,节点表示一个硬件部件,这是构件与节点的核心区别。
3.连接(Association)
连接(Connection)用于表示两个节点之间的硬件连接(物理连接)。
连接用一条实线段表示,可以通过构造型或约束对连接的通信路径或通信方式进行描述。
如下图所示:
4.部署图关系
1)依赖
依赖是节点的物件之间存在相互调用的弱关系,如下图所示:
2)关联
节点间的通信方式,跟具体的协议有关,比如TCP/IP, ftp, http, soap, web service等
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》