UML图的分类有5大类,共九种,如图1所示
1.用例图
用例图解决的问题
1.谁去使用软件
2.系统的功能是什么,从用户的角度去描述系统的功能,并指出各个功能的执行者
2.类图
用户根据用例图抽象成类,描述类的内部结构和类和类之间的关系,是一种静态结构图,在UML类图中,常见的有几种关系,范化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
2.1 泛化
是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为
关注点:父类和子类
子类使用向上的实心白线白色箭头代表继承
2.2 实现
是一种类与接口的关系
关注点:类和接口
画图方式是和2.1中的泛化是相同的,但向上的箭头改为虚线,也就是继承的含义
2.3 关联
是一种拥有的关系,它使一个类知道另一个类的属性和方法,如:老师和学生,关联之间可以是双向的,也可以是单向的,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,这个关系在数据中使用的比较多,在实际开发中的体现是成员变量
箭头的指向是拥有者指向被拥有的对象,箭头末尾使用大于或者小于符号的那种箭头,而2.1,2.2使用的箭头是实心的三角形
2.4 聚合
整体和部分的关系,部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,聚合关系是关联关系的一种,关联和聚合在语法上可能无法区分
这里使用的箭头是拥有者方向是棱形(浅色),被拥有者是大于或者小于符号箭头
2.5 组合
是整体和部分的关系,但是部分不能离开整体而单独存在,比如公司和部门就是整体和部分的关系,组合关系是关联关系的一种,是比聚合关系还要强的关系,通过成员变量的关系来体现代码关系,和聚合不同的是,
开始使用的棱形应该换用其他的颜色,如更深的黑色
2.6 依赖
依赖关系是一种使用关系,也就是一个类的功能的实现必须要另一个类的协助,通过局部变量,方法的参数,静态方法等等体现
[箭头以及指向]
带虚线的箭头(大于或者小于类型),指向被使用的对象
2.7 类图的一个例子
3.对象图
描述的是参与交互的各个对象在交互过程中某一时刻的状态,对象图可以被看作是类图在某一时刻的实例
4.状态图
是一种由状态,变迁,事件和活动组成的状态机,用来描述类的对象所有可能的状态以及事件发生时态的转移条件
5.活动图
是状态图的一种特殊情况,这些状态大多处于活动状态,本质是一种流程图,它描述了活动到活动的控制流,活动图是一种表述过程基理,业务过程以及工作流的技术
5.1 带游道的活动图
泳道图的每个部分表明该活动是由哪些人或者哪些部门完成的,如下图所示
5.2 带对象流的活动图
用活动图描述某个对象的时候,可以把涉及到的对象放置到活动图当中,并用一个依赖将其连接到进行创建,修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流,对象流使用带有虚线的箭头进行创建
6.时序图
交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。
序列图的主要用途是把用例表达的需求,转化为进一步,更加正式层次的精细表达,用例常常被细化为一个或者更多的序列图。
6.1 生命线
生命线名称可以带下划线,当使用下划线时,意味着序列图中的生命线代表一个类的特定实例
6.2 同步消息
6.3 异步消息
6.4 注释
注释起点是小黑圆点,终点指向一个注释文档,没有箭头
6.5 约束 在横线上表示约束
返回的线应该用虚线
6.6 组合
组合片段用来解释交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或者子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程,常用的组合片段由抉择,选项,循环,并行
7.协作图
交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系,时序图按照时间顺序布图
8.构件图
构件图是用来表示系统中构件与构件之间,类与接口之间或构件之间的关系图,其中,构建图之间的关系表示为依赖关系
9.部署图
描述了系统运行时进行处理的节点以及在节点上活动的构件的配置,强调了物理设备以及之间的链接关系
描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的,平衡系统运行时的计算资源分布,可以通过链接描述组织的硬件网络或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型