1. 引言
系统架构图是为了具象地呈现软件系统的整体轮廓、各个组件之间的相互关系和约束边界,以及物理部署和演进方向的整体视图。软件架构图是一种非常好的表达方式,一图胜千言,在项目评审、内部交流、方案归档以及晋升答辩中,好的系统架构图大有裨益。
系统架构图虽好,但也不可滥用。在互联网领域,对于一个较为复杂的软件系统,由于业务迭代频繁,通过创建和维护系统设计图来提供准确且有价值的内容并非易事。很多时候,工程师容易陷入误区:为系统中具有高波动性的部分创建详细的设计图,进而增加维护成本,甚至演变成一种负担。此外,大多数利益相关者(如产品、运维、测试)通常只对反映系统模块和边界的高级架构图感兴趣,而对详细的系统设计图并不感兴趣。鉴于以上因素,绘制系统架构图应充分考虑场景和受众。
2. 传统的“4+1”画图法
1995年,Philippe Kruchten 在 IEEE Software 上发表了题为 The 4+1 View Model of Architecture 的论文,引起了业界的极大关注,并最终被 RUP 采纳。根据“4+1”视图,系统架构图可以分为场景视图、逻辑视图、物理视图、处理流程视图和开发视图,如下图所示: