《知识拓展 · 统一建模语言UML》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍
文章目录
- 写在前面的话
- UML 简介
- UML 关系
- 1、类图(重要)
- 2、对象图(了解)
- 3、用例图(重要)
- 4、序列图/顺序图(重要)
- 5、通信图/协作图(重要)
- 6、状态图(重要)
- 7、活动图(重要)
- 8、构件图/组件图(一般)
- 9、部署图(一般)
- 10、时序图(一般)
- 所有图知识补充
- 总结陈词
写在前面的话
前一篇文章《经验分享 · 软考系统分析师》介绍了博主的软考历程和经验分享,这边顺道把系分和架构里面相当重要的UML统一建模语言的总结分享一下,它是面向对象设计的核心工具。
UML 简介
UML 统一建模语言(记忆)
定义:可视化的建模语言,而非程序设计语言。(考点)
组成:构造块、规则、公共机制,其中构造块有事物、关系、图三种。(考点)
补充:UML的结构包括构造块、规则和公共机制三个部分。在基本构造块中,图能够表示多个相互关联的事物的集合;规则是构造块如何放在一起的规定,包括了命名、范围、可见性、完整性和执行。公共机制中,规格说明是关于事物语义的细节描述。(了解即可)
Tips:下图不用怎么了解,主要考察UML的关系和图。
Tips:事物就是UML各种图里面的单个单个的组成原件,比如类图里面的某个类。
UML 有多少种图(了解)
UML2.0,共14种图,教材介绍了13种,去掉了制品图(描述系统的物理结构),如下图。
其中,静态图8个,动态图6个,4个交互图。
Tips:不用在意数量和类型,不会考察这么肤浅的内容,重点掌握几个重要图的特征。
Tips:特别注意,用例图、类图、活动图、状态图、顺序图几个最为重要,都在下方。
UML 关系
UML 统一建模语言的关系**(重要,4类6种)**
注意:一般类图才用这些关系,用例图有自己的三个关系,泛化、扩展、包含,不能混淆。
注意,几个箭头指向要掌握,特别是泛化、聚合、组合,其他不太好考。
**理解:**一个事物的语义依赖于另一个事物的语义的变化而变化,实心三角形,考的也比较少,如人依赖水。
**理解:**基本有联系都是关联,不会考这个,关联里面有两个特殊的会考,组合和聚合,两者都是部分和整体的关系。
**理解:**雁群和大雁的关系,部分和整体没有共同生命周期,空心菱形,记住空心、聚合、无共同生命。
**理解:**人和头部的关系,部分和整体具有共同的生命周期,整体不存在则部分也不存在,实心菱形,记住实心、组合、有共同生命。
**理解:**组合和聚合要区分开,聚合就理解为大雁聚在一起,变成雁群,组合就是人的头部组成了人。
**理解:**一般和特殊的关系,例如学生和大学生,子类和父类的关系,空心三角形+实线。
**理解:**考的比较少,语言不好描述,不要和泛化弄混了,空心三角形+虚线。
1、类图(重要)
类图是用来描述系统中各个类的静态结构,强调类的属性、方法以及类之间的关系。
静态图,系统的静态设计视图,展现一组类、接口、协作和他们之间的关系。
每个类由类、属性、方法三要素组成。
Tips:类图就是反馈类和类之间的关系,可以看到大量的泛化,1对多等等。
Tips:下图聚合的图标错了,是空心菱形。
2、对象图(了解)
静态图,展现某一时刻一组对象以及他们之间的关系,为类图的一组快照,考的较少。
对象图描述系统中对象的静态结构、属性和操作、以及对象之间的关系。
Tips:如果没类图的话,对象图就是系统的静态设计视图,可以看到类名前面有一个对象名。
Tips:不太重要,一般根据类图建模,很少根据对象图建模。
如下图,很明显,每块上会显示具体的对象,日常开发都在接触对象和类,很好理解。
3、用例图(重要)
用例图是用来描述系统功能和用户之间交互关系的图,强调系统的功能需求。
【用例图基础】
【概念】用例图是指由参与者、用例,边界以及它们之间的关系构成的用于描述系统功能的视图。
【目的】用来描述整个系统的功能。
用例图中包含以下三种关系:
- 包含关系使用符号《include》,想要查看订单列表,前提是需要先登录。
- 扩展关系使用符号《extend》,基于查询订单列表的功能,可以增加一个导出数据的功能。
- 泛化关系,子用例继承父用例所有结构、行为和关系。
【用例图补充】
静态图,能完美展现需求,展现了一组用例、参与者以及他们之间的关系。
1、参与者可以是人、硬件或其他系统可以扮演的角色;
Tips:参与者是指在于系统外部并与系统进行交互的任何事物,既可以是使用系统的用户,也可以是其他外部系统和设备等外部实体。SO,应该是外部实体才对。
Tips:真题也有考察,参与者是系统外部和系统进行交互的人或物,不包括内部实体。
2、用例是参与者完成的一系列操作,或理解为功能;
Tips:用例执行有先后顺序,是一种在时间上的依赖关系。
3、用例之间的关系有:扩展、包含、泛化,这是用例图特有的。
Tips:和前面类图的六个关系区分开,没什么关联。
4、A包含B(include),意思是执行A之前必须先做B,B是A的一部分,可以理解为A是主方法,B是子方法;
Tips:更恰当的比喻应该是,做查询动作A如果必须要验证用户权限B,那么A包含B,此时A指向B。
5、A扩展B(extend),意思是B是A的扩展,A完成后,可做可不做B,额外的不是必须的,例如代码在结尾处异步发通知之类的;
Tips:更恰当的比喻应该是,当A满足某条件的时候,触发B,则B是A的扩展,比如付钱的时候余额不足,需要去银行取钱,则取钱是付钱的扩展,B指向A,箭头指向也可以按这个规律记,指向先执行的逻辑。
6、泛化就是父子继承关系,空心三角形。
Tips:用例图上较少呈现,不好举例。
4、序列图/顺序图(重要)
动态图,描述了以时间顺序组织的对象之间的交互。
特征是有对象,对象下面是对象生命线/时间线,有时间顺序关系,生命线上有消息交互。
UML中,序列图的基本元素包括对象、生命线和消息。
三类消息:
1、同步:阻塞调用,调用者中止执行,等待返回消息,实心三角箭头表示;
2、异步:发初消息后,调用者继续执行,不等待返回消息,空心三角箭头表示;
3、返回:由右到左的虚线箭头表示;
Tips:考察的点,也是认图的特征,三种消息,日常开发也用到这三种交互。
【序列图补充】
【概念】序列图根据时间序列展示对象如何进行协作。它展示了在用例的特定场景中,对象如何与其他对象交互。
【目的】通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
图中展示的是支付宝条码支付场景的序列图。其中,loop是循环,alt是选择,序列图的其他关系这里就不介绍了。
5、通信图/协作图(重要)
动态图,强调参加交互的对象的组织。
注意,也是传递消息,但消息是按序号不是按时间,这是和序列图的区别。
Tips:下图2的方法还拆分为2.1和2.2,应该还是有先后关系。
6、状态图(重要)
状态图,用来描述对象状态和事件之间的关系,强调一个实体基于事件反应的动态行为。
动态图,展现了一个状态机,描述单个对象在多个用例中的行为,包括简单状态和组合状态。
转换可以通过事件触发器触发,事件触发后相应的监护条件会进行检查。
转换和状态是两个独立的概念,如下图,方框代表状态,箭头上的代表触发事件,实心圆点为起点和终点。
Tips:动态图、静态图不用特别去记,会变化的、有交互的,就是动态的。
Tips:事件触发器和监护条件,都满足才会转换,图上没标记就是没条件。
【状态图补充】
【概念】状态机图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序。
【目的】用来表示指定对象,在整个生命周期,响应不同事件的不同状态。
图中描述了,门在其生命周期内所经历的状态。
7、活动图(重要)
【活动图】
【概念】描述了具体业务用例的实现流程,展现了系统内一个活动到另一个活动流程。
【目的】用来表示用例实现的工作流程。
图中简单描述了,从开始到登录到查看订单列表,或者登录失败直接结束。
【活动图补充】
下图就是接收订单到结束订单的一个活动图,从一个活动到另外一个活动。
很多元素和状态图很像,所以说活动图是一种特殊的状态图。
并发分岔、并发汇合、监护表达式这几个常考。
8、构件图/组件图(一般)
静态图,为系统的静态实现视图,展现了一组构件之间的组织和依赖关系。
构件可以理解为可以复用的功能模块,由一组类组成,。
关注一下供接口和需接口,前者是提供给外部的,后者是需要外部的。
Tips:图很典型,供接口是一个半个开口的。
9、部署图(一般)
静态图,为系统的静态部署视图,与软件没啥关系,展示物理模块的节点分布。
一个节点包含多个构件,依赖关系类似于包依赖。
Tips:看到硬件,比如数据库等就是部署图,不太重要。
10、时序图(一般)
【时序图】
【概念】时序图被用来显示随时间变化,一个或多个元素的值或状态的更改。也显示时控事件之间的交互和管理它们的时间和期限约束。
【目的】用来表示元素状态或者值随时间的变化而变化的视图。
图中展示了老年痴呆病人随着时间的变化病情的变化。
所有图知识补充
**注意!**下面这张图的关键词再混个眼熟,不然选择题考到还是区分不了。
14种图的介绍(补充,混个眼熟)
(1)类图(class diagram)。类图描述一组类、接口、协作和它们之间的关系。在OO系统的建模中,最常见的图就是类图。类图给出了系统的静态设计视图,活动类的类图给出了系统的静态进程视图。
(2)对象图(object diagram)。对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。
(3)构件图(component diagram)。构件图描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。
(4)组合结构图(composite structure diagram)。组合结构图描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容。
(5)用例图(use case diagram)。用例图描述一组用例、参与者及它们之间的关系。用例图给出系统的静态用例视图。这些图在对系统的行为进行组织和建模时是非常重要的。
(6)顺序图(sequence diagram,序列图)。顺序图是一种交互图(interaction diagram),交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。
(7)通信图(communication diagram)。通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织。顺序图和通信图表达了类似的基本概念,但它们所强调的概念不同,顺序图强调的是时序,通信图强调的是对象之间的组织结构(关系)。在UML 1.X版本中,通信图称为协作图(collaboration diagram)。
(8)定时图(timing diagram,计时图)。定时图也是一种交互图,它强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。
(9)状态图(state diagram)。状态图描述一个状态机,它由状态、转移、事件和活动组成。状态图给出了对象的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。
(10)活动图(activity diagram)。活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
(11)部署图(deployment diagram)。部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。
(12)制品图(artifact diagram)。制品图描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起使用。制品也给出了它们实现的类和构件。
(13)包图(package diagram)。包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。
(14)交互概览图(interaction overview diagram)。交互概览图是活动图和顺序图的混合物。
1. 数据流图 (DFD) - 面向对象分析
描述:通过图形化的方式展示数据在系统中的流动和处理过程,强调数据的输入、输出和存储。
特征:用于表示系统中的数据流动。
包括:过程、数据存储、外部实体和数据流。描述: 描述数据在系统中如何流动和被处理。
特征:层次结构: 可以分解成多个层次,顶层图描述系统整体数据流,下层图逐步细化。抽象性: 关注数据流动和处理过程,不涉及具体实现细节。图形化: 使用标准符号表示数据源、数据存储、数据处理和数据流向。
组成:外部实体: 系统外部与系统交互的人员或系统。数据流: 数据的移动,用箭头表示方向。处理: 对数据的操作或变换,用圆形或矩形表示。数据存储: 数据的静态存储,用平行线表示。[外部实体] --> (过程1) --> [数据存储]
[数据存储] --> (过程2) --> [外部实体]
示例:一个在线购物系统的数据流图,显示用户输入订单信息,系统处理并存储订单。2. 实体关系图 (ER图) - 结构化分析
描述:通过图形化的方式展示系统中的数据结构,帮助理解数据之间的联系和约束。
特征:用于描述数据模型,展示实体及其之间的关系。
包括:实体、属性和关系。描述: 描述系统中数据对象的类型、属性以及它们之间的关系。
特征:数据模型: 描述系统中数据的逻辑结构和关系。概念清晰: 使用实体、属性和关系清晰地表达数据之间的联系。易于理解: 图形化表示易于用户和开发人员理解。
组成:实体: 现实世界中的事物或概念,用矩形表示。属性: 实体的特征或特性,用椭圆形表示。关系: 实体之间的联系,用菱形表示。[客户] --(下单)--> [订单]
[订单] --(包含)--> [产品]
示例:客户与订单之间的关系,订单包含多个产品。3. 状态图 (State Diagram)
描述:通过状态和事件的组合,展示对象如何响应不同的事件并在不同状态之间转换。
特征:描述对象在其生命周期中可能处于的状态及状态之间的转换。
包括:状态、事件和转换。描述: 描述对象对外部事件的响应,以及状态转换的条件和结果。
特征:对象视角: 描述对象在其生命周期内可能处于的状态以及状态之间的转换。事件驱动: 状态转换由事件触发。
组成:状态: 对象生命周期中的一个阶段,用圆角矩形表示。转换: 状态之间的变化,用箭头表示。事件: 触发状态转换的条件,标记在转换箭头上。[初始状态] --> (事件1) --> [状态A]
[状态A] --> (事件2) --> [状态B]
[状态B] --> (事件3) --> [结束状态]
示例:一个订单的状态图,初始状态为“待处理”,经过“处理”后变为“已发货”。4. 活动图 (Activity Diagram)
描述:通过图形化的方式展示活动的顺序和并行执行,强调流程的逻辑和控制流。
特征:描述系统中的工作流或业务过程。
包括:活动、决策节点、开始/结束节点和控制流。描述: 描述系统执行某个用例或操作时的活动流程。
特征:流程建模: 描述系统中活动的顺序流程,可以包含并行活动。行为描述: 可以描述业务流程、算法逻辑等。
组成:活动: 系统执行的任务或操作,用圆角矩形表示。转换: 活动之间的流转,用箭头表示。分支: 根据条件选择不同的活动路径,用菱形表示。并行: 同时执行多个活动,用粗线表示。[开始] --> (活动1) --> (活动2) --> [结束]
(活动2) --> (决策) --> (活动3) --> [结束]
示例:用户注册流程,活动包括填写信息、验证信息和确认注册。5. 用例图 (Use Case Diagram)
描述:通过用例和参与者的关系,展示系统提供的功能及其使用场景,帮助识别系统需求。
特征:描述系统的功能需求及其与外部用户(角色)的交互。
包括:用例、参与者和关系。描述: 描述系统提供的功能以及与用户或其他系统的交互。
特征:用户视角: 描述系统功能,以用户角度出发。交互描述: 展示用户和系统之间的交互。
组成:参与者: 与系统交互的人或系统,用小人表示。用例: 系统提供的功能,用椭圆形表示。关系: 参与者和用例之间的联系,用线段表示。[用户] --(使用)--> (注册用例)
[用户] --(使用)--> (登录用例)
示例:用户可以注册和登录系统。6. 流程图 (Flowchart)
描述:通过图形化的方式展示步骤的顺序和逻辑,适用于简单的流程或算法。
特征:描述过程或算法的步骤和决策。
包括:开始/结束符、过程框、决策框和箭头。描述: 描述算法、业务流程或其他任何需要按步骤执行的任务。
特征:步骤清晰: 使用图形符号清晰地表示算法或流程的每个步骤。 逻辑明确: 使用连接线表示步骤之间的执行顺序。
组成:开始/结束: 流程的起点和终点,用圆形或椭圆形表示。处理步骤: 具体的操作或任务,用矩形表示。判断: 根据条件选择不同的执行路径,用菱形表示。流程线: 连接各个步骤,指示执行顺序,用箭头表示。[开始] --> [步骤1] --> [决策] --> (是) --> [步骤2] --> [结束]|(否)|[步骤3] --> [结束]
示例:一个简单的决策流程,判断用户是否满足条件。7. 顺序图 (Sequence Diagram) 又称时序图 (Timing Diagram)
描述:通过时间轴展示对象之间的消息传递,强调交互的时间顺序。
特征:描述对象之间的交互及其顺序。
包括:对象、消息和时间线。描述: 描述对象之间为了完成某个目标而进行的交互,重点在于消息的时序。
特征:时间顺序: 强调消息传递的时间顺序,描述对象之间如何交互。交互建模: 展示对象之间发送和接收消息的序列。
组成:对象: 参与交互的对象,用矩形表示。
[用户] -> [系统] : 登录()
[系统] -> [数据库] : 验证用户()
[数据库] -> [系统] : 返回结果
[系统] -> [用户] : 登录成功
示例:用户登录过程中的消息传递。
总结陈词
💗 本篇文章介绍了统一建模语言UML的技术分享,希望可以帮助到大家。
💗 后续会逐步分享企业实际开发中的实战经验,有需要交流的可以联系博主。
相关文章:
《知识拓展 · 统一建模语言UML》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
GNSS 全球卫星导航系统(Global Navigation Satellite System): 卫星授时
文章目录 引言I GNSSGNSS三大核心能力卫星系统、区域性的系统以及增强系统II 卫星授时GNSS是如何实现授时优势引言 GNSS指的是全球卫星导航系统,是能在全球范围内提供导航服务的卫星导航系统的通称。 美国GPS、俄罗斯GLONASS、中国北斗卫星导航系统和欧洲GALILEO,是联合国全…...
【数据结构】循环队列原理与代码
理论 存在的意义: 将顺序队列从逻辑上视为一个环。解决“假溢出”(出队入队连续操作后两个指针均到数组末端maxsize-1处,虽然队里没有元素但无法让元素进队)。两种定义 1.题目是队列非空时队头指针和队尾指针分别指向队头元素和队…...
Kettle Doris Plugin编译过程
起因 公司的数据中台产品用的doris作为数据仓库,用kettle作为etl引擎,但是表输出组件太慢了。偶然有一天发现doris提供了kettle组件,但是需要自己编译,于是就开始自己编译。 坑 因为kettle的依赖包在m2(中央仓库&am…...
Day10 苍穹外卖项目 订单搜索、各个状态的订单统计、查询订单详细、接单、拒单、取消订单、派送订单、完成订单
目录 1.订单搜索 1.1 需求分析和设计 1.2 接口设计 1.2 代码实现 1.2.1 admin/OrderController 1.2.2 OrderService 1.2.3 OrderServiceImpl 2.各个状态的订单数量统计 2.1 需求分析和设计 2.2 接口设计 2.3 代码实现 2.3.1 admin/OrderController 2.3.2 OrderService 2.3.3 Or…...
你知道OSI参考模型是什么吗?
你知道OSI参考模型是什么吗? 一. OSI模型图解二. OSI七层模型三. OSI模型的特点四. OSI模型与TCP/IP模型的对比五. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱…...
《开源数据:开启信息共享与创新的宝藏之门》
《开源数据:开启信息共享与创新的宝藏之门》 一、开源数据概述(一)开源数据的定义(二)开源数据的发展历程 二、开源数据的优势(一)成本效益优势(二)灵活性与可定制性&…...
机器学习之学习范式
机器学习的四种主要范式分别是:监督学习、非监督学习、强化学习和半监督学习。以下是每种范式的详细介绍: 1. 监督学习(Supervised Learning) 定义: 通过已标注的数据训练模型,以预测或分类未知数据。 目…...
计算机网络技术基础:5.数据通信系统
一、数据通信的基本概念 1.信息 信息是对客观事物的运动状态和存在形式的反映,可以是客观事实的形态、大小、结构、性能等描述,也可以是客观事物与外部之间的联系。信息的载体可以是数字、文字、语音、图形和图像等。计算机及其外围设备产生和交换的信息…...
ubuntu下anconda装pytorch
1、禁用nouveau sudo vim /etc/modprobe.d/blacklist.conf 在文件最后部分插入以下两行内容 blacklist nouveau options nouveau modeset0 更新系统 sudo update-initramfs -u 重启系统 2、装nvidia驱动 卸载原来驱动 sudo apt-get remove nvidia-* (若安装…...
【深入理解MySQL索引】
深入理解MySQL索引 MySQL索引是一种数据结构,用于帮助快速查找和检索数据库表中的数据。以下是对MySQL索引的详细解释,并附有相应的代码示例以加深理解。 一、索引的原理及作用 原理:索引是以数据库表中的“列”为维度建立的,通…...
Linux 中批量添加cron定时任务的方法
目录 方法一:通过 crontab 命令批量添加方法二:通过直接修改 crontab 文件 方法一:通过 crontab 命令批量添加 1、先将需要添加 cron 执行的多条定时任务写入一个文本文件 例如: 0 3 * * * /bin/bash /root/work/job/MySQLBack.…...
【OSS】php使用oss存储
阿里云oss官方文档:文档 1、前期工作 创建阿里云账号,登录创建bucket,注意修改权限,要不然可能读取不到 申请accessKeyId和accessKeySecret accessKey 2、项目中安装OSS扩展 composer require aliyuncs/oss-sdk-php3、基础使…...
个人ffmpeg笔记(一)
环境安装 QT环境安装 运行qt…run安装 下载地址:https://download.qt.io/archive/qt/ 下载地址:https://download.qt.io/archive/qt/5.12/5.12.10/ sudo apt install --reinstall libxcb-xinerama0 解决xcb问题 Ubuntu16.04打开Qt显示/home/user/.co…...
Python的3D可视化库【vedo】2-3 (plotter模块) 增删物体、控制相机
文章目录 4 Plotter类的方法4.3 渲染器内的物体操作4.3.1 添加物体4.3.2 移除物体4.3.3 渲染器的内容列表 4.4 相机控制4.4.1 访问相机对象4.4.2 重置相机状态4.4.3 移动相机位置4.4.4 改变相机焦点4.4.5 改变相机朝向的平面4.4.5 旋转相机4.4.6 对齐相机的上朝向4.4.7 缩放 ve…...
关于QMessageBox的一些使用总结和避坑指南
参考学习 Qt中QMessageBox的用法—看这一篇就够了 Qt:使用QMessageBox弹出标准对话框 QMessageBox模态与非模态及QT中的exec() 如何调整QMessageBox的大小 QSS 自定义QMessageBox python QMessageBox设置标签和按钮居中、中文按钮 使用建议 经过查看多方的资料&…...
LearnOpenGL学习(高级OpenGL -> 高级GLSL,几何着色器,实例化)
高级GLSL 内建变量 顶点着色器 gl_PointSoze : float 输出变量,用于控制渲染 GL_POINTS 型图元时,点的大小。可用于粒子系统。将其设置为 gl_Position.z 时,可以使点的距离越远,大小越大。创建出类似近视眼看远处灯光的效果 gl…...
for X_batch, y_batch in dataloader ,其中y_batch想转成list
for X_batch, y_batch in dataloader ,其中y_batch想转成list for X_batch, y_batch in dataloader:# y_batch数据类型的是 tensor组成的list# 初始化一个空列表来存储展平后的数据y_batch_flat []# 遍历y_batch 这个list中的每个张量for tensor in y_batch:# 展平…...
Kruskal最小生成树算法正确性证明
Kruskal: 每次考虑最短一条边, 如果会形成回路则不选择该边, 如果不会形成回路则选择该边, 直到选出了n-1条边 要点: 每次都选择不会形成回路的最短边 数学归纳法 ① n<2时, 显然成立 ② 设n k时成立, 则当n k1时: 将图划分为 子图A(k) 和 B(1) ∵ n k时成立 ∴ A(k)可…...
操作系统(12)内存分配
前言 操作系统内存分配是操作系统内存管理的重要组成部分,涉及将物理内存分配给各个程序以使用的过程。 一、内存分配的基本概念 内存分配指的是操作系统将物理内存分配给程序以使用。操作系统通过内存分配,确保每个程序都能获得足够的内存资源来执行其任…...
oracle client linux服务器安装教程
p13390677_112040_Linux-x86-64_4of7.zip 安装前,确认/etc/hosts文件已配置正确 cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.2…...
生信技能65 - SRA数据库公共数据自动化下载及SRA批量自动化拆分
根据NCBI Metadata数据表,实现SRA数据库公共数据自动化下载及SRA批量自动化拆分。 1. 程序逻辑 根据SraRunTable.csv自动从公共数据库下载SRA文件 ;模式0(默认)为下载模式,模式1为拆分模式,拆分支持进度显示;提取Metadata关键信息数据,重新写入新的文本文件。2. 运行示…...
ubuntu+ros新手笔记(五):初探anaconda+cuda+pytorch
深度学习三件套:初探anacondacudapytorch 系统ubuntu22.04 ros2 humble 1.初探anaconda 1.1 安装 安装过程参照【详细】Ubuntu 下安装 Anaconda 1.2 创建和删除环境 创建新环境 conda create -n your_env_name pythonx.x比如我创建了一个名为“py312“的环境…...
下载红米Note 9 Pro5G对应的LineageOS代码下载及编译
构建 LineageOS 进入网站:Info about gauguin | LineageOS Wiki,点击:Build for yourself,里面有详细的教程,我这里就按照Note 9 Pro 5G来。 机器环境 Ubuntu环境为:20.04.6LinagesOS版本:21-…...
数据链路层(Java)(MAC与IP的区别)
以太网协议: "以太⽹" 不是⼀种具体的⽹络, ⽽是⼀种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理 层的内容. 例如: 规定了⽹络拓扑结构, 访问控制⽅式, 传输速率等; 例如以太⽹中的⽹线必须使⽤双绞线; 传输速率有10M, 100M, 1000M等; 以太…...
Unity中Mesh重叠顶点合并参考及其应用
在Unity中,如果将一个模型文件(比如从max里面导出一个fbx文件)导入到编辑器中之后,Unity会把所有在原来在面列表中公用的顶点复制一份,保证每个三角形使用的顶点都是单独的,不与其它三角形共用顶点…...
Day3——墨刀原型设计
墨刀介绍 墨刀(Mockplus)是一款流行的在线原型设计和协作工具,适用于网页和移动应用的设计。以下是墨刀的一些主要特点和功能: 主要特点: 快速原型设计:墨刀提供了一系列的设计工具和组件,可…...
【JAVA】Java项目实战—移动端项目:天气查询APP
在移动互联网时代,天气查询应用程序(APP)是日常生活中不可或缺的一部分。无论是出门旅行、上班通勤,还是安排户外活动,获取实时天气信息都至关重要。Java作为一种强大且广泛使用的编程语言,特别适合用于开发…...
P1208 [USACO1.3] 混合牛奶 Mixing Milk(py)
题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮助 Marry 乳业找到最优的牛奶采购方案。 Marry 乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格可能相同。此外,…...
day13 python(1)——python基础
【没有所谓的运气🍬,只有绝对的努力✊】 1、python简介 1.1 为什么学习python 1.2 python发展历史 python2.x和python3.x 版本里面有些是不兼容的。(我自己本地版本 3.11) 2、语言的分类 (1)编译型 …...
Tomcat原理(5)——tomcat最终实现
目录 一、什么是Servlet容器 二、ServletConfigMapping构建实现容器 ServletConfigMapping MyTomcat 三、优化server Server MyTomcat 四、匹配 代码如下: 测试如下: 上一篇博客已经为介绍了servelet的实现 ,这篇对上一篇博客进行补…...
善战者与细
《孙子兵法》说:善战者无赫赫战功。 《道德经》说:天下大事必做于细。 这两句话,可以结合来思考。如果,我们把事业,拆解为多个小项目,小项目拆解为小行动,也就是天下大事作于细。这种情况下&am…...
sqli-labs靶场第26-30关
第26关 这关将逻辑运算符,注释符以及空格给过滤了 我们先使用单引号进行闭合 这时我们查看源代码可以看到这一关过滤了很多字符 可以看到这里将or and / -- # 空格等字符都被注释了 空格被过滤了我们可以使用()来代替,and和or可以使用双写来绕过 因为…...
ffmpeg和ffplay命令行实战手册
文章目录 视频拼接用concat视频分段拼接(ffplay 不可调用seek函数进行seek)给视频添加黑边,让视频填充并居中显示不同分辨率视频分段拼接,并且,设置单个视频的缩放比例和摆放位置视频画中画复杂嵌套用overlay(ffplay 可调用seek函数进行seek)…...
240004】基于maven的java+ssm+mysql的房屋租赁系统的设计与实现
基于ssmmavenmysql的房屋租赁系统的设计与实现 1.项目描述2.运行环境3.项目截图4.源码获取 1.项目描述 该项目在原有的基础上进行了优化,包括新增了注册功能,房屋模糊查询功能,管理员和用户信息管理等功能,以及对网站界面进行了优…...
2.metagpt中的软件公司智能体 (ProductManager 角色)
1. 代码 ProductManager 类 from metagpt.actions import UserRequirement, WritePRD from metagpt.actions.prepare_documents import PrepareDocuments from metagpt.roles.role import Role, RoleReactMode from metagpt.utils.common import any_to_nameclass ProductMan…...
MOS管振铃现象
1,什么是振铃 用MOS管作为电子开关电路如下 单片机输出的PWM波形应该是规整的方波信号。但实际上确出现了下图的不稳定波形。这种上升沿和下降沿出现的不同程度的一小段震荡就叫做MOS管的振铃。如果振铃的峰值超过G端耐压,GS之间就会被击穿,…...
docker简单命令
docker images 查看镜像文件 docker ps -a 查看容器文件 docker rm 0b2 删除容器文件,id取前三位即可 docker rmi e64 删除镜像文件(先删容器才能删镜像),id取前三位即可 在包含Dockerfile文件的目录…...
XML基础学习
参考文章链接: XML基础学习 在w3school看到了XML的教程,想到以前工作学习中也接触到了XML,但只是简单搜索了解了下,没有认真去学习XML的基础,所以现在认真看下其基础部分,并写篇博客作为笔记记录下。 XML 简介 XML 被设计用来传输和存储数据。 什么是 XML? XML 指可…...
ARMS 用户体验监控正式发布原生鸿蒙应用 SDK
作者:杨兰馨(楠瑆) 背景 2024 年 10 月 22 日,华为正式发布了原生鸿蒙操作系统(HarmonyOS NEXT)。原生鸿蒙实现了系统底座全部自研,系统的流畅度、性能、安全特性等方面显著提升,也…...
如何使用微调后的Lora适配器?
Lora(Low-Rank Adaptation) 是一种高效的模型微调方法,尤其在自然语言处理和生成任务中得到了广泛应用。与传统的微调方法相比,Lora方法通过低秩适配器的方式,使得模型微调更为高效,且资源消耗更少。本文将…...
HAL 库:创建hal首要配置内容
第一步配置SYS(system系统) Debug(调试): Serial Wire 串行线(要用stick) Timebase Source:时基源 第二步配置RCC(reset and clodk controler)复位和时钟控…...
YOLOv9-0.1部分代码阅读笔记-experimental.py
experimental.py models\experimental.py 目录 experimental.py 1.所需的库和模块 2.class Sum(nn.Module): 3.class MixConv2d(nn.Module): 4.class Ensemble(nn.ModuleList): 5.def attempt_load(weights, deviceNone, inplaceTrue, fuseTrue): 1.所需的库和模块…...
如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案
引言 在数据分析和市场研究领域,Twitter(现在的X)数据一直是重要的信息来源。但是,自从Twitter更改API定价策略后,获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据? …...
【蓝凌表单】JSP组件常用语法整理
JSP组件常用语法整理 必填非必填写法//必填 $("[name=extendDataFormInfo.value(fd_344677482769e2)]").attr("validate","requiredvalue"); //非必填 $(...
设定“例外规则”:不完美也是完美
完美主义是一种追求极致的心态,它驱使我们不断追求更高的标准和更好的结果。然而,生活并不总是按照我们的计划进行,有时候我们需要灵活应对,设定一些“例外规则”来适应那些不完美的时刻。以下是一些实际的例子,展示如…...
01《Python数据分析》数据分析初探章节总结
目录 1 概述1.1 数据分析定义1.2 数据分析目标1.3 数据分析分类 2 数据分析方法3 数据分析流程4 寻找问题原因5 典型问题参考学习 1 概述 1.1 数据分析定义 数据分析1就是:用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论&…...
java web 实验五 Servlet控制层设计(设计性)
实验五 Servlet控制层设计(设计性) //代码放在资源包里了 实验目的 熟悉Servlet的基本语法。掌握采用HTML、JS、JDBC、JSP、Servlet和四层结构的综合应用。实验要求 本实验要求每个同学单独完成;调试程序要记录调试过程中出现的问题及解决…...
Timestamp Unix时间戳在线转换 - 加菲工具
Timestamp Unix时间戳在线转换 打开网站 加菲工具 选择“时间戳转换” 或者直接打开: https://www.orcc.online/tools/timestamp 在前半部分输入框输入时间/时间戳,点击“转换>>”按钮,即可转换完成 得到转换结果...
ABAP 订单多次开票,显示多张开票凭证
一、业务背景 在实际业务上,同一笔销售订单可能分多次发货,多次开票,因此再销售订单状态报表上就要体现该过程:对于同一张销售订单,分多次开票时,按照发票和订单行项目,显示开票数量与为开票数…...