--- 后之视今,亦犹今之视昔!
目录
早期系统架构图
早期系统架构视图
第一次系统架构视图正式出现,是1995年Philippe在IEEE发表论文《The 4+1 View Model of Architecture》。并演变为RUP 4+1系统架构视图方法。下图是论文原图对4+1的阐释。文章介绍了如何通过这5种视图来表达【软件架构是什么】。
论文原图
4+1视图解读
Philippe的4+1,分别为逻辑视图、开发视图、处理视图、物理视图及场景视图。
从不同的角度来展示软件系统的设计。眼耳鼻舌身意,感知世界也总要分那么多的类型。
每个分类和具体的应用,可以看下涛哥的 架构蓝图--软件架构的"4+1"视图模型 - 知乎
4+1架构视图缺点
毕竟是95年提出的概念,4+1视图很多方面并不能适应现代的软件工程了。
- 架构复杂度增加,目前大部分系统已由单体系统进化为分布式系统
- 强绑定UML图,UML不能很好地表达架构图
- 理解不一致的问题,逻辑视图、开发视图、处理(process)视图比较容器混淆
现代系统架构图的指导实践
业务架构
描述系统为用户提供了什么业务功能,重点在于业务逻辑。类似于4+1视图中的场景视图。但其组织形式和美观程度不是用例图可以提供的。
例子
使用场景
- 产品人员规划业务
- 给高P汇报业务
- 给新员工培训业务
画图技巧
- 通过不同颜色来标识不同角色
- 业务分组管理
客户端架构、前端架构
类似与4+1中的【逻辑视图】。客户端和前端的领域逻辑架构。
例子
使用场景
- 整体架构设计
- 架构培训
画图技巧
- 通过不同颜色来标识不同角色
- 通过连接线表示关系
系统架构
例子
定义
后端的逻辑架构,又叫后端架构、技术架构。
【个人理解】:系统架构个人认为应该包含业务架构+应用架构。来表示软件系统提供什么样的业务能力、解决方案,同时这个系统的子模块、子系统的组成。让技术人员形成一个整体的宏观认知。
使用场景
- 整体架构设计
- 架构图培训
画图技巧
- 通过不同颜色来标识不同角色
- 通过连接线表示关系
应用架构
例子
定义
描述后端系统由哪些应用组成。有点类似开发视图。应用架构有时和系统架构等价的。但如果软件系统更大更复杂, 系统架构则看起来需要使用业务架构+应用架构等多个来组成。
使用场景
- 项目开发、测试
- 部署发布
- 子域架构设计
画图技巧
- 通过不同颜色来标识不同角色
- 通过连接线表示关系
部署架构
例子
定义
描述后端系统具体如何部署。对应4+1视图的物理视图。
使用场景
- 总体架构设计
- 运维规划和优化
画图技巧
- 用图标代替区块
系统序列图
为什么系统序列图
组成角色 Role、角色关系 Relation
动态架构图 需要用系统序列图表示。(时序图)
从架构图到序列图
参考引用
Kruchten P. Architectural Blueprints---The "4+ 1" View Model of Software Architecture. 1995[J]. IEE Software, 2005, 12(6)