目录
一、概述
4+1视图包括:
- 场景视图(也叫用例视图):黑盒视图。从外部视角,描述系统的参与者(用户)与系统功能用例的关系。反映的是系统的最终用户需求和交互设计。
- 逻辑视图(也叫结构视图):白盒视图。从结构化视角,描述该系统对用户提供的所需功能服务所具备的组件结构和数据结构,以及一些边界约束条件,清晰的描述给用户提供的功能需求服务是如何构建的。描述该系统内部所具备了那些组织结构,以达到实现对外功能。
- 开发视图(也叫实现视图):白盒视图。从结构化视角和行为视角,去描述实现系统功能的各个组件和模块是如何实现的。
- 处理视图(也叫过程视图、行为视图):白盒视图。从行为视角,描述系统各个组件和模块是如何进行通信的。
- 物理视图(也叫部署视图):黑盒视图。从交互视角,描述系统可以部署到哪些物理环境(如服务器、PC端、移动端等)上和软件环境(如虚拟机、容器、进程等)上。
二、各视图详解
1. 场景视图
场景视图之所以是4+1视图的核心1,其他4个视图都是围绕场景视图为核心。
在UML中通常用用例图表示:
什么是用例图?
- 【概念】用例图是指由参与者、用例,边界以及它们之间的关系构成的用于描述系统功能的视图。
- 【目的】用来描述整个系统的功能。
用例图中包含以下三种关系:
- 包含关系使用符号《include》,想要查看订单列表,前提是需要先登录。
- 扩展关系使用符号《extend》,基于查询订单列表的功能,可以增加一个导出数据的功能
- 泛化关系,子用例继承父用例所有结构、行为和关系。
2. 逻辑视图
在系统设计中,如果系统的功能、场景等比较清晰,可能会对用例视图进行简化,但却不可以没有逻辑视图。
逻辑视图是对系统职责的的逐级划分,描述了体系中各个功能组件,以及他们的层级关系,作用和依赖范围。下面举几个例子:
springcloud微服务的逻辑视图:
Java体系架构逻辑视图:
逻辑视图颗粒度比较大,其中的功能组件元素决定开发组织(每个功能模块由哪个团队去开发),因此,功能组件的边界和接口也是后续多个开发组织之间进行接口控制的关系依据。设计合理的逻辑架构,可以提升团队的沟通效率,进而提升整个系统的交付效率和质量。
3. 开发视图
描述开发文件在系统中如何组织,其元素是文件和目录。
一个设计良好的开发视图,应该能够满足以下要求:
通过逻辑架构元素,能够找到它所有代码和所有的二进制交付件每一个代码源文件,都能够找到它所属的逻辑架构元素每一个二进制交付件,都能够找到它集成了哪些逻辑架构元素。
4. 处理视图
用于描述系统组件之间的通信时序。在UML中通常由时序图和流程图表示。
5. 物理视图
描述系统在物理环境或软件环境上的部署。在UML中通常由部署图表示。
葵花宝典:一看就懂的理解方式
-
Use-case view 用例视图:描述系统功能、外部接口和主要用户。架构的所有元素都应该源于需求。
-
Logical view 逻辑视图:描述系统是如何由实现单元组织起来的。其元素是:包、类和接口。元素之间的关系包括依赖关系、接口实现关系、部分-整体关系等等。
-
Implementation view 实现视图:描述开发文件在文件系统中是如何组织的。其元素是文件和目录(任何配置项)。这包括开发工件和部署工件。
-
Process view 进程视图:一般是时序图。
-
Deployment view 部署视图:描述系统如何映射到硬件。
参考优秀博客:
【软件建模】详解架构4+1视图-云社区-华为云 (huaweicloud.com)