一文看懂软件架构4+1视图

目录

一、概述 

二、各视图详解

1. 场景视图

2. 逻辑视图

3. 开发视图

4. 处理视图

5. 物理视图

葵花宝典:一看就懂的理解方式


一、概述 

 4+1视图包括:

  1. 场景视图(也叫用例视图):黑盒视图。从外部视角,描述系统的参与者(用户)与系统功能用例的关系。反映的是系统的最终用户需求和交互设计。
  2. 逻辑视图(也叫结构视图):白盒视图。从结构化视角,描述该系统对用户提供的所需功能服务所具备的组件结构和数据结构,以及一些边界约束条件,清晰的描述给用户提供的功能需求服务是如何构建的。描述该系统内部所具备了那些组织结构,以达到实现对外功能。
  3. 开发视图(也叫实现视图):白盒视图。从结构化视角和行为视角,去描述实现系统功能的各个组件和模块是如何实现的。
  4. 处理视图(也叫过程视图、行为视图):白盒视图。从行为视角,描述系统各个组件和模块是如何进行通信的。
  5. 物理视图(也叫部署视图):黑盒视图。从交互视角,描述系统可以部署到哪些物理环境(如服务器、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)

一文掌握14种UML图-腾讯云开发者社区-腾讯云 (tencent.com)

详解系统架构的“4+1”视图 (zhihu.com)

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分布式数据库原理是指将数据分散存储在不同的物理节点上,通过网络进行通信和数据同步的数据库系统。它可以提高数据库的可扩展性、容错性和性能。 分布式数据库的设计思想是将数据划分为多个分片,每个分片存储在不同的节点上。通过数据划分,可以将数据存储在离用户更近的节点上,提高数据的访问速度。同时,分布式数据库可以通过数据复制和数据分发来提供容错性。数据复制可以将数据备份到多个节点上,当某个节点发生故障时,系统可以自动切换到其他节点上继续提供服务。数据分发可以将请求分发到不同的节点进行处理,提高系统的并发处理能力。 PostgreSQL是一种开源的关系型数据库管理系统,具备分布式架构。PostgreSQL的分布式架构包括一个主节点和多个从节点。主节点负责接收用户的请求,并将数据同步到从节点上。从节点可以进行读操作,提高系统的并发处理能力。如果主节点发生故障,从节点可以自动切换为主节点,保证系统的可用性。 PostgreSQL的分布式架构基于流复制技术。主节点将产生的日志记录(WAL日志)通过流复制传输到从节点,从节点会将这些日志记录应用到自己的数据库中。这样可以确保主节点和从节点之间的数据一致。同时,PostgreSQL还支持逻辑复制和扩展查询,可以根据实际需求对数据进行同步和查询的优化。 总之,分布式数据库原理是通过数据的划分、复制和分发,提高数据库的可扩展性、容错性和性能。PostgreSQL的分布式架构基于流复制技术,通过多个节点的协作来提供可靠的数据存储和高效的数据访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值