Draw.io绘制UML图教程

news2025/1/12 23:16:43

一、draw.io介绍

1、draw.io简介

draw.io 是一款强大的免费在线图表绘制工具,支持创建流程图、组织结构图、时序图等多种图表类型。它提供丰富的形状库、强大的文本编辑和样式设置功能,使用户能够轻松创建专业级图表。draw.io 具有用户友好的界面,支持实时协作,可以存储到云端服务,并提供多种导出选项。作为一款开源软件,它广泛用于个人、教育和小型团队,为用户提供了灵活、便捷的图表绘制体验。

draw.io 提供了丰富的图表类型,包括但不限于:

  • 流程图
  • 组织结构图
  • 时序图
  • 思维导图
  • UML 图
  • 网络图
  • ER 图(实体关系图)
  • 电路图等

2、draw.io特点 

具有以下特点:

特点详细描述
免费且开源draw.io 是一款开源软件,并且完全免费使用。你可以直接在浏览器中使用,无需下载或安装任何应用程序。这使得它成为一个便捷的工具,适用于个人用户、学生和小型团队。
多种图表类型draw.io 提供了丰富的图表类型,比如流程图、组织结构图、时序图、思维导图、UML 图、网络图、ER 图(实体关系图)、电路图等。
强大的编辑功能draw.io 提供了丰富的形状库,包括基本形状、流程图符号、图标等,方便用户快速创建图表。用户可以轻松编辑图表中的文本,调整字体、颜色和大小。支持对图表中的元素进行颜色、边框、填充等样式设置,使图表更加生动。
实时协作draw.io 支持多用户实时协作编辑图表,用户可以通过共享链接邀请他人查看或编辑图表。这使得团队成员能够在同一图表上协同工作,提高工作效率。
云端存储用户可以选择将图表保存到云端服务(如 Google Drive、OneDrive、GitHub 等),方便随时随地访问和编辑。
灵活导出draw.io 提供了多种导出选项,包括 PNG、JPEG、SVG、PDF 等格式,使用户可以灵活地分享、嵌入或打印图表。
用户友好性draw.io 设计简单直观,用户界面友好,不需要复杂的学习过程即可上手。同时,它也提供了丰富的在线文档和教程,帮助用户更好地利用工具的各种功能。


3、开源版本Diagrams

同时,draw.io 拥有开源版本 Diagrams。Diagrams 源代码是基于 draw.io 的开源分支,允许用户在本地部署和使用,同时保留了 draw.io 的核心功能和特性。 


二、draw.io的使用步骤

访问 draw.io,可以直接在浏览器中使用,不需要下载或安装任何软件。

选择模板或空白页面 

  • 选择 "New Diagram"。
  • 选择你想要创建的图表类型,或者选择 "Blank Diagram" 以开始一个空白图表。

添加形状

  • 从左侧的面板中选择你想要添加的形状,例如矩形表示流程步骤,箭头表示流程流向。
  • 将形状拖动到画布上。

连接形状

  • 选择 "Connector" 工具。
  • 点击一个形状,拖动鼠标到另一个形状,连接它们。

编辑文本

  • 双击形状,开始编辑文本。
  • 输入你想要显示的文本,按 Enter 完成编辑。

格式化和样式 

  • 选中一个形状,你可以通过右侧的 "Format" 栏修改颜色、字体等样式。
  • 通过右键点击形状,选择 "Format" 进行更高级的格式设置。

添加图片和图标

  • 选择 "Image" 工具。
  • 从你的计算机中拖动一个图片文件到画布上。

保存和导出

  • 选择 "File" -> "Save" 以保存你的图表。
  • 可以选择不同的格式导出图表,如 PNG、JPEG、PDF 等。

共享和协作

  • 使用 draw.io 的 "Share" 功能,可以生成一个共享链接,方便团队协作编辑。

通过以上步骤,你就可以创建一个简单的流程图。draw.io 提供了丰富的工具和选项,可以满足各种图表绘制的需求。通过不断尝试和探索,你会逐渐掌握 draw.io 的更多功能。


三、draw.io结合PlantUML

draw.io 结合 PlantUML 提供了强大的 UML 图绘制功能。PlantUML 是一种基于文本描述的 UML 图生成工具,通过在 draw.io 中嵌入 PlantUML 语法,用户可以快速绘制出各种 UML 图,如类图、时序图等。

使用步骤:

打开 draw.io,在右侧代表新建的加号。

在 "高级" 下找到 "PlantUML"。

编写 PlantUML 语法,例如:

@startuml
 
!define RECTANGLE class
 
RECTANGLE "EVB RK3568\n开发板" {
}
 
RECTANGLE "Node.js和\nNode-RED" {
  +getData()
  +processData()
}
 
RECTANGLE "SQLite\n数据库模块" {
  +storeData()
}
 
RECTANGLE "Opcua\n数据获取" {
  +fetchData()
}
 
RECTANGLE "MQTT" {
  +publishData()
}
 
RECTANGLE "Windows10+DevEco Studio\n用户界面" {
  +displayData()
  +setThreshold()
}
 
RECTANGLE "服务器" {
  +receiveData()
  +triggerAlarm()
}
 
"EVB RK3568\n开发板" -> "Node.js和\nNode-RED": 传感器数据
"Node.js和\nNode-RED" -> "SQLite\n数据库模块": storeData()
"Node.js和\nNode-RED" -> "Opcua\n数据获取": fetchData()
"Node.js和\nNode-RED" -> "MQTT": publishData()
"MQTT" -> "服务器": receiveData()
 
"服务器" -> "Windows10+DevEco Studio\n用户界面": displayData()
"Windows10+DevEco Studio\n用户界面" -> "服务器": setThreshold()
 
@enduml

将 PlantUML 语法粘贴到 draw.io 的 PlantUML 输入框中。

点击 "Apply" 应用语法,draw.io 将生成相应的 UML 图。


四、draw.io结合Mermaid

draw.io 还支持与 Mermaid 集成,Mermaid 是一个用于绘制流程图、时序图等的 JavaScript 库。

使用步骤:

打开 draw.io,在右侧代表新建的加号。

将 Mermaid 语法粘贴到 draw.io 的 Mermaid 设备中。

sequenceDiagram
    participant A as 用户
    participant B as Harmony设备
    participant C as 云服务器
    participant D as 云数据库
    participant E as 嵌入式上层应用
    participant F as 开发板
    participant G as SQLite
 
    activate A #grey
    note over A: 用户查看操作
    A->>B: 查询事件
    deactivate A
    activate B #lightblue
    B->>C: 请求数据
    deactivate B
    activate C #orange
    C->>D: 查询
    deactivate C
    activate D #blue
    D-->>C: 返回数据
    deactivate D
    activate C #orange
    C-->>B: 返回数据
    deactivate C
    activate B #lightblue
    B-->>A: 显示内容
    deactivate B
 
    activate A #grey
    note over A: 用户更改操作
    A->>B: 更新事件
    deactivate A
    activate B #lightblue
    B->>C: 请求更新
    deactivate B
    activate C #orange
    C->>F: 请求更新
    deactivate C
    activate F #lightgreen
    F->>G: 请求更新
    deactivate F
    activate G #green
    G-->>F: 返回结果
    deactivate G
    activate F #lightgreen
    F->>C: 发送修改请求
    deactivate F
    activate C #orange
    C->>D: 更新数据
    deactivate C
    activate D #blue
    D-->>C: 返回结果
    deactivate D
    activate C #orange
    C-->>B: 返回结果
    deactivate C
    activate B #lightblue
    B-->>A: 返回结果
    deactivate B
    activate A #grey
    A->>A: 提示结果
    note over A: 操作成功
    deactivate A

点击 "Apply" 应用语法,draw.io 将生成相应的流程图。

通过结合 PlantUML 和 Mermaid,draw.io 提供了更多的图表绘制选项,使用户能够更灵活地创建各种 UML 图和流程图。这种结合使得 draw.io 成为一个适用于不同图表需求的多功能图表工具。

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

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

相关文章

Hive【内部表、外部表、临时表、分区表、分桶表】【总结】

目录 Hive的物种表结构特性 一、内部表 建表 使用场景 二、外部表 建表:关键词【EXTERNAL】 场景: 外部表与内部表可互相转换 三、临时表 建表 临时表横向对比​编辑 四、分区表 建表:关键字【PARTITIONED BY】 场景: 五、分桶表 …

ssm+springmvc基于springboot的宠物领养系统的设计与实现_j5fk4

宠物领养系统主要是为了提高管理员的工作效率,满足管理员对更方便、更快、更好地存储所有信息和数据检索功能的要求。通过对多个类似网站的合理分析,确定了宠物领养系统的各个模块。考虑到用户的可操作性,经过深入调查研究,遵循系…

django rest framework 学习笔记-实战商城2

01收货地址模型类和视图定义_哔哩哔哩_bilibili 本博客借鉴至大佬的视频学习笔记 地址信息的管理:增删改查的实现 # 序列化器配置 class AddrSerializer(serializers.ModelSerializer):"""收货地址的模型序列化器"""class Meta:mo…

NXP实战笔记(六):S32K3xx基于RTD-SDK在S32DS上配置PWM发波

目录 1、概述 2、SDK配置 2.1、Port配置 2.2、Emios_Mcl_Ip 2.3、Emios_Pwm 2.4、代码示例 1、概述 针对S32K3xx芯片,产生PWM的硬件支持单元仅有两个,分别是eMiosx与Flexio. 生成PWM的顺序,按照单片机所用资源进行初始化执行如下 初始化…

ELK入门(四)-logstash

Logstash Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的存储库中。 Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中…

Kotlin基础 7

1.apply函数详解 1.1. DSL /*** 为什么要传入扩展函数(泛型),而不是一个普通的匿名函数* T.()->Unit* 扩展函数里自带了接收者对象的this隐式调用* 为什么是泛型的扩展函数?* 因为是由this 隐式调用 this 类型就是泛型类型, 相当于this的扩展函数,…

短剧小程序开发,重塑视频观看体验的科技革命

随着科技的飞速发展,人们的娱乐方式也在不断变化。短剧小程序作为新兴的数字娱乐形式,以其独特的魅力和巨大的市场潜力,正逐渐成为科技与娱乐结合的代表。本文将探讨短剧小程序的发展背景、优势特点、开发流程以及未来展望。 一、短剧小程序…

MySQL数据库集群技术主从复制 一主一从详细讲解

集群技术 集群概述 MySQL复制技术 集群目的 负载均衡 解决高并发 高可用HA 服务可用性 远程灾备 数据有效性 类型 一主一从 一主双从 双主双从 原理 概念 在主库上把数据更改(DDL DML DCL)记录到二进制日志(Binary Log)中…

RISC-V知识总结 —— 指令集

资源1: RISC-V China – RISC-V International 资源2: RISC-V International – RISC-V: The Open Standard RISC Instruction Set Architecture 资源3: RV32I, RV64I Instructions — riscv-isa-pages documentation 1. 指令集架构的类型 在讨论RISC-V或任何处理器架构时&…

Code Release Process

Code Control Process-CSDN博客 代码发布流程(Code Release Process)

Java毕业设计-基于ssm的校园二手交易管理系统-第67期

获取源码资料,请移步从戎源码网:从戎源码网_专业的计算机毕业设计网站 项目介绍 基于ssm的校园二手交易管理系统:前端jsp、jquery,后端 springmvc、spring、mybatis,集成商品管理、订单管理、销售管理、采购管理、购…

vue.js el-tooltip根据文字长度控制是否提示toolTip

一、需求&#xff1a;如何判断当前文本文字是否超出文本长度&#xff0c;是否需要出现提示toolTip。效果图如下&#xff1a; 二、实现&#xff1a; 1、表格字段鼠标放置el-popover出现 “引用主题” 的具体内容&#xff1b; <!-- 表格字段&#xff1a;引用主题 --> <…

Azuki NFT 概览与数据分析

作者&#xff1a;stellafootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;Azuki NFT Collection Dashboard Azuki NFT 将动漫艺术与实用性相结合&#xff0c;培育了一个充满活力的 Web3 社区。 这个 NFT 项目会在 2024 年崛起吗&#xff1f; …

数字化转型导师坚鹏:政府数字化转型之数字建设、发展与创新

政府数字化转型之数字基础设施建设、发展与创新 课程背景&#xff1a; 数字化背景下&#xff0c;很多政府存在以下问题&#xff1a; 不清楚数字基础设施建设现状&#xff1f; 不清楚数字基础设施发展趋势&#xff1f; 不清楚数字基础设施创新案例&#xff1f; 课程特色…

《优化接口设计的思路》系列:第八篇—分页接口的设计和优化

系列文章导航 第一篇—接口参数的一些弯弯绕绕 第二篇—接口用户上下文的设计与实现 第三篇—留下用户调用接口的痕迹 第四篇—接口的权限控制 第五篇—接口发生异常如何统一处理 第六篇—接口防抖(防重复提交)的一些方式 第七篇—接口限流策略 第八篇—分页接口的设计和优化 …

LeetCode刷题计划----day5

19 力扣链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/description/ 文章讲解链接&#xff1a;https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8…

奇怪的需求之与图片做交互

1.起因 客户想要展示自己的地图,该地图上有各种工作数据,和工作点位,已有的地图不能满足需求.于是提出将这张图片当成大背景 2.经过 鉴于文件格式和尺寸的原因,协商后客户提出将图片做成缩放效果,同时具有点击效果,原先直接进入的主页,现在为点击图片中的某条线路进入主页面…

WordPres Bricks Builder 前台RCE漏洞复现(CVE-2024-25600)

0x01 产品简介 Bricks Builder是一款用于WordPress的开发主题,提供直观的拖放界面,用于设计和构建WordPress网站。它使用户能够轻松创建自定义的网页布局和设计,无需编写或了解复杂的代码。Bricks Builder具有用户友好的界面和强大的功能,使用户可以通过简单的拖放操作添加…

【力扣hot100】刷题笔记Day9

前言 阴天睡得还挺舒服&#xff0c;9点半才醒&#xff0c;用刷题开启美好新一天&#xff01; 141. 环形链表 - 力扣&#xff08;LeetCode&#xff09; 哈希表 class Solution:def hasCycle(self, head: Optional[ListNode]) -> bool:seen set() # 哈希集合# seen {} #…

Web前端3D JS框架和库 整理

在WebGL库和SVG/Canvas元素的支持下&#xff0c;JavaScript变得惊人的强大。几乎可以为网络构建任何东西&#xff0c;包括基于浏览器的游戏和本地应用&#xff0c;许多最新的突破性功能都在3D上运行。 为此&#xff0c;「数维图小编」整理了19个交互式3D Javascript库和框架&am…