VSCODE 系列(六)使用Plantuml插件制作UML类图

news2024/11/25 12:51:46

文章目录

  • 前言
    • 下载和安装
    • 支持文件格式
    • 支持绘制类型
    • 导出
  • 语法
  • 申报要素
  • UML类图关系
  • 参考例子
  • 参考


前言

软件设计中,有好几种图需要画,比如流程图、类图、组件图等,我知道大部分人画流程图一般都会用微软的visio绘制,visio画图有个不好的地方是需要时刻去调整线条和边框已达到简洁美观,今天我给大家介绍一款程序员画图神器PlantUML!
PlantUML是一种功能非常强大的UML描述语言。本文将介绍如何在VSCODE中安装和类图的绘制。

下载和安装

要想在vscode上作uml图,则必然是需要安装plantuml语言的插件,在安装插件里搜索栏里搜索plantuml安装如下所示
在这里插入图片描述只安装plantuml还不行,因为想要把uml图显示出来,还必须要有绘图插件才行,这里就需要graphviz插件,安装如下
在这里插入图片描述 这两个插件安装好之后,就可以在vscode上通过plantuml语言作uml图,ALT+D可把plantuml语言以图形形式更新展现出来。

支持文件格式

.wsd, .pu, .puml, .plantuml, .iuml

支持绘制类型

  • 时序图
  • 用例图
  • 类图
  • 活动图 (旧版语法在此处)
  • 组件图
  • 状态图
  • 对象图
  • 部署图
  • 定时图

同时还支持以下非UML图:

  • 线框图形界面
  • 架构图
  • 规范和描述语言 (SDL)
  • Ditaa diagram
  • 甘特图
  • MindMap diagram
  • 以 AsciiMath 或 JLaTeXMath 符号的数学公式

本文主要介绍程序员开发中类图的绘制。

导出

ctrl+shift+p打开首选项
输入:PlantUML:导出当前图表;选择导出格式png;导出即可。

语法

语法简单明了,查看以下官方教程

申报要素

@startuml
abstract        abstract
abstract class  "abstract class"
annotation      annotation
circle          circle
()              circle_short_form
class           class
diamond         diamond
<>              diamond_short_form
entity          entity
enum            enum
interface       interface
protocol        protocol
struct          struct
@enduml

在这里插入图片描述

UML类图关系

类图关系符号
依赖<…或…>
单向关联<–
双向关联–或<–>
聚合o–
组合*–
泛化/继承<|–
实现<|…

类图关系使用戳这里**PlantUml实现类图**和PlantUML 快速入门(一) 绘制 UML 类图

@startuml
Class01 ..> Class02 :  依赖
Class03 --> Class04 :  单向关联
Class05 <--> Class06 :  双向关联
Class07 o-- Class08 :  聚合
Class09 *-- Class010 :  组合
Class10 <|-- Class11 : 泛化/继承
Class12 ..|> Class13 :  实现
@enduml

在这里插入图片描述

参考例子

@startuml
动物 ..> 空气 : 依赖
动物 ..> 水
鸟 --|> 动物 : 继承
大雁 ..|> 飞翔 : 实现接口
大雁 --|> 鸟
大雁 "n" --o "1" 雁群 : 聚合
鸭 --|> 鸟
唐老鸭 -- 鸭
翅膀 --* 鸟 : 组合 >
企鹅 --> 气候 : 单向关联
企鹅 --|> 鸟

class 动物 {
    - {static}有生命
    # 重量
    + 年龄
    + {abstract}新陈代谢(空气 水)
    + 繁殖()
    + 繁殖(变量1)
}

note right: 动物的注释

note left of 动物::重量
    动物的重量的注释
end note

note left of 动物::"繁殖()"
    同名方法的注释
end note

note right of 动物::"繁殖(变量1)"
    同名方法的注释
end note

class 空气

class 水

class 鸟 {
    + 翅膀
    + 下蛋()
}

class 翅膀 {

}

interface 飞翔 {
    + 飞()
}

class 大雁 {
    + 下蛋()
    + 飞翔()
}

note top of 大雁
    大雁的注释
end note

class 雁群 {
    + V型飞行()
    + 一型飞行()
}

class 鸭 {
    + 下蛋()
}

class 唐老鸭 {
    - 讲话()
    # 走路()
}

class 企鹅 {
    + 下蛋()
}

enum 气候 {
}

note as N1
    这是一个注释,可以像Markdown一样贴图和
    HTML一样<u>下划线</u>
end note
@enduml

在这里插入图片描述

参考

官方教程
PlantUml实现类图
PlantUML 快速入门(一) 绘制 UML 类图
liml-miku

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

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

相关文章

[附源码]计算机毕业设计高校实验室仪器设备管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

Java学习笔记 --- 反射

一、反射机制 Java Reflection 1、反射机制允许程序在执行期间借助于 ReflectionAPI取得任何类的内部信息&#xff08;比如成员变量&#xff0c;构造器&#xff0c;成员方法等&#xff09;&#xff0c;并能操作对象的属性及方法。反射在设计模式和框架底层都会用到 2、加载完…

数学基础从高一开始6、全称量词与存在量词

数学基础从高一开始6、全称量词与存在量词 目录 数学基础从高一开始6、全称量词与存在量词 全称量词 存在量词 1.判断命题的真假 2.判断命题的真假 阅读下列两组命题&#xff0c;语言上有什么特点? A组&#xff1a; (1)对任意一个x∈Z&#xff0c;2x1是整数; (2)每一个素…

Pod使用进阶

Pod使用进阶 封面 写在前面 语雀上阅读效果更佳&#xff0c;请访问如下地址&#xff1a; 197 Pod使用进阶 语雀 《197 Pod使用进阶》 1、Pod 资源配置 实际上上面几个步骤就是影响一个 Pod 生命周期的大的部分&#xff0c;但是还有一些细节也会在 Pod 的启动过程进行设置&…

Hive 计算用户留存率(次日,3日,N日)

文章目录什么是用户留存率&#xff1f;创建数据源计算留存率计算 N 日的留存率什么是用户留存率&#xff1f; 用户留存率是指在特定时间段内&#xff0c;用户在使用某个产品或应用程序后&#xff0c;再次使用该产品或应用程序的比例。 它可以帮助公司了解用户是否喜欢他们的产…

2022 第十四届蓝桥杯模拟赛第二期题目题解(比赛时使用方法)

目录 第一题&#xff1a;最小的2022 第二题&#xff1a;经过天数 第三题&#xff1a;特殊的十六进制数 第四题&#xff1a;矩阵的最小路径 第五题&#xff1a;质数拆分 第六题&#xff1a;拷贝时间 第七题&#xff1a;单词去重 第八题&#xff1a;最短回文串 第九题&a…

[附源码]Node.js计算机毕业设计大学校园二手教材与书籍Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

GoWeb 优雅的 ORM 框架之 GORM,实现 MySQL 数据库的增删改查等操作(附案例全代码)

1、前言 什么是web应用,Web应用程序简单流程如下图所示 通过上图我们发现,我们 GoWeb 实战项目还缺少最后关键的环节数据库。那么如何使用 GO 语言操作数据库并完成增删改查等操作是我们今天学习的目标。 GoWeb 的 MVC 入门实战案例,基于 Iris 框架实现(附案例全代码) …

[附源码]Python计算机毕业设计Django的连锁药店销售管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

11.校验token和解析token获取数据代码优化

校验token和解析token获取数据代码优化 解决方案 基于ThreadLocal 拦截器的形式统一处理 一、使用拦截器进行统一身份鉴权 1.1定义拦截器 package com.tanhua.server.interceptor;import com.tanhua.commons.utils.JwtUtils; import org.springframework.web.servlet.Handl…

[附源码]Nodejs计算机毕业设计基于java旅游信息分享网站Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

二、物理层(一)通信基础

目录 1.1通信基础概念 1.2传输方式 1.2.1串行传输和并行传输 1.2.2单工通信、半双工通信和全双工通信 1.3编码与调制 1.3.1数字数据编码为数字信号 1.3.2数字数据调制为模拟信号 1.3.3模拟信号编码为数字信号 1.3.4模拟数据调制为模拟信号 1.4电路交换、报文交换与分…

装了就不舍得卸载,4款电脑必装软件,功能实用又免费

下面4款电脑软件&#xff0c;每一个都是你绝对能用得上的神器&#xff0c;可遇不可求。 1、AutoOff AutoOff是一款完全免费&#xff0c;纯绿色的电脑操作定时工具&#xff0c;功能强大且实用&#xff0c;体积不到1M&#xff0c;非常小巧&#xff0c;支持自动关机、重启、休眠、…

Mysql批量插入对比(附github仓库demo)

前言 本文记录个人使用MySQL插入大数据总结较实用的方案&#xff0c;通过对常用插入大数据的4种方式进行测试&#xff0c; for循环单条拼接SQL批量插入saveBatch()循环 开启批处理模式 最近趁空闲之余&#xff0c;在对MySQL数据库进行插入数据测试 准备工作 测试环境&…

189:vue+openlayers 上传CSV文件,导出Geojson格式文件

第189个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers上传CSV文件,导出GeoJSON文件。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果使用的csv文件安装依赖配置方…

直播场控助手 | 为什么说直播场控比主播更重要?

在竞争白热化的直播时代&#xff0c;作为主播最亲密的伙伴&#xff0c;场控的作用不容忽视。 优秀的场控掌握着关键成交节点&#xff0c;实时帮助主播带节奏、促转化。在精细化直播运营中&#xff0c;优秀的场控能力胜过十位主播&#xff0c;让直播间轻松实现销量翻倍。 「帷幄…

基于jsp+mysql+ssm水果蔬菜销售系统-计算机毕业设计

项目介绍 生活中&#xff0c;人们买水果或者蔬菜都是去菜市场买&#xff0c;因为那里是卖水果、蔬菜的聚集地。农商们把水果、蔬菜从远处运到那里&#xff0c;进行销售。但是这种销售方式的不足在于每次运输的数量是有限的&#xff0c;并且运输过程中也影响了水果、蔬菜的口感…

使用 TVMC 编译和优化模型

内容一览&#xff1a;本节讲解使用 TVMC 编译和优化模型。TVMC 是 TVM 的命令驱动程序&#xff0c;通过命令行执行 TVM 功能。本节是了解 TVM 工作原理的基础。 关键词&#xff1a;TVMC TVM 机器学习 本节将介绍 TVMC&#xff08;TVM 的命令行驱动程序&#xff09;。TVM…

单片机扫盲

一、从电路到集成电路 集成电路&#xff1a;使用微器件为“积木”&#xff0c;去搭建一个具备一定功能的电路板 微器件出现之前&#xff0c;一个电路功能需要很大一块电路板才能实现&#xff0c;有了微器件电路板的体积可以降到mm级别。 IC芯片就是将电路的所有微器件集成到一…

大数据时代,数据仓库究竟是干嘛的?

前言 无论你是否专门从事大数据开发&#xff0c;作为一个开发人员&#xff0c;应该都听说过数据仓库的概念&#xff0c;那你知道为什么会出现数据仓库&#xff1f;数据仓库究竟是干嘛的吗&#xff1f;有什么价值和意义呢&#xff1f;那么本文就带到入门&#xff0c;揭开数据仓…