1、类图
泛化
(也就是我们传统意义上的继承关系)
子类继承父类,关系用extend关键字标识;
关联
可以说是一种属于关系,图中即说的是PhoneNumber类属于Master类,同时,除了一对一的关系之外,还可以用一对多、多对一、多对多的关联关系,除了单向关联之外,双向关联也是存在的;
需要注意的是,在关联关系里面,还有着两种特殊的关系:聚合和组合
聚合
--体现出来的是整体与部分的关系,是一种“弱拥有”关系,部分能够脱离整体而单独存在
如上图所示,轮胎能够脱离汽车而单独存在;
组合
体现出来的是一种包含的关系,关系比聚合更强,是一种“强聚合”的关系,部分不能离开整体而单独存在
部门不能脱离掉公司而单独存在;
依赖
指一个类依赖于另一个类而存在;
上图就是指的是Person类依赖于Air类,即Person类的存在使用了Air类;
实现
一个class类实现一个interface接口;
用implements关键字标识;
2、UML的9种图
1、用例图
标识一个系统中用例与参与者关系之间的图,描述系统中相关用户和系统对不同用户提供的功能和服务
用例图构成--参与者、系统边界、用例、关联
用例图主要是从用户角度,描述系统的功能;
关系
参与者和用例之间,主要就是关联关系;
参与者和参与者之间,主要是泛化关系,即某个参与者继承到某个参与者的功能;
用例和用例之间,主要有包含、泛化、扩展关系;
2、类图
若干类关联在一起,反映系统或者子系统组成结构的静态图
类图主要作用是用来描述软件系统中各个类的结构和类之间的关系
类图构成--类名、属性、操作
类的种类
实体类:
控制类:
边界类:
类图间关系--泛化、依赖、关联、实现、组合、聚合(同上面提到的各种关系)
仅仅举例泛化:
3、对象图
描述参与交互的各个对象在交互过程中某一时刻的状态
对象图表示--由对象和链组成
4、状态图
描述类的所有对象的可能的状态,以及事件发生时状态的转移条件
状态图组成元素--初始状态、终止状态、状态;
其中,圆角矩形表示状态;
状态转换
状态判定
5、活动图
描述活动的顺序,展现一个活动到另一个活动的控制流
活动图组成元素--动作、活动、动作流、分支与合并、分叉与汇合、泳道、对象流
需要注意的是,活动图是状态图的一种特殊情况;
6、时序图
描述以时间顺序组织的对象之间的交互活动
顺序图组成元素--对象、生命线、激活、消息
对象--参与交互的基本单位:
生命线--表示对象在一段时间内存在:
激活--表示一个对象执行一个动作所经历的时间段,对象接收到消息活动就开始:
消息--一条消息是一次对象间的通信:
顺序图消息类型--同步消息、异步消息、返回消息
同步消息--有阻塞等待的风险(实心箭头):
异步消息--不需要等待(直接的箭头--一半儿):
返回消息--消息指向返回的方向(虚线表示):
7、协作图
强调收发消息的对象的组织结构
协作图构成--对象、消息、链
作用
表现一个类操作的实现,显示对象及其交互关系的空间组织结构
8、构件图
表示系统中构件与构件之间,以及定义的类或接口与构件之间的关系的图
构件图构成--构件、接口、依赖关系
9、部署图
用来显示系统中软件和硬件的物理架构--用来建模系统的物理部署
10、包图
描述模型中的包和所包含元素的组织方式的图。包含元素以及包之间的关系
包图作用--用来组织用例图和类图
包图所用关系--主要使用的是依赖关系和泛化关系