最近刚好有空,遂决定对应 UML 常用的一些图进行整理,供自己以及需要的人查阅。
UML 分为静态模型与动态模型。静态模型描述一个系统的静态特征,固定的框架结构。包括用例图、类图、对象图、组件图、部署图;动态模型包括时序图、协作图、状态图、活动图。本文将主要对用例图、类图、时序图、状态图的使用进行了简要介绍。
一、静态建模
1 用例图(use case )
1.1 作用
展示系统的核心功能及与其交互的用户。系统可以是整个系统,也可以是某个局部,但用户一定是在该系统外。
1.2 要素
用例(use case):也就是一个相对独立的功能。
参与者(actor):与用例存在交互关系的外部实体。
关系:包括参与者与用例间的关系,参与者之间的关系,以及用例间的关系。
1.3 语法
用例 用椭圆表示,中间写上功能名。
参与者 一般是一个小人的形状。
关系 用带箭头的直线表示,箭头表示信息传输方向,如果不关注信息的流向,也可省略箭头。
1.4 举例
如图是某视频软件播放系统的用例图,我们能从中获取的最主要信息是什么呢?显然是普通用户能使用播放、暂停、选集、查历史记录的功能,而会员用户还能使用投屏功能。
2 类图
类图是我们使用较多且相当实用的一种图。
2.1 作用
展现多个类的特性,以及类之间的协作与交互,用来对系统的静态结构进行建模。
2.2 要素
类:包括类名、属性和方法三部分。
接口:这里指的是接口类,不可被实例化,只可被实现。
关系:类之间的关系主要有以下几种:
- 关联 事物之间的一种基本关系,如老师和学生间有教学关系,员工和公司间是雇佣关系。
- 组成关系 包括组合金额聚集,前者部分与整体的联系更紧密。(1)聚集 表示多个同类型的部分构成了整体,如森林是树木的聚集,蚁群是蚂蚁的聚集。(2)组合 同一事物整体与局部的紧密组成关系。如人组合了眼睛,眼睛组合了眼球。
- 依赖 这个关系不好描述,如农民使用锄头种地,鱼依赖水存活,程序员通过chatgpt 干活。
- 泛化 类图里就是继承。
- 实现 实现某个接口。
需要明白,类之间的关系并不总是那么明确,比如关联和依赖,有时间就不太好判定。个人认为,也没必要过于较真究竟是哪种关系,