什么是UML?

news2025/1/21 15:39:57

文章目录

  • 00 | 基础知识
  • 01 | 静态建模
    • 类图
    • 对象图
    • 用例图
  • 02 | 动态建模
    • 时序图
    • 通信图
    • 状态图
    • 活动图
  • 03 | 物理建模
    • 构件图
    • 部署图

UML(Unified Model Language),统一建模语言,是一种可以用来表现设计模式的直观的,有效的框图语言。类似于流程图,通过采用一系列的线条和图形来描述出面向对象软件的整体架构。
UML图总分为三大类
静态建模:类图、对象图、用例图
动态建模:时序图、通信图、状态图、活动图
物理建模:构件图、部署图

00 | 基础知识

  • UML图形

    UML图形包括四大类:结构、行为、分组和注释

    1. 结构:结构图形是UML中的静态部分(类比中英文中的名词部分),用以描述其中的概念部分。结构图形中包括类、接口、协作、用例、主动类、构建、制品和结点等;

    结构图形

    1. 行为:行为图形是UML中的动态部分(类比中英文中的动词部分),用以描述其中的动作行为。行为图形中包括了交互、状态机和活动等;

    行为图形

    1. 分组:分组图像是UML中的组织部分(类比一个完整的中英文短句),用以描述由模型分解出来的一部分区域。其中最主要的分组图形就是包,包是把结构、行为打包的机制,仅在开发时存在,是一种纯粹的概念;

    包

    1. 注释:注释图形是UML中的解释部分(类比中英文中的注释、注解),用以描述、说明和标注模型中的任意元素;

    注释

  • UML关系

    UML关系包括四种:依赖、关联、泛化和实现

    -UML关系

    1. 依赖:一个独立元素发生变化会影响另一个独立元素。在UML图形中,通常把依赖化成一条可能由方向的虚线;

    2. 关联:描述一组对象之间的结构关系连接。聚集是一种特殊的关联,描述了整体和部分之间的结构关系;

    3. 泛化:一种描述特殊-一般关系的语义,指特殊元素(子类的对象)可替代一般元素(父类的对象)的关系,特殊元素共享一般元素的结构和行为。在UML图形中,通常把一个泛化关系画成一条带有空间三角箭头的实线;

    4. 实现:指的是一个类指定了由另一个类保证执行的约定关系。在UML图形中常把一个实现关系画成一条带有空心三角箭头的虚线。实现关系通常用在两个情况上:

      1. 接口和实现他们的类之间;
      2. 用例和实现他们的协作之间;

01 | 静态建模

类图

类图展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图,也包括主动类的类图给出的关系系统静态进程视图。

类图中主要包括:类、接口、协作和关系(依赖、泛化、关联)、注释
UML类图

类图用于堆系统的静态设计建模,这种建模主要描述出系统的功能需求。根据建模的对象,通常用以下三种方式进行建模

  1. 面向系统的词汇建模:描述这些抽象词汇和他们的职责关系;

  2. 面向简单的协作建模:协作是一些共同工作的类、接口和其他元素的群体,对系统中合同的类之间的关系进行可视化的描述;

  3. 面向逻辑数据库模式建模:将模式看作为数据库的概念进行设计,描述系统中对数据操作的关系;

对象图

对象图展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例静态快照,一般包括对象和它们之间的连接

UML对象图

用例图

用例图展现了一组用例、参与者以及他们之间的关系

用例图通常包括:用例、参与者、关系(用例间的扩展、包含关系,参与者与用例间的关联关系,用例与用例以及参与者与参与者之间的泛化关系

UML用例图

02 | 动态建模

时序图

时序图是应用场景的可视化、图形化表示形式,描述了以时间顺序组织的对象之间的交互活动。在嵌入式中,对平台芯片启动流程时常需使用时序图描述出系统启动的各级顺序。

时序图中把参加交互的对象放在图的上方水平排列(发起方居左,接收方居右),把对象发送和接收的消息沿垂直方向按时间顺序从上到下排列,形成一种随时间推移的控制流可视化痕迹。

时序图有两个特点:有对象生命线有控制焦点

UML时序图

通信图

通信图强调收发消息的对象的结构组织

类比有向图,通信图中将参加交互的对象作为图的顶点,连接这些对象的的链作为图的弧,最后用对象发送和接收的消息来描述这些链。

通信图有两个特点:路径顺序号

UML通信图

状态图

状态图展现了一个状态机,它由状态、转换、事件和活动组成,关注系统的动态视图,对于接口、类和协作的行为建模及其重要,主要强调对象行为的事件顺序。
状态图对系统的动态方面建模,主要包括出现在系统结构的任意视图中的对象按照顺序发生的行为

状态图通常包括简单状态和组合状态、转换

  • 状态:指对象的生命周期中某个条件或者状态,在此期间对象将满足某些条件或者执行某些动作,即对象执行了活动的结果

UML状态图

活动图

活动图是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程,专注于对象间的控制流程

活动图一般包括活动状态和动作状态、转换和对象,可以表示分支、合并、分岔和汇合

  • 分支:描述基于布尔表达式的可选择路径

  • 合并:描述两条控制流重新合并为一个控制流

  • 分岔:描述一个控制流分程两个或多个并发控制流

  • 汇合:两个或多个并发控制流的同步

UML活动图

03 | 物理建模

构件图

构件图展示了一组构建之间的组织和依赖,专注于系统的静态实现,通常把一个构建表示为类、接口、协作,与类图相关。

构件图

部署图

部署图展现了系统运行时处理结点以及其中构建的配置。

通常一个结点是一个在运行阶段存在并代表一个计算资源,即具备处理事件的能力,通常包含多个构件

UML部署图

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

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

相关文章

【图像分割】Grounded Segment Anything根据文字自动画框或分割环境配置和基本使用教程

1 环境配置 要求:python>3.8, pytorch>1.7, torchvision>0.8 官方地址:https://github.com/IDEA-Research/Grounded-Segment-AnythingMarrying Grounding DINO with Segment Anything & Stable Diffusion & BLIP & Whisper &am…

命运坎坷的保定县

保定的词语分解 保护而安定之。诗小雅天保:“天保定尔,亦孔之固。”谓稳固地保有。 晋 陆云 大将军宴会被命作诗:“皇皇帝祜,诞隆骏命。四祖正家,天禄保定。” 保定府?保定县? 今天提起“保定…

将“每日造型”变成长久习惯,戴森Airwrap™美发棒为何成为最好的“美丽投资”?

做头发、换发型是一个大工程,这几乎成了一种固定印象。虽然卷发棒已成为几乎“人手必备”的头发造型工具,但使用起来往往“现实很骨感”,不是使用频次极低,就是被束之高阁,每天都自己做头发换造型,只能是一…

陶泓达:4.19黄金原油早间精准策略!

黄金方面: 周二(4月18日)美市早盘,现货黄金一度跌至1991.05美元低点,但随后迅速拉升近20美元,向上触及2010.71美元高点,短线走出V型反转行情。本周,美国经济日历上没有太多关键数据会影响黄金和美元。因此&…

docker的数据卷详解

数据卷 数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方修改会立即同步 一个数据卷可以同时被多个容器同时挂载,一个容器也可以被挂载多个数据卷 数据卷作用:容器数据持久化 /外部机器和容器间接通信 /容器…

leetCode算法第二天

好好刷刷算法题,提高自己的编码能力。 文章目录 将整数转为罗马数字将罗马数字转为整数编写一个函数来查找字符串数组中的最长公共前缀电话号码的字母组合 将整数转为罗马数字 leetcode链接:https://leetcode.cn/problems/integer-to-roman/ 解题思路…

施工阶段如何应用BIM技术,建模助手有话说

​近些年来,越来越多的建筑项目采用BIM来提升管理水平和品质,特别在施工阶段,通过BIM技术可以将施工现场3D模型与施工进度链接,超前模拟施工情况,完成各种精细化施工方案,除了保障施工工作顺利推进&#xf…

GitHub Copilot 快速入门

GitHub Copilot 是 AI 结对程序员。 可以使用 GitHub Copilot 在编辑器中获取整行或整个函数的建议。 1. 简介 让我们首先了解一些关于 GitHub Copilot 的内容。 这是 GitHub 和 OpenAI 的合作成果。 Copilot 是一种基于人类程序员编写的数十亿行代码训练的语言模型。 &#…

【WSN定位】基于RSSI的加权质心定位算法-Matlab代码

文章目录 1. 原始质心定位算法2. 基于RSSI的加权质心定位算法基本思想3. 基于RSSI的加权质心定位算法流程图4. 部分代码展示5. 运行结果展示6. 资源获取 1. 原始质心定位算法 可参考质心定位算法 2. 基于RSSI的加权质心定位算法基本思想 传统的质心算法在求解过程中只是将未…

网络协议-加密和HTTPs证书

目录 对称加密和非对称加密 加密解密 加密方法/解密方法 对称加密/非对称加密 非对称加密(秘钥对) 思考 解决信任问题 证书体系 算法如何验证证书就是Alibaba 实际的证书体系 ​编辑 常见算法介绍 DES(Data Encryption Standard&…

量子力学、波函数与量子计算:揭开宇宙微观奥秘的神奇之门

在一个遥远的星球,生活着一群拥有超自然力量的智慧生物。他们能够随心所欲地让物体在空间瞬移,甚至能够预测未来。有一天,一位地球科学家意外穿越到了这个星球。经过一番了解,科学家惊奇地发现,他们所掌握的这种神奇力…

ai智能文章改写软件-ai智能文案自动生成

AI同义转换,掀起内容创作新革命! 如今,在数字化时代,内容创作日益受到重视,越来越多的人致力于网站排名优化、内容创意提升以及用户体验改善。然而,吸引用户阅读和提供有价值的信息并不那么容易。因此&…

云原生个人线路 K8s本地集群搭建(实操)

声明:此文章为博主个人学习记录,仅供学习和交流,如有侵权请联系博主。 kubernetes本地集群部署 三种方式 minikube 集群模拟器 裸机 kindminikube Docker客户端部署 裸机 环境 虚拟机 VMware 三台centos7 每台2g内存 2cpu 30g硬盘 k8s-mas…

Keil5 MDK新建项目工程

本文重点介绍基于Keil5 MDK实现新建一个完整的工程,第一次新建比较繁琐,建好后续工程可以直接复用 一、新建工程框架 1.新建一个文件夹,命名为Template 2.点击 MDK 的菜单: Project –>New Uvision Project ,然后将目录定位…

( “树” 之 前中后序遍历) 145. 二叉树的后序遍历 ——【Leetcode每日一题】

基础概念:前中后序遍历 1/ \2 3/ \ \ 4 5 6层次遍历顺序:[1 2 3 4 5 6]前序遍历顺序:[1 2 4 5 3 6]中序遍历顺序:[4 2 5 1 3 6]后序遍历顺序:[4 5 2 6 3 1] 层次遍历使用 BFS 实现,利用的就是 BFS…

Git从远程仓库克隆仓库后推送到指定分支

git克隆到本地仓库 在得到一个git仓库地址后,首先要配置本地仓库,配置远程仓库地址才可以远程拉取项目。 本地配置的一般流程: git init初始化一个空白git仓库 2. 配置在自己额用户名和邮箱 配置个人信息时方便再团队合作时能知道是谁再何…

2023 CCBN广电展顺利召开,ATEN宏正携广电专属系列解决方案亮相

4月19日-4月21日,第二十九届中国国际广播电视信息网络展览会(CCBN2023)于北京市石景山区首钢会展中心盛大开幕。本届CCBN广电展以“大视听向未来”为主题,内容涵盖广播电视、网络视听、电影、信息化视听、视听消费电子、通信、IT等多个领域创新科技和行业…

MySQL高级第十三篇:MySQL事物日志(redo日志-undo日志执行流程)

MySQL高级第十三篇:MySQL事物日志(redo日志-undo日志执行流程) 一、概述二、redo 日志1. 为什么需要 redo日志?2. redo 日志的特点3. redo log 整体流程4. redo log 的刷盘策略? 三、undo 日志1. 什么是 undo 日志&…

1026. 节点与其祖先之间的最大差值(4-19日

题目:给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么…

context 浅析

在缺少直接调用关系的两个函数之间传递数据,一般都会考虑使用 context,而 context 也被用来存储整个请求链路的公参信息,用户 uid、链路 traceID、特定的业务参数等。函数第一个参数类型设置为 context.Context 也是 Go 的默认写法&#xff0…