架构设计中的4+1视图

架构设计中的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)即统一软件开发过程,用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。

模型名称 主要描述 关注点 作用
逻辑视图 在架构设计方面具有重要意义的部分,如类、子系统、包和用例实现的子集 系统的功能模块及其相互关系,已实现系统的业务目标。 展示系统主要的功能组件及交互关系,为系统设计提供功能框架。
进程视图 可执行线程和进程作为活动类的建模,是逻辑视图的一次执行实例,描述并发与同步结构 系统运行时的进程和线程的组织、交互,以及并发和同步机制。 体现系统的动态运行特征,有助于优化系统性能和可伸缩性。
实现视图 对物理代码的文件和构件进行建模。 软件构件在开发环境中的组织结构,包括代码的模块化、层次结构、软件包、类和接口的划分等 指导软件开发人员进行代码的组织和实现。
部署视图 把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。 系统的物理结构,包括硬件设备、网络设备的布局以及软件在硬件上的部署情况。 明确软件系统在硬件环境中的部署方式和拓扑结构。
用例视图 通过用例和参与者描述系统的功能需求。 系统如何被外部使用,重点关注用户交互和系统为用户提供的价值。 从用户角度描述系统功能,为系统的需求分析和功能验证提供依据。
相关推荐
骑着bug的coder几秒前
第11讲:主从复制与读写分离架构
后端·mysql
love_summer1 分钟前
代码中的“留白”艺术:Python空语句pass的设计哲学与最佳实践
后端
6***830515 分钟前
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
spring boot·后端·skywalking
信创天地20 分钟前
核心系统去 “O” 攻坚:信创数据库迁移的双轨运行与数据一致性保障方案
java·大数据·数据库·金融·架构·政务
有追求的开发者39 分钟前
2025 年终总结:一个 Python DevOps 的成长之路
后端
有追求的开发者43 分钟前
别再等缓存自己"热"起来了!Python后端必会的预热技巧 🚀
后端
乌暮43 分钟前
JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
java·开发语言·后端·学习·面试·java-ee
李少兄44 分钟前
B/S 架构:现代 Web 应用的核心架构模式
前端·架构·b/s
内存不泄露44 分钟前
基于Django和Vue3的文件分享平台设计与实现
后端·python·django