架构设计中的4+1视图
前言
4+1视图,是软件体系结构设计中非常重要的一个概念,由Kruchten在1995年提出。4+1视图,从5个不同的角度来对软件体系结构进行描述,每个视图只关系一个侧面,5个视图结合在一起才能反映软件体系结构的全部内容。
架构4+1视图模型与RUP中4+1模型(UML)本质上是同一概念,它们的核心思想一致。
架构4+1视图模型

视图 | 关注点 | 描述内容 | 目标受众 | 关键问题 | 常用建模工具 |
---|---|---|---|---|---|
逻辑视图 | 系统的功能需求及设计,即系统如何实现其功能 | 模块、类、接口、对象、组件及其关系(如面向对象设计中的类图、包图) | 开发人员、设计师 | UML类图、包图、组件图 | |
开发视图 | 系统的实线和构建,即代码的组织结构 | 包、模块、子系统、文件、目录结构、构建工具链(如UML活动图、部署图的部分内容) | 开发人员、构建工程师 | 代码如何分层、模块化?如何管理依赖? | |
过程(进程)视图 | 系统的动态行为,尤其是并发、通讯和同步机制 | 进程、线程、任务、通讯协议、调度策略等(如UML活动图、状态图、序列图) | 系统工程师、性能优化人员 | 系统如何处理并发、分布式通讯和资源竞争? | |
物理视图 | 系统的物理部署和硬件拓扑结构 | 服务器、网络设备、存储设备、节点间的连接关系(如UML部署图) | 系统管理员、运维人员、网络工程师 | 系统如何部署?硬件资源如何分配? | |
场景视图 | 系统的实际使用场景和用户交互流程。 | 用例(use cases)、用户故事、业务流程(如UML用例图、活动图) | 客户、用户、产品经理 | 作为其他视图的纽带,通过场景验证架构设计的合理性。 |
RUP4+1视图
RUP(Rational Unified Process)即统一软件开发过程,用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。

模型名称 | 主要描述 | 关注点 | 作用 |
---|---|---|---|
逻辑视图 | 在架构设计方面具有重要意义的部分,如类、子系统、包和用例实现的子集 | 系统的功能模块及其相互关系,已实现系统的业务目标。 | 展示系统主要的功能组件及交互关系,为系统设计提供功能框架。 |
进程视图 | 可执行线程和进程作为活动类的建模,是逻辑视图的一次执行实例,描述并发与同步结构 | 系统运行时的进程和线程的组织、交互,以及并发和同步机制。 | 体现系统的动态运行特征,有助于优化系统性能和可伸缩性。 |
实现视图 | 对物理代码的文件和构件进行建模。 | 软件构件在开发环境中的组织结构,包括代码的模块化、层次结构、软件包、类和接口的划分等 | 指导软件开发人员进行代码的组织和实现。 |
部署视图 | 把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。 | 系统的物理结构,包括硬件设备、网络设备的布局以及软件在硬件上的部署情况。 | 明确软件系统在硬件环境中的部署方式和拓扑结构。 |
用例视图 | 通过用例和参与者描述系统的功能需求。 | 系统如何被外部使用,重点关注用户交互和系统为用户提供的价值。 | 从用户角度描述系统功能,为系统的需求分析和功能验证提供依据。 |