IntelliJ IDEA实用插件:轻松生成时序图和类图

IntelliJ IDEA生成时序图、类图
- 一、SequenceDiagram
- 1.1 插件安装
- 1.2 插件设置
- 1.3 生成时序图
- 二、PlantUML Integration
- 2.1 插件安装
- 2.2 插件设置
- 2.3 生成类图
在软件建模课程的学习中,大家学习过多种图形表示方法,这些图形主要用于软件产品设计。在传统的开发流程中,通常是先绘制设计图,然后根据设计图开发软件项目。然而,在实际的公司或团队项目开发过程中,这种流程往往被颠倒过来,很多情况下是先进行项目开发,然后再绘制图表和编写文档。
其次,在源码学习、快速了解业务流程与业余代码逻辑时,时序图与类图都是一种简单快捷的方式。
针对以上现状,我们可以利用一些工具来高效地完成这些图形的绘制。本文将以时序图和类图为例,介绍如何在 IntelliJ IDEA 中使用插件来生成这两种图表。通过这些插件,我们可以在开发过程中快速生成相应的图表,提高开发效率和文档质量。
一、SequenceDiagram
1.1 插件安装
IntelliJ IDEA 安装时序图生成插件 SequenceDiagram,安装步骤:
- IDEA界面 Ctrl+Alt+S(调出设置页面)
- Plugins 在 Marketplace中搜索 SequenceDiagram,搜索结果如下所示(我的已经安装了,点击Install即可):

- 插件最新版本开始收费了,可私信我提供解决方法
- 安装完成后,会出现在侧边栏,如下图

1.2 插件设置
- 点击 SequenceDiagram 进行相关设置

- 可以设置生成时序图的相关信息

Call depth:时序图调用层数。若生成的时序图比较大时,若无更高的精准度要求,可适当减少调用层数进行时序图大小的调整。
Display only project classes:表示是否只显示当前项目的类文件,不勾选的话可以显示依赖JAR包的类
Skip private methods:表示跳过私有方法
Skip getters/setters:表示跳过get、set方法
Skip constructors:表示跳过构造方法
:::
1.3 生成时序图
在任何需要生成时序图的方法上,右键单击选择 “Sequence Diagram”,即可生成对应的时序图,生成的时序图也可以以各种格式导出:


同时,每个时序图节点,右键单击,有两个选项“Go to Source” 和 “ Remove Method ‘xxxxxx()’”,分别为跳转到源代码对应的位置 和 从时序图中删除对应的方法,去除冗余信息,简化时序图,方便修改时序图显示。
二、PlantUML Integration
2.1 插件安装
IntelliJ IDEA 安装类图生成插件 PlantUML Integration,安装步骤:
- IDEA界面 Ctrl+Alt+S(调出设置页面)
- Plugins 在 Marketplace中搜索 PlantUMLIntegration,搜索结果如下所示(我的已经安装了,点击Install即可):

- 安装完成后,会出现在侧边栏,如下图

2.2 插件设置
File > Settings > Tools> Diagrams

2.3 生成类图
放到对应的包上或者放到具体的类上,按住 Ctrl+Alt +U 就生成了,或者如下图操作,即可生成类图

效果如下:

相关文章:
IntelliJ IDEA实用插件:轻松生成时序图和类图
IntelliJ IDEA生成时序图、类图 一、SequenceDiagram1.1 插件安装1.2 插件设置1.3 生成时序图 二、PlantUML Integration2.1 插件安装2.2 插件设置2.3 生成类图 在软件建模课程的学习中,大家学习过多种图形表示方法,这些图形主要用于软件产品设计。在传统…...
SpringBoot + Mybatis-Plus中乐观锁实现
悲观锁 悲观锁是一种悲观思想,它认为数据很可能会被别人所修改 所以总会对数据进行上锁,读操作和写操作都会上锁,性能较低,使用较少! 乐观锁 乐观锁是一种乐观思想,它认为数据并不一定会被别人所修改 所以…...
设计模式深度解析:分布式与中心化,IT界两大巨头“华山论剑”
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨IT界的两大巨头交锋✨ 👋 在IT界的广阔天地中,有两座…...
转行一年了
关注、星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 来公司一年了。 说是转行其实还是在半导体行业,熟悉我的朋友知道 ,我在18年开始进入半导体行业,那个时候想着行业很重要,站对了…...
【LeetCode 151】反转字符串中的单词
1. 题目 2. 分析 这题要是用Python写,就非常简单了。 3. 代码 class Solution:def reverseWords(self, s: str) -> str:s " ".join(reversed(s.strip().split()))return s...
Behind the Code:Polkadot 如何重塑 Web3 未来
2024 年 5 月 17 日 Polkadot 生态 Behind the Code 第二季第一集 《创造 Web3 的未来》正式上线。第一集深入探讨了 Polkadot 和 Web3 技术在解决数字身份、数据所有权和去中心化治理方面的巨大潜力。 🔍 查看完整视频: https://youtu.be/_gP-M5nUidc?…...
for循环里如果std::pair的类型写不对,可能会造成性能损失
第一版 std::map<int, int> t;t.emplace(1, 1);for (const std::pair<int,int>& data : t){int i 0;std::ignore i;}中间留一些空格,是因为ms在调试的时候,尤其是模板比较多的时候,经常断点的行号有问题。比如第5行的断点&…...
【Linux】Linux的基本指令_2
文章目录 二、基本指令8. man9. nano 和 cat10. cp11. mv12. echo 和 > 和 >> 和 <13. more 和 less14. head 和 tail 和 | 未完待续 二、基本指令 8. man Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问…...
Effective C++(3)
3.资源管理 条款13:以对象管理资源 以对象管理资源对于传统的堆资源管理,我们需要使用成对的new和delete,这样若忘记delete就会造成内存泄露。因此,我们应尽可能以对象管理资源,并采用RAII(Resource Acqu…...
自定义RedisTemplate序列化器
大纲 RedisSerializerFastJsonRedisSerializer自定义二进制序列化器总结代码 在《RedisTemplate保存二进制数据的方法》一文中,我们将Java对象通过《使用java.io库序列化Java对象》中介绍的方法转换为二进制数组,然后保存到Redis中。实际可以通过定制Red…...
Flutter 中的 CupertinoContextMenuAction 小部件:全面指南
Flutter 中的 CupertinoContextMenuAction 小部件:全面指南 在 Flutter 中,CupertinoContextMenuAction 是一个专门用于构建 iOS 风格的上下文菜单选项的组件。它为用户提供了一种便捷的方式来执行与特定项目相关的操作,例如在列表项上长按可…...
Element-Ul快速入门
引言 Element UI是一个vue.js的桌面UI库。它提供了一套丰富、灵活和实用的UI组件,使开发者能以最少的时间和代码量完成复杂的界面设计。本文将会介明如何快速上手Element UI。 安装和基本使用 首先,你需要在你的项目中安装Element UI。如果你已经安装…...
Django的模型层——2模型实例
1. 类的属性 objects:是Manager类型的对象,用于与数据库进行交互 当定义模型类时没有指定管理器,则Django会为模型类提供一个名为objects的管理器 支持明确指定模型类的管理器 class BookInfo(models.Model):...books models.Manager()当为…...
Python筑基之旅-MySQL数据库(四)
目录 一、数据表操作 1、新增记录 1-1、用mysql-connector-python库 1-2、用PyMySQL库 1-3、用PeeWee库 1-4、用SQLAlchemy库 2、删除记录 2-1、用mysql-connector-python库 2-2、用PyMySQL库 2-3、用PeeWee库 2-4、用SQLAlchemy库 3、修改记录 3-1、用mysql-conn…...
OceanBase SQL 诊断和调优实践——【DBA从入门到实践】第七期
数据库作为绝大多数应用系统储存数据的核心系统,在用户系统需要访问数据时,有着至关重要的作用。在这些交互中,SQL 语言是应用与数据库系统之间“沟通”的桥梁,它负责将应用的指令传达给数据库。因此,SQL 的性能好坏直…...
C++之std::is_trivially_copyable(平凡可复制类型检测)
目录 1.C基础回顾 1.1.平凡类型 1.2.平凡可复制类型 1.3.标准布局类型 2.std::is_trivially_copyable 2.1.定义 2.2.使用 2.3.总结 1.C基础回顾 在C11中,平凡类型(Trivial Type)、平凡可复制类型(TrivialCopyable&#x…...
宝石收集,tarjan
0宝石收集 - 蓝桥云课 (lanqiao.cn) nint(input()) s0input() mint(input()) mp[[] for i in range(n1)] for i in range(m):a,bmap(int,input().split())a1b1mp[a].append(b)import sys sys.setrecursionlimit(100000000) dfn[0 for i in range(n1)] low[0 for i in range(n1…...
python 面对对象 类 继承
继承 继承就是为了解决两个有大量重复性代码的类,抽象出一个更抽象的类放公共代码,主要是代码复用,方便代码的管理与修改 类的继承包括属性和方法,私有属性也可继承 class Person(): # 默认是继承object超类pass…...
Rust腐蚀怎么用服务器一键开服联机教程
1、进入控制面板 首次登陆需要点击下方重置密码,如何再点击登录面板,点击后会跳转到登录页面,输入用户名和密码登录即可 2、设置游戏端口 由于腐蚀的设置需要三个端口,它们用于游戏端口(必须为首选端口)&a…...
公共代理IP和独享代理IP之间的区别?
公共代理IP和独享代理IP在网络应用中扮演着不同的角色,它们之间的区别主要体现在使用方式、性能、安全性以及隐私保护等方面。以下是对这两种代理IP的详细对比和分析。 第一点就是使用的方式以及成本上的不同,公共代理IP,顾名思义࿰…...
介绍一下多 Agent 如何实现工作?多个 Agent 之间如何协调和分工?
1. 题目分析 一个 Agent 能做的事情终归有限。当你试图让单个 Agent 去完成一个真正复杂的任务——比如从零开始做一次完整的市场调研并输出 PPT 报告——你会发现它要么因为上下文窗口塞满而"失忆",要么因为角色定位太泛而每一步都做得半吊子。这就像让…...
告别ns3-gym!用ns3-ai在Ubuntu 22.04上实现百倍速AI网络仿真(附完整避坑指南)
告别ns3-gym!用ns3-ai在Ubuntu 22.04上实现百倍速AI网络仿真(附完整避坑指南) 如果你正在使用ns3-gym进行AI网络仿真研究,很可能已经遇到了通信效率低下的瓶颈。传统基于Socket的进程间通信(IPC)方式在大量…...
自动导引车(AGV)与自主移动机器人(AMR)控制系统的 C# 开源封装库瞧
为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode,现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力,让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中,我们遇到了一个很现实的问…...
别再为CUDA版本头疼了!手把手教你用PyTorch 1.8.1 + CUDA 10.1搞定YOLOv5环境(附避坑指南)
深度学习环境配置终极指南:PyTorch与CUDA版本精准匹配实战 环境配置的常见痛点与解决方案 刚接触深度学习的开发者们,十有八九会在环境配置阶段遇到各种"玄学问题"。明明按照教程一步步操作,却总是卡在PyTorch与CUDA版本不兼容的…...
Adobe-GenP 3.0逆向工程工具深度解析:技术架构与二进制修补实现方案
Adobe-GenP 3.0逆向工程工具深度解析:技术架构与二进制修补实现方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP 3.0是一款基于AutoIt脚本…...
PLIC中断控制器深度解析:手把手实现RISCV多核中断调度(含设备树配置)
PLIC中断控制器深度解析:手把手实现RISCV多核中断调度(含设备树配置) 在物联网设备开发中,高效的中断处理机制往往是系统稳定性的关键。想象一下,当你设计的智能网关需要同时处理数十个传感器的数据流时,如…...
Profinet转MODBUS TCP在精细化工塔讯工业自动化中的应用方案
一、案例背景化工行业属于流程型工业,对生产过程中的压力、流量、液位等参数监控要求极高,安全生产是行业核心底线。某精细化工园区新建数字化生产车间,现场过程监测设备采用Profinet协议智能仪表,包括西门子SITRANS P系列压力仪表…...
CLIP-GmP-ViT-L-14模型API压力测试:使用JMeter进行性能评估
CLIP-GmP-ViT-L-14模型API压力测试:使用JMeter进行性能评估 最近在项目里用上了CLIP-GmP-ViT-L-14模型,它处理图文匹配的能力确实不错。但模型部署上线后,我心里一直有个疑问:这API到底能扛住多少并发请求?响应时间稳…...
Nordic主题高级配置:性能优化与多平台兼容性解决方案
Nordic主题高级配置:性能优化与多平台兼容性解决方案 【免费下载链接】Nordic :snowflake: Dark Gtk3.20 theme created using the awesome Nord color pallete. 项目地址: https://gitcode.com/gh_mirrors/no/Nordic Nordic是一款基于Nord北极蓝色彩方案的专…...
go-systemd 高级特性解析:logind 和 machined API 集成
go-systemd 高级特性解析:logind 和 machined API 集成 【免费下载链接】go-systemd Go bindings to systemd socket activation, journal, D-Bus, and unit files 项目地址: https://gitcode.com/gh_mirrors/go/go-systemd go-systemd 是一个强大的 Go 语言…...
