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.hqwc.cn/news/132449.html

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

相关文章

python - excel 设置样式

文章目录 前言python - excel 设置样式1. 准备2. 示例2.1. 给单元格设置样式"等线"、大小为24磅、斜体、红色颜色和粗体2.2. 给第二行设置样式"宋体"、大小为16磅、斜体、红色颜色和粗体2.3. 给第三行数据设置垂直居中和水平居中2.4. 给第四行设置行高为30…

协同办公解决方案:你需要了解的5个关键点

随着互联网技术的不断发展和应用,协同办公已成为现代企业不可或缺的一部分。协同办公解决方案不仅提高了企业的工作效率,还加强了团队的协作和沟通。本文将介绍协同办公解决方案的5个关键点,帮助你更好地了解这一领域的发展。 一、协同办公解…

基于Cucumber的行为驱动开发(BDD)实例

本篇介绍 Cucumber 的基本使用, 因为Cucumber是BDD的工具, 所以首先需要弄清楚什么是BDD,而在介绍BDD之前,先看看常见的软件开发方法。 常见的软件开发方法 面向过程开发(Procedural Development)&#x…

【算法笔记】LCR 086. 分割回文串

基本思想是使用回溯法,回溯法都可以将问题划分为一个解空间树:假设字符串s为"aab",那么我们可以使用深度优先搜索去构建解空间树: dfs遍历出来的第一个序列是[a, a, b],显然该序列都是回文子串,…

如何有效改进erp管理系统?erp管理系统改进建议方向

前言: 说到erp,全称是企业资源计划,这可是企业管理的大杀器,也是现在企业管理的必备神器。它的出身可以追溯到上世纪90年代,那时候的企业管理可是个大难题,各种资源调配不灵光,企业主们急需一种…

[ROS2系列] ubuntu 20.04测试rtabmap 3D建图(二)

接上文我们继续 如果我们要在仿真环境中进行测试&#xff0c;需要将摄像头配置成功。 一、配置位置 sudo vim /opt/ros/foxy/share/turtlebot3_gazebo/models/turtlebot3_waffle/model.sdf 二、修改 <joint name"camera_rgb_optical_joint" type"fixed&…

3、TCP状态

TCP状态 1、TCP通信时序 三次握手成功后&#xff0c;服务器和客户端进入了状态ESTABLISHED 当处于Time_WAIT状态后&#xff0c;不会马上变成CLOSE状态&#xff0c;会经历2MSL&#xff08;约40秒&#xff09;&#xff0c;之后才会进入CLOSE状态。 总结&#xff1a; 主动发起…

Java架构师缓存通用设计方案

目录 1 采用多级缓存2 缓存数据尽量前移3 静态化4 数据平衡策略5 jvm缓存的问题6 redis存放数据解决7 redis垂直拆分8 总结1 采用多级缓存 在实际应用中需要考虑的实际问题。首先,前端页面可以做缓存,虽然图上没有显示,但在现实应用中这是提高性能的一个重要方面。前端页面缓…

前端axios发送请求,在请求头添加参数

1.在封装接口传参时&#xff0c;定义形参&#xff0c;params是正常传参&#xff0c;name则是我想要在请求头传参 export function getCurlList (params, name) {return request({url: ********,method: get,params,name}) } 2.接口调用 const res await getCurlList(params,…

OpenCV级联分类器识别车辆实践笔记

1. OpenCV 级联分类器的基本原理 基于Haar特征的级联分类器的目标检测是Paul Viola和Michael Jones在2001年的论文中提出的一种有效的目标检测方法。这是一种基于机器学习的方法&#xff0c;从大量的正面和负面图像中训练级联函数。然后用它来检测其他图像中的物体。 Haar特征…

查看和分析 IIS 日志文件以增强 Web 服务器安全性

Microsoft IIS服务器&#xff0c;无论是Web还是FTP&#xff0c;对于企业来说都是必不可少的。但是&#xff0c;IT 安全管理员的工作并不止于部署 IIS 服务器。部署后&#xff0c;管理员必须采取安全措施来保护这些服务器&#xff0c;监控 IIS 服务器安全性的一种行之有效的方法…

Linux 环境变量

一、环境变量 概念&#xff1a;环境变量是系统预设值的参数。Linux 是一个多用户的操作系统&#xff0c;所以每一个用户也都有自己的环境变量。常用变量 PATH 决定了要去哪个路径下去寻找我们的程序或者命令   echo 命令   功能&#xff1a;在标准输出上显示一段文字   e…