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

模型名称 主要描述 关注点 作用
逻辑视图 在架构设计方面具有重要意义的部分,如类、子系统、包和用例实现的子集 系统的功能模块及其相互关系,已实现系统的业务目标。 展示系统主要的功能组件及交互关系,为系统设计提供功能框架。
进程视图 可执行线程和进程作为活动类的建模,是逻辑视图的一次执行实例,描述并发与同步结构 系统运行时的进程和线程的组织、交互,以及并发和同步机制。 体现系统的动态运行特征,有助于优化系统性能和可伸缩性。
实现视图 对物理代码的文件和构件进行建模。 软件构件在开发环境中的组织结构,包括代码的模块化、层次结构、软件包、类和接口的划分等 指导软件开发人员进行代码的组织和实现。
部署视图 把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。 系统的物理结构,包括硬件设备、网络设备的布局以及软件在硬件上的部署情况。 明确软件系统在硬件环境中的部署方式和拓扑结构。
用例视图 通过用例和参与者描述系统的功能需求。 系统如何被外部使用,重点关注用户交互和系统为用户提供的价值。 从用户角度描述系统功能,为系统的需求分析和功能验证提供依据。
相关推荐
国科安芯25 分钟前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座
云上工程笔记1 小时前
RDMA 高速互联 GPU 云怎么选:多卡训练、分布式训练与 RoCE/InfiniBand 架构对比
架构·云计算·gpu算力
IT_陈寒1 小时前
Redis内存警告竟是因为这个不起眼的配置项
前端·人工智能·后端
Python私教1 小时前
AI 漫剧角色一进分镜就变脸?把提示词升级成“角色 ID + 镜头合同”
后端
Python私教1 小时前
一次生成 20 个角色却全都撞脸:我用“角色合同”重做了批量生成流程
后端
用户594404103562 小时前
Go 语言高性能 Web 服务开发:基于 Gin + GORM + Redis 构建 RESTful API
后端
Python私教2 小时前
App 第一版该砍什么?用三问法守住 MVP 的工程底线
后端·mvp
这个DBA有点耶2 小时前
GaussDB和金仓KingbaseES本质差异:技术路线、Oracle兼容度、适用场景全解析
数据库·oracle·架构
ServBay2 小时前
AI 工程师必备的 9 个 Python 库,从数据验证到模型优化
后端·python·ai编程
Python私教3 小时前
软件开发报价差 3 倍,真正的工程冲突不在价格
后端·架构