目录

一、概述

二、各视图详解

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)

一文看懂软件架构4+1视图相关推荐

  1. 一文看懂 AI 训练集、验证集、测试集(附:分割方法+交叉验证)

    2019-12-20 20:01:00 数据在人工智能技术里是非常重要的!本篇文章将详细给大家介绍3种数据集:训练集.验证集.测试集. 同时还会介绍如何更合理的讲数据划分为3种数据集.最后给大家介绍一 ...

  2. 一文看懂计算机视觉-CV(基本原理+2大挑战+8大任务+4个应用)

    2020-03-06 20:00:00 计算机视觉(Computer Vision)是人工智能领域的一个重要分支.它的目的是:看懂图片里的内容. 本文将介绍计算机视觉的基本概念.实现原理.8 个任务和 ...

  3. 一文看懂人脸识别(4个特点+4个实现步骤+5个难点+算法发展轨迹)

    2020-03-09 20:01:00 人脸识别是身份识别的一种方式,目的就是要判断图片和视频中人脸的身份时什么. 本文将详细介绍人脸识别的4个特点.4个步骤.5个难点及算法的发展轨迹. 什么是人脸识 ...

  4. 一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)

    http://blog.itpub.net/29829936/viewspace-2648775/ 2019-06-25 21:31:18 卷积神经网络 – CNN 最擅长的就是图片的处理.它受到人类 ...

  5. 【深度学习理论】一文看懂卷积神经网络

    [深度学习理论]一文看懂卷积神经网络 https://mp.weixin.qq.com/s/wzpMtMFkVDDH6scVcAdhlA 选自Medium 作者: Pranjal Yadav 经机器之 ...

  6. python读取excelsheet-一文看懂用Python读取Excel数据

    原标题:一文看懂用Python读取Excel数据 导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上). Python处理Excel文件主要 ...

  7. ​【Python基础】一文看懂 Pandas 中的透视表

    作者:来源于读者投稿 出品:Python数据之道 一文看懂 Pandas 中的透视表 透视表在一种功能很强大的图表,用户可以从中读取到很多的信息.利用excel可以生成简单的透视表.本文中讲解的是如何 ...

  8. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

  9. 一文看懂深度学习——人工智能系列学习笔记

    深度学习有很好的表现,引领了第三次人工智能的浪潮.目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习. 本文将详细的给大家介绍深度学习的基本概念.优缺点和主流的几 ...

最新文章

  1. mysql优化零基础_MySQL8数据库 | MySQL调优|MySQL底层原理|MySQL零基础新手教程
  2. .NET中防止Access数据库下载
  3. windows exec: gcc: executable file not found in %PATH%
  4. UA MATH574M 统计学习II 二元分类例子与高维问题
  5. Discuz!NT控件剖析 之 Button [原创: 附源码]
  6. re库、正则表达式基本使用
  7. 有用的Ant构建标签
  8. Linux文件与目录管理常用命令
  9. Xml和Tomcat
  10. Error 2503 and 2502 when installing/uninstalling on Windows 10
  11. 洗地机之滚刷电机分析:关于电机转矩.功率.转速之间的关系及计算公式
  12. shell脚本学习笔记(二)myplayer添加播放列表的源码
  13. 如何在matlab中产生瞬态信号,基于小波分析的微弱信号检测及其在Matlab中的仿真...
  14. 一款ModbusRTU/TCP485串口协议调试软件工具绿色版免安装
  15. 【线段树-单点更新 区间查询 ^ 是大哥】老瞎眼 pk 小鲜肉(牛客)
  16. 白岩松:不平静,就不会幸福 幸福在哪里(代序)
  17. 【精品工具】几款好用的在线RGB、HEX颜色代码生成器
  18. 几何画板用迭代法作图的技巧
  19. java retry: 详解
  20. 10、第二章物理层习题及参考答案

热门文章

  1. TP6基础教程-更新中
  2. tiktok小店卖家入驻指南
  3. android功能相同的view,Android自定义View实现扫描效果
  4. python双目三维重建_OpenCV+OpenGL 双目立体视觉三维重建
  5. webpack高级应用篇(十四):splitChunks.chunks 中的 async、initial 和 all
  6. 计算机专业还有前途吗?从业9年的程序员告诉你优缺点
  7. 郑大晔校西安第五届第九期培训
  8. 一张图理清楚profile,chirp,subframe和frame之间的关系
  9. 【狂神说JAVA】CSS详细笔记(全)
  10. Linux/Android 音频驱动从概念到 APP