4+1视图与UML

目录

  • 逻辑视图
  • 过程视图
  • 开发视图
  • 物理视图(部署视图)
  • 用例视图

在这里插入图片描述
4+1视图,即逻辑视图,过程视图,实现视图,部署视图,+用例视图。

  1. 为什么不用一个视图?
    针对多个用户,即终端用户,设计人员,开发人员,测试人员,集成人员而言,4+1视图更精准对应到用户,清晰全面
  2. 为什么是4+1视图而不是5大视图?
    4个视图类似并列关系,从架构设计的4个不同角度设计;用例视图是需求的抽象,正向驱动另外四大视图的设计,逆向检查另外四个视图的正确性和完整性。

逻辑视图

逻辑视图主要关注的是业务逻辑,也就是软件系统的功能性。它描述了系统中的功能元素,功能服务,业务域对象,以及他们之间的交互。
逻辑视图主要通过以下几种UML图来表达:

  1. 类图(Class Diagram):展示系统中的类、接口以及他们之间的静态关系,如继承、依赖、关联和聚合等。
  2. 对象图(Object Diagram):是类图的实例,展示了系统中的对象以及他们之间的关系。
  3. 包图(Package Diagram):展示系统的模块结构,描述类和包的依赖关系。
  4. 组件图(Component Diagram):展示系统的组件以及它们之间的关系。
  5. 部署图(Deployment Diagram):展示系统的物理架构和部署情况。

过程视图

过程视图描述了系统的动态行为,包括系统的并发性和同步性,关注的是系统的运行时行为。
过程视图通常包含一系列的进程以及它们之间的交互。这些进程可能是并发执行的,也可能需要进行同步。过程视图展现了系统的动态行为,如进程的创建,销毁,调度,以及进程之间的同步和通信等。
通常使用以下几种UML图来表达:

  1. 活动图:展示系统中各个活动的执行流程和它们之间的关系,通常用于表示并发和同步。
  2. 顺序图:展示对象之间的交互顺序,可用于表示进程或线程之间的通信。
  3. 状态图:展示系统或系统中某个部分在其生命周期内可能处于的状态,以及由一个状态转换到另一个状态的事件或条件
  4. 协作图(通信图):展示对象间的交互关系,可以用于表示进程或线程之间的通信

开发视图

开发视图主要关注程序或系统的实际组织,提供了程序员需要的详细信息,用以理解,构建和测试系统的软件。开发试图主要包括:

  • 源码管理:详细说明如何管理和组织源码
  • 软件架构:描述了软件的组织架构,包括软件组件和它们之间的关系
  • 数据库架构:描述了数据存储的方式,包括数据库模式和其他相关信息
  • 测试:描述了如何测试软件,包括测试策略和测试计划
  • 构建:描述如何构建和部署软件,包括构建工具和部署过程
    开发视图可以帮助开发人员理解和实现设计,并为后期的维护和迭代提供指导。

通常由以下几种UML来表达:

  1. 包图(Package Diagram):用于展示系统的模块组织和依赖关系。
  2. 组件图(Component Diagram):用于描述系统的物理组成部分,包括软件组件、硬件组件、接口和它们之间的关系。
  3. 类图(Class Diagram):用于描述系统中的类及其相互之间的关系,包括继承、聚合和关联等。
  4. 对象图(Object Diagram):用于描述系统中的对象及其相互之间的关系,这对于理解和验证系统的静态结构非常有用。

物理视图(部署视图)

物理视图主要关注系统的物理部署及其在硬件上的分布。它描述了系统的硬件组成,网络拓扑,通信和数据传输等信息。物理视图主要包括:
- 硬件架构:描述了系统所运行的硬件设备,包括服务器,工作站,网络设备等
- 网络架构:描述了网络的拓扑结构,以及各节点之间的通信方式
- 部署方案:描述了软件在硬件设备上的部署方式,包括分布式部署,集群部署等
- 安全性:描述了系统的安全策略,包括数据加密,防火墙设置,访问控制等。
- 性能:描述了系统的性能需求,包括处理能力,存储能力,网络带宽等
物理视图可以帮助系统管理员和运维人员理解系统的运行环境,进行有效的部署和管理。
部署视图主要由UML中的部署视图来表达,它用于描述物理硬件的配置和软件组件在硬件上的部署情况。包括节点、设备、连接等元素。

用例视图

用例视图主要描述的是系统与外部交互的过程,也就是系统的功能需求。用例视图通常由一些列的用例或场景组成,每个用例或场景代表了一个特定的功能或业务流程。通过这种视图,可以清晰的展现出系统的主要功能和系统与用户或其他系统的交互过程。
用例视图通常是系统分析和设计的起点,它能够帮助我们理解用户的需求,定义系统的功能。主要使用UML中的用例图来表达,它展示了系统的参与者、用例(系统的功能)以及参与者与用例之间的交互关系。用例图是用来捕获系统需求、描绘用户与系统交互的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/158547.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打造震撼视觉效果,体验全新After Effects 2024 for Mac/win

想要创作令人惊叹、震撼人心的视觉效果吗?那就来尝试全新的After Effects 2024吧!After Effects是业界领先的视觉特效和动画软件,为您提供了无限可能性。无论是电影、广告、视频、网站还是应用程序,After Effects都可以帮助您创建…

前端基础一:用Formdata对象来上传图片的原因

最近有人问:你是否能用json来传图片,其实应该这么理解就对了。 一、上传的数据体格式Content-Type 1.application/x-www-form-urlencoded 2.application/json 3.multipart/form-data 以上三种类型旨在告诉服务器需要接收的数据类型同事要…

论文阅读:Image-to-Lidar Self-Supervised Distillation for Autonomous Driving Data

目录 摘要 Motivation 整体架构流程 技术细节 雷达和图像数据的同步 小结 论文地址: [2203.16258] Image-to-Lidar Self-Supervised Distillation for Autonomous Driving Data (arxiv.org) 论文代码:GitHub - valeoai/SLidR: Official PyTorch implementati…

C++ 反向迭代器

反向迭代器的即正向迭代器的--,反向迭代器的--即正向迭代器的,反向迭代器和正向迭代器的很多功能都是相似的,因此我们可以复用正向迭代器作为反向迭代器的底层容器来封装,从而实现出反向迭代器,即:反向迭代…

python文本转语音

概述 目前有文本转语音的技术,可以用在配音领域,我个人因为一些需求,所以开始寻找这方面的资源,目前各大平台,比如腾讯,讯飞,阿里,百度等都有这样的API服务,我个人是是使…

linux shell环境下处理yml文件

需要安装工具yq sudo pip install yq 这里我使用pip3指定源安装 sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple yq 1. 读取文件内容: 我使用的版本是yq 3.2.3,以下命令执行会报错: yq r chainmaker.yml .blockchain yq r chain…

2023-10-14 LeetCode每日一题(只出现一次的数字)

2023-10-14每日一题 一、题目编号 136. 只出现一次的数字二、题目链接 点击跳转到题目位置 三、题目描述 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时…

RootSIFT---SIFT图像特征的扩展

RootSIFT是论文 Three things everyone should know to improve object retrieval - 2012所提出的 A Comparative Analysis of RootSIFT and SIFT Methods for Drowsy Features Extraction - 2020 当比较直方图时,使用欧氏距离通常比卡方距离或Hellinger核时的性能…

zabbix监控——自定义监控内容

目录 自定义监控项步骤 案例 1、明确需要执行的命令 2、创建 zabbix 的监控项配置文件,用于自定义 key,并重启zabbix-agent2 3、.在服务端验证新建的监控项 4、在 Web 页面创建自定义监控项模板 1)创建模板 2)创建监控项 …

振弦传感器和无线振弦采集仪在隧道安全监测的解决方案

振弦传感器和无线振弦采集仪在隧道安全监测的解决方案 隧道作为交通工程的重要组成部分,具有极高的安全风险,因此隧道安全监测是必不可少的。振弦传感器和无线振弦采集仪作为隧道安全监测的两种重要设备,能够有效地监测隧道的振动情况&#…

Rancher 使用指南

Rancher 使用指南 Rancher 是什么?Rancher 与 OpenShift / Kubesphere 主要区别对比RancherOpenShiftKubesphere 对比 Rancher 和 OpenShift Rancher 安装 Rancher 是什么? 企业级Kubernetes管理平台 Rancher 是供采用容器的团队使用的完整软件堆栈。它解决了管理多个Kuber…

PIL Image格式转Tensor

Image格式是由PIL库读入的图片格式 from PIL import Image torch.Tensor是用于深度学习计算的张量格式 import torch 1 Image格式转Tensor 先转numpy 再转tensor torch.from_numpy() np.asarray() image torch.from_numpy(np.asarray(image)) 但是报错: max_pool2d” not im…

智能网关IOT 2050采集应用

SIMATIC IOT2050 是西门子公司新推出的应用于企业数字化转型的智能边缘计算和云连接网关。 它将云、公司内 IT 和生产连接在一起,专为直接在生产环境中获取、处理和传输数据的工业 IT 解 决方案而设计。例如,它可用于将生产 过程与基于云的机器和生产数据…

AC修炼计划(AtCoder Regular Contest 166)

传送门:AtCoder Regular Contest 166 - AtCoder 一直修炼cf,觉得遇到了瓶颈了,所以想在atcode上寻求一些突破,今天本来想尝试vp AtCoder Regular Contest 166,但结局本不是很好,被卡了半天,止步…

Vue条件渲染

一、使用v-show条件渲染 语法格式: v-show"表达式" // true 或 false 当表达式的值为true的时候就显示,表达式值为false的时候隐藏。 下面是使用v-show实现的一个点击按钮切换显示和隐藏的小案例 : 值得注意的是,使…

Element Plus阻止 el-dropdown、el-switch等冒泡事件

最近做vue3项目&#xff0c;使用Element Plus,又遇到坑了&#xff01; 问题点&#xff1a;组件中遇到事件冒泡问题了&#xff0c;el-checkbox 中 change事件要求阻止冒泡&#xff0c;如下代码中要求点击checkbox时不调用li标签的show方法 <li click"show()">…

kafka属性说明

kafka中关于一些字段说明 groupId :标识消费者分组id&#xff0c;如果多个消费者id相同&#xff0c;就表示这几个消费者是一组&#xff0c;当一组多个消费者消费同一个topic时&#xff0c;一组中只会有一个成功消费 代码如下 这时只会有一条消息被消费

Net6 用imagesharp 实现跨平台图片处理并存入oss

项目要求&#xff1a;生成电子证书 一、模板文件在OSS中&#xff0c;直接加载 二、向模板文件添加二维码 三、向模板文件添加多行文字 四、生成二维码&#xff0c;存入本地&#xff0c; 五、向模板文件添加二维码 代码实现步骤 一、建立.net 6 API项目&#xff0c;安装N…

城市消防无人机控制系统的设计

目录 摘 要......................................................................................................................... 2 第一章 绪论.............................................................................................................…

【Java 进阶篇】JavaScript 正则表达式(RegExp)详解

JavaScript 正则表达式&#xff0c;通常简写为 RegExp&#xff0c;是一种强大的文本匹配工具&#xff0c;它允许你通过一种灵活的语法来查找和替换字符串中的文本。正则表达式在编程中用途广泛&#xff0c;不仅限于 JavaScript&#xff0c;在许多编程语言中也都有类似的实现。 …