需求分析与建模61 条

4+1 视图模型

Kruchten 提出的架构视图方法:逻辑视图、进程视图、开发视图、物理视图,再加场景视图串联与验证,用于多受众分视角描述架构。

4+1 视图是什么

4+1 视图模型由 Kruchten 提出,用逻辑视图、进程视图、开发视图、物理视图四个视图分别面向不同关注点,再用场景视图串联并验证其余四个视图能否支撑关键用例。它的价值在于承认架构无法用一张图说清:业务关心功能划分,运维关心部署拓扑,开发关心代码组织,性能工程师关心并发与进程,各取所需又能互相对照。

5 个视图

视图关注点主要读者
逻辑视图功能与领域模型、关键抽象业务与设计人员
进程视图并发、进程、线程与通信性能与中间件工程师
开发视图代码组织、模块与依赖开发与构建工程师
物理视图部署与网络拓扑、节点分布运维与基础设施团队
场景视图关键用例串联验证全体评审者

基本信息

提出者Philippe Kruchten,用于描述软件密集型系统的架构
产物形式不限定记法,可分别用类图、组件图、部署图与顺序图承载
与 C4 的关系C4 更强调层级递进与单一读者,4+1 更强调多视角并行
常见裁剪小型系统可只保留逻辑、开发与物理三个视图
维护成本视图数量与维护成本成正比,按干系人需求裁剪

典型使用场景

  • 架构评审:为不同角色准备对应视图,避免一份文档谁都看不懂
  • 跨团队沟通:逻辑视图对齐功能边界,物理视图对齐部署责任
  • 性能评估:用进程视图分析并发模型与线程资源占用
  • 运维交接:以物理视图说明节点、网络与中间件分布
  • 方案验证:用场景视图走通关键用例,检查四个视图是否自洽
  • 遗留系统梳理:分别补齐视图,发现文档与实际实现不一致之处
场景视图不是附属品:用关键用例把四个视图串起来走一遍,能发现大量单看某个视图时看不到的矛盾,例如逻辑上独立而部署上必须同机。
五个视图各自维护且互不引用,会出现逻辑视图与物理视图矛盾而长期无人发现的局面。

易错点

  • 只画逻辑视图就认为架构描述完成,部署与并发问题从未被讨论
  • 视图之间不交叉验证,同一组件在逻辑与物理视图中名称与边界不一致
  • 为小系统强行补齐全部五个视图,文档维护成本超过收益
  • 场景视图缺失,关键用例的端到端可行性从未被验证
  • 视图更新不同步,只改其中一份,其他视图长期停留在旧版本

数据来源与参考

  • Philippe Kruchten《Architectural Blueprints — The 4+1 View Model》(IEEE Software, 1995)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌