【UML】第5篇 UML中的视图和图

news2024/12/30 3:12:53

目录

一、视图和图

二、图的种类

2.1 结构图

2.2 行为图


图是UML中最重要的概念了,起码我是这么认为。

上篇关于低代码的文章,我也说了,未来也许AI编码,我们更重要的工作,是能够为业务进行建模,拆解,用最准确的语言,生成高效的prompt提示词,让人工智能去为我们开发,健壮的应用程序。我们再也不用焦虑,架构是不是抗得住压力,逻辑是否经得住破坏性的测试。

一、视图和图

关于视图和图,其实不用纠结。

在UML中,视图和图都是用于描述和可视化系统的工具,它们之间存在联系也有区别。

联系:

  1. 视图是由图构成的:视图是从某个角度对系统进行抽象表示的概念,而图则是具体的可视化工具。一个视图通常会包含多个图,这些图共同表达了视图所要展示的系统的特定方面。
  2. 视图和图都是模型元素:无论是视图还是图,它们都是UML模型中的元素。这些元素代表了系统中的概念、关系和行为等,用于帮助我们理解和设计系统。

区别:

  1. 抽象层次不同:视图是对系统的抽象表示,它关注的是系统的某个特定方面。而图则是具体的可视化工具,用于展示视图中的模型元素和它们之间的关系。因此,视图在抽象层次上高于图。
  2. 关注点不同:视图关注的是系统的某个特定方面,例如静态结构、动态行为、用例等。而图则关注于展示模型元素之间的具体关系和细节。因此,视图更侧重于整体和抽象,而图更侧重于具体和细节。
  3. 用途不同:视图主要用于组织和管理模型元素,帮助我们从不同的角度理解和设计系统。而图则主要用于可视化和交流模型的细节,使得我们可以更直观地理解模型的各个方面。

综上所述,视图和图在UML中既有联系也有区别。它们共同构成了UML模型的完整表示,帮助我们更好地理解和设计系统。

二、图的种类

重点我们后续会用实际的例子,来讲述各种图的画法。

 

在UML中,图可以分为两类:结构图和行为图。

2.1 结构图

结构图描述了系统或软件的静态结构,即系统中的类、对象、接口、关联关系等元素之间的静态关系。常见的结构图包括:

  • 类图(Class Diagram):用于描述系统中的类、接口、关联关系等元素,展示它们之间的静态结构和关系。
  • 对象图(Object Diagram):是类图的实例化表示,展示了系统中具体对象之间的关系。
  • 包图(Package Diagram):用于表示系统中的包(命名空间)之间的层次结构和关系。
  • 组件图(Component Diagram):用于描述系统中的组件和它们之间的关系。组件是可独立部署和替换的系统模块,可以是单个的类、库、框架或其他实现单元。组件图展示了组件的物理和逻辑关系,以及它们之间的接口和依赖关系。
  • 部署图(Deployment Diagram):用于描述系统的部署架构,即系统中的硬件和软件资源的物理配置。部署图展示了系统的组件、节点(硬件设备)和连接之间的关系,可以显示软件组件和硬件设备的部署位置和拓扑结构。

2.2 行为图

行为图描述了系统或软件的动态行为,即系统在特定条件下的活动、交互和状态变化等。常见的行为图包括:

  • 用例图(Use Case Diagram):用于描述系统的功能需求,展示系统与外部参与者之间的交互。
  • 时序图(Sequence Diagram):展示了系统或软件中的对象之间交互的时间顺序和消息流程。
  • 协作图(Collaboration Diagram),也被称为通信图(Communication Diagram)或交互图(Interaction Diagram),用于描述系统中对象之间的交互和通信。协作图展示了对象之间的消息传递和交互流程,可以清楚地展示对象之间的合作和相互作用。
  • 活动图(Activity Diagram):用于描述系统中的业务流程或算法,展示了各个活动之间的流程和控制流。
  • 状态机图(State Machine Diagram):用于描述对象在不同状态之间的转换和事件触发的动态行为。

这些结构图和行为图通常被用于不同的目的和层次的系统设计,以提供对系统的不同方面的建模和可视化表示。

未完,后续我们挨个举例来详细学习。

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

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

相关文章

【51单片机系列】C51中的中断系统扩展实验

本文是关于51单片机中断系统的扩展实验。 文章目录 一、 扩展实验一:使用外部中断0控制蜂鸣器,外部中断1控制直流电机二、扩展实验二:修改定时器初值,设定3秒钟的定时时间让LED模块闪烁三、扩展实验三:使用定时器1和数…

KBP310-ASEMI适配高端电源KBP310

编辑:ll KBP310-ASEMI适配高端电源KBP310 型号:KBP310 品牌:ASEMI 封装:KBP-4 最大平均正向电流:3A 最大重复峰值反向电压:1000V 产品引线数量:4 产品内部芯片个数:4 产品内…

哈希算法专栏二《力扣题目练习》

引言 在了解了哈希表的基础理论之后,我们就可以开始进行刷题实战了。下面是我在力扣上找的一些题目,认真刷完并理解下面的题目,相信读者至少可以初步掌握哈希算法的思想了。 LeetCode242有效的字母异位词 242. 有效的字母异位词 已解答 简…

智能化安防与监控:全球发展、挑战与未来趋势

导言 智能化安防与监控系统在全球范围内得到广泛应用,成为社会安全和公共管理的重要工具。本文将深入研究其发展历程、遇到的问题及解决过程、未来的可用范围,以及在各国的应用和未来的研究趋势,以探讨在哪些方面能取胜,并在哪些方…

简易实现 STL--list

实现 list 的主要思想及过程 首先,实现过程中的所有代码必须放在自己定义的命名空间中。 定义一个结点的结构体类模板,结点的数据类型就应该是模板类型 T,定义的 next指针和 prev指针都应该是模板指针类型,并且结构体类中药有构…

git的使用思维导图

源文件在github主页:study_collection/cpp学习/git at main stu-yzZ/study_collection (github.com)

力扣:77. 组合(回溯, path[:]的作用)

题目: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ] 示例 2: 输入&…

MS5541/MS5542,高精度DAC,2.7V 到 5.5V、串行输入、电压输出、16 位数模转换器,可替代AD5541

MS5541/MS5542 是一款单通道、 16 位、串行输入、电压 输出的数模转换器,采用 2.7V 至 5.5V 单电源供电,输出范围 为 0V 至 V REF 。在输出范围内保证单调性,在温度范围为 -40 C 至 85 C 能够提供 1LSB INL 的 14 位精度。…

pycharm git 版本回退

参考 https://blog.csdn.net/qq_38175912/article/details/102860195 yoyoketang 悠悠课堂

PLC物联网,实现工厂设备数据采集

随着工业4.0时代的到来,物联网技术在工厂设备管理领域的应用日益普及。作为物联网技术的重要一环,PLC物联网为工厂设备数据采集带来了前所未有的便捷和高效。本文将围绕“PLC物联网,实现工厂设备数据采集”这一主题,探讨PLC物联网…

合并一个excel文件中的多个sheet

import pandas as pd #要合并的文件路径 filepath/Users/kangyongqing/Documents/kangyq/202311/班均及合班储备/最后校验/二批次组班/ file1z小班合班方案_2012(1).xlsx #获取文件d的所有sheet名 df1pd.read_excel(filepathfile1,sheet_nameNone,engine…

Graylog配置日志保留策略

找了半天没找到说的清楚的,只能抠官方文档 graylog的归档(日志持久化)只有付费版才能用,所以日志只能存在es中 1.理解官方给出的几个概念 轮转策略 (Index Rotation Strategy): 轮转策略定义了何时创建新的索引以及何时关闭旧的索…

C语言-> 文件操作(函数满屏)

系列文章目录 前言 ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青_C语言,数据结构,函数-CSDN博客 目的:学习文件操作,即…

gitee的学习

1.git下载 下载地址:https://git-scm.com/ 2.建立远程仓库 访问:gitee.com 在此网站上创建 3.本地操作 在本地找一个任意文件,克隆git 执行命令:git clone https://gitee.com/beijing-jiaxin-times_0/test_zsx_cang_ku.git …

变分自动编码器【03/3】:使用 Docker 和 Bash 脚本进行超参数调整

一、说明 在深入研究第 1 部分中的介绍和实现,并在第 2 部分中探索训练过程之后,我们现在将重点转向在第 3 部分中通过超参数调整来优化模型的性能。要访问本系列的完整代码,请访问我们的 GitHub 存储库在GitHub - asokraju/ImageAutoEncoder…

[c]用指针进行四个数排序

#include<stdio.h> void swap(int*p1,int*p2)//定义函数&#xff0c;实现两个数值交换 {int temp;temp*p1;*p1*p2;*p2temp; } void psort( int *pa, int *pb,int *pc,int *pd) {int i1;for(i1;i<3;i)//对四个数排序&#xff0c;至少3次循环&#xff0c;交换过后是升序…

海康威视IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

漏洞介绍 海康威视IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版本存在操作系统命令注入漏洞&#xff0c;该漏洞源于文件/ph…

跨境电商独立站有哪些优势,要如何做?

跨境电商独立站是指面向海外市场的电商网站&#xff0c;具有以下优势&#xff1a; 自主品牌 搭建跨境电商独立站可以通过自主品牌的打造&#xff0c;提升品牌的知名度和影响力&#xff0c;同时也可以在海外市场建立起更加稳定的品牌形象。 自主掌控 跨境电商独立站可以自主掌…

Python算法例19 创建最大数

1. 问题描述 给定两个长度分别是m和n的数组&#xff0c;数组的每个元素都是数字0~9&#xff0c;从这两个数组当中选出k个数字来创建一个最大数&#xff0c;其中k满足k&#xff1c;mn&#xff0c;选出来的数字在创建最大数里的位置必须与在原数组内的相对位置一致。返回k个元素…

Java第一个程序——Hello,World!

“Hello, world”的由来可以追溯到 The C Programming Language 。在这门编程语言中&#xff0c;它被用作第一个演示程序&#xff0c;向人们展示了在计算机屏幕上输出“Hello world”这行字符串的计算机程序。由于这个演示程序的简洁性和直观性&#xff0c;它成为了许多初学者学…