4+1视图与UML

news2024/9/20 15:08:14

目录

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

在这里插入图片描述
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.coloradmin.cn/o/1080884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

史上最强,Jmeter接口测试-dubbo接口实战(超级详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、dubbo插件准备…

微信开发工具构建npm and git切换分支

目录 git切换分支NPM构建 git切换分支 案例: 再次查看分支就会发现自己的分支已切换,然后需要重新构建NPM一次 NPM构建 记得安装一下这个,然后在构建 如果未安装NPM,这时候需要打开命令端,安装操作,操作…

Logseq插件市场打不开问题处理

我的处理步骤: 1. 切换代理模式: 默认的system-> sockets: 按照下图所示 2. 再次切换, socks->system, 搞定

【计算机网络】-基础知识

1.计算机网络(计算机技术通信技术)的结合 ICTITCT 2.计算机分类1:通信子网(通信节点、通信链路),资源子网(PC、服务器,类似终端节点) 分类2:网络的结构,例如…

typora、picgo与gitee配置

typora、picgo与gitee配置 typoragitee注册新建仓库配置仓库私人令牌右上角选择“设置”选择私人令牌后生成新令牌设置私人令牌描述与权限帐号安全验证 初始化readme picgo国内可下载链接插件设置图床设置picgo设置 typora偏好设置图库接入 处理以前笔记中的图片 一直以来用的w…

java线程池超详细解析

java线程池超详细解析 一、线程池主要核心原理二、线程池代码实现三、自定义线程池1、自定义线程池原理2、自定义线程池参数3、自定义线程池任务拒绝策略3、代码实现 四、线程池多大合适呢? 一、线程池主要核心原理 创建一个池子,池子中是空的提交任务时…

SAP/BW 开发人员安装Eclipse详细过程和踩的坑

之前一直用的HANA STUDIO做BW开发,但是一直各种BUG,就想换成Eclipse,CSDN有几篇写的安装过程,但还是踩了点小坑,记下来当自己笔记,以后再按得时候看一眼。 1.安装的思路 其实没什么思路,就很简单&#xf…

【java学习】包package和引用import(22)

文章目录 1. 为什么需要package包2. JDK中主要的包介绍 1. 为什么需要package包 在java中包的概念就是和文件夹的概念类似,同样,包的存在也是为了解决以上的问题(文件太乱不好管理和同名文件冲突)          package语句作…

多线程代码中,如何查看各个线程的状态(JAVA)

首先我们先编写一个简单的多线程代码: class MyThread extends Thread{Overridepublic void run() {while (true) {System.out.println("创建的一个新线程");//让循环慢一点try {Thread.sleep(1000);} catch (InterruptedException e) {throw new Runtim…

萝卜刀玩具上架亚马逊CPC认证测试标准

含铅或含铅涂料儿童产品的要求 分阶段限制儿童产品所有部件的铅含量,要求在3年内将产品任何可接触部件的铅含量限制从不超过重量的600ppm(0.06%)降至不超过重量的100ppm(0.01%)。 铅含量限值(总铅含量占重…

基于DeOldify的给黑白照片、视频上色

老照片常常因为当时的技术限制而只有黑白版本。然而现代的 AI 技术,如 DeOldify,可以让这些照片重现色彩。 本教程将详细介绍如何使用 DeOldify 来给老照片上色。 文章目录 准备工作执行代码图片上色视频上色 总结 准备工作 这里用 git clone 命令克隆…

opencv python 深度学习垃圾图像分类系统 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 opencv python 深度学习垃圾分类系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 这是一个较为新颖的竞…

17、vivado打开保存的仿真文件

1、保存 仿真完成后直接点击保存,输入wcfg文件名称即可。 2、打开 打开原来保存的波形文件,需分两步走。 首先打开wdb文件,Flow,Open Static simulation; 之后再打开原来保存的wcfg文件, File -> Si…

一款新的webshell管理工具

Alien 项目简介 语言 C# .NET Framework V4.8 功能 File Manager (可显示图片, 可SearchFile) 虚拟终端 数据库 注册表 监控 截图 系统信息 项目描述 一句话木马 一句话木马是在渗透测试中用来控制服务器的工具 强大之处在于木…

(2023,LLM,扩散,标记对齐,两阶段训练)MiniGPT-5:通过生成式 Voken 进行交错视觉和语言生成

MiniGPT-5: Interleaved Vision-and-Language Generation via Generative Vokens 公众号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 3.1 多模态…

山海鲸汽车需求调研系统:智慧决策的关键一步

随着社会的发展和科技的进步,汽车行业也迎来了新的挑战和机遇。如何更好地满足用户需求、提高产品竞争力成为了汽车制造商们关注的焦点。在这个背景下,山海鲸汽车需求调研互动系统应运而生,为汽车行业赋予了智慧决策的力量。 智慧决策的核心&…

冠军代言:引领市场潮流的无敌利器!

在当今竞争激烈的商业舞台上,冠军代言已经成为企业吸引更多消费者并提高销售额的无可比拟的利器。这种独特的市场营销策略通过邀请知名运动员、明星或其他广受欢迎的人士代言企业的产品或服务,不仅在短时间内提高了品牌知名度,还能够在消费者…

【转存】异或运算的妙用

概述 异或运算 通过对两个相同长度的二进制数进行逐位比较,若对应位的值不同,结果为 1, 否则结果为 0, Go 语言中使用的运算符号为 ^。 下面举几个简单的小例子: 0 ^ 0 00 ^ 1 11 ^ 0 11 ^ 1 0图片来源: https://www.build-electronic-circuits.c…

Jpg格式如何转成gif格式动图?简单一招搞定gif制作

平时我们看到的使用的gif动图一般是由静态图片合成或是从视频中截取这两种方法制作的。当我们想要将一段视频制作成gif动画却不知从何下手的时候应该怎么办呢?这时候,只需要使用一个在线gif动态图片制作(https://www.gif.cn/)网站…

时间范围配置(昨天,今天,本周,本月,本季度,本年)

ranges:{ ‘昨天’: [ moment(moment().subtract(1, ‘days’).format(‘YYYY-MM-DD 00:00:00’)) ,moment(moment().subtract(1, ‘days’).format(‘YYYY-MM-DD 23:59:59’))], ‘今天’: [ moment(moment().format(‘YYYY-MM-DD 00:00:00’)),moment( moment().format(‘YYY…