UML是Unified Modeling Language的缩写,是一种统一建模语言,多用在面向对象开发系统设计,这篇文章主要介绍一下包括类图在内的常见的UML图。
UML图分类
按照用途或者静态/动态的方式,UML图可以进行如下划分
UML图 | 用途 | 静态/动态 |
---|---|---|
用例图 | 用例视图 | 静态图 |
类图 | 设计视图 | 静态图 |
对象图 | 设计视图 | 静态图 |
包图 | 设计视图 | 静态图 |
时序图 | 进程视图 | 动态图 |
构件图 | 实现视图 | 静态图 |
部署图 | 拓扑视图 | 静态图 |
状态图 | 进程视图 | 动态图 |
活动图 | 进程视图 | 动态图 |
协作图 | 进程视图 | 动态图 |
用例图
用例图主要用于描述用户、需求以及功能单元之间的关系。用例图中主要有参与者(Actor)、用例(case)以及子系统(SubSsytem)三种元素构成。
之间的关系主要有如下四种:
类型 | 英文 | 符号说明 | 箭头指向 | 备注说明 |
---|---|---|---|---|
关联 | Association | 箭头+实线 | 指向用例 | 描述参与者与用例之间的关系 |
继承/泛化 | Inheritance | 空心三角箭头+实现 | 指向父参与者或者父用例 | 描述参与者之间的关系、或者描述用例之间的关系 |
包含 | Include | 虚线+箭头 | 指向包含的用例 | 描述包含用例之间的关系 |
扩展 | Extend | 虚线+箭头 | 指向基础用例 | 描述用例和扩展用例之间的关系 |
类图
类图由用例图抽象而成,用于描述类的内部结构以及类之间的静态关系的视图。
类图之间的关系主要包括如下6种。
类型 | 英文 | 符号说明 | 箭头指向 | 备注说明 |
---|---|---|---|---|
继承 | Generalization | 空心三角箭头+实线 | 指向父类 | 继承关系 |
实现 | Realization | 空心三角箭头+虚线 | 指向接口 | 接口实现 |
组合 | Composition | 实心菱形+箭头 | 箭头指向部分、菱形指向整体 | 部分不能脱离整体独立存在 |
聚合 | Aggregation | 空心菱形+箭头 | 箭头指向部分、菱形指向整体 | 部分可以脱离整体独立存在 |
关联 | Association | 箭头+实线 | 指向 | 拥有(has) |
依赖 | Dependency | 箭头+虚线 | 指向被使用者 | 调用关系 |
对象图
可以看作类图在某一特定时刻的实例,用于描述对象在交互过程中的关联。
包图
不关注低层次的实现,是相较于类图的更高的层次的设计
状态图
主要关注于类对象在何种条件下进行变化的状态的变换过程。
活动图
主要关注活动状态下的流程变化情况,可以理解为状态为活动状态下的流程图,在实际使用中往往可以结合泳道进行活动状态的描述。
时序图
时序图是在用例图类图的基础上进一步细化,用于描述更细粒度的流程和交互。通过各种对象生命线来确认其生命周期,通过同步或者异步消息的方式进行等待或者不等待的交互处理。操作的内容写在线上,同时可以设定约束条件。
协作图
时序图是从时间的角度对各种对象之间的关联进行描述,而协作图则重点对各组对象之间协作和交互的情况的描述。
部署图
部署图是用于描述系统运行时各组间之间的关联状况,比如可以包括软硬件的情况以及连接的各组件的情况。
转载:https://blog.csdn.net/liumiaocn/article/details/104372504
查看评论