架构描述
4+1架构视图
逻辑视图
系统提供给用户的功能,对应UML的类图和状态图
类图
状态图
处理视图
系统处理的过程,对应UML的时序图和活动图
时序图
活动图
开发视图
程序员角度看系统的逻辑组成,对应UML的包图
物理视图
系统工程师角度看系统的物理组成,对应UML的部署图
场景视图
用户角度看系统需要实现的需求,对应UML的用例图
4+1架构视图的缺点
- 4+1架构视图提出的时候是1995年,那时候大部分的系统还是单体系统,而现在大部分是分布式系统。随着架构复杂度的提升,UML的表达能力不够
- 4+1架构视图绑定UML图,灵活性不够,也不美观
- 4+1架构视图的逻辑视图、开发视图、处理视图比较容易混淆,难理解
目前国内流行的架构图
业务架构
定义
描述系统对用户提供了什么业务功能,类似4+1的场景视图
使用场景
- 产品人员规划业务
- 给上层汇报业务
- 给新员工培训业务
- 整体架构设计
画图技巧
- 通过不同的颜色来识别业务状态
- 业务分组管理
样例
前端架构/客户端架构
定义
前端/客户端的领域逻辑架构,类似4+1视图里的逻辑视图
使用场景
- 整体架构设计
- 架构培训
画图技巧
用不同的颜色来标识不同的角色
用连线标识关联关系
样例
系统架构
定义
后端的逻辑架构,又称“后端架构”、“技术架构”
使用场景
- 整体架构设计
- 架构培训
画图技巧
- 通过不同的颜色来标识不同的角色
- 用连线标识关联关系
样例
如果系统简单,画一张
如果系统复杂,画两张(功能示意图、交互示意图)
应用架构
定义
描述后端系统由哪些应用组成
使用场景
- 项目开发测试
- 部署发布
- 子域架构设计
画图技巧
- 通过不同颜色来标识不同角色
- 通过连接线来表示关系
样例
相对简单的系统架构和应用架构是等价的。一般中间件都相对比较简单,所以一般情况下它们的系统架构和应用架构等价,比如Redis
部署架构
定义
描述后端系统具体如何部署,对应4+1视图里面的物理视图
使用场景
- 总体架构设计
- 运维规划和优化
画图技巧
- 用图标代替区块
样例
系统序列图
定义
描述系统运作规则,属于动态架构图