架构设计中的4+1视图

371 阅读3分钟

架构设计中的4+1视图

前言

4+1视图,是软件体系结构设计中非常重要的一个概念,由Kruchten在1995年提出。4+1视图,从5个不同的角度来对软件体系结构进行描述,每个视图只关系一个侧面,5个视图结合在一起才能反映软件体系结构的全部内容。

架构4+1视图模型与RUP中4+1模型(UML)本质上是同一概念,它们的核心思想一致。

架构4+1视图模型

pako_eNqtks9v0zAUx_-V6B1QJ6VdEyeNE6Ze4Mo_AObgJm9ptMSObGdjVJV2GkwcgOO03YETd5i2v6ZrOfEv4CaFdUJCO-CD9X32e9-Pf7wZpDJDSGBSyvSgP0HDmXDsSGXZVEI7pAu9HoMfJ99X1x9Xn04XF9d7E7U7LmVepLx0Dgs8YrDTZY72XjB4JCa6fvzwmcHLcU8V-dRsXHzLW.png

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

RUP4+1视图

RUP(Rational Unified Process)即统一软件开发过程,用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。

pako_eNqtk19v0lAYxr8KOReGJQwpbaHUhRu99QtovSj0DBrbHtI_zklImBJkwWxgFrMIwRFjxMQw0GR_aGAfRtrTfQtPWwa9MruwF81zTt7zvr88zzlVUEQSBDwoKKj4crsATVHQYuQrIsVSNSNGh0sqLgD828b2F6fVdAedP_UDb7zwxsPlbOZ0T3cK-sP8bd32Fl3ve9PpLYINBZXko.png

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