首页 > 其他分享 >AI驱动的PlantUML:快速生成专业级UML图表

AI驱动的PlantUML:快速生成专业级UML图表

时间:2024-08-27 16:53:31浏览次数:15  
标签:PlantUML AI 痛点 专业级 Nacos 图表 UML

**对于程序员来说,编写验收文档中的各种UML图是最让人头疼的事情之一,相信各位读者对此深有体会。**

本文将探讨如何利用AI驱动的PlantUML来快速生成专业级别的UML图表,从而减轻这一负担。

PlantUML简介

PlantUML 是一种开源的、易于使用的工具,它允许用户通过简单的文本描述来生成各种类型的统一建模语言(Unified Modeling Language, UML)图表。PlantUML 支持多种 UML 图表类型,包括但不限于类图、序列图(时序图)、组件图、部署图等。

特点:
PlantUML 的强大之处在于其简单易学且功能丰富,非常适合软件开发者和技术文档编写者用于快速创建清晰、专业的 UML 图表。

  • 简洁性:用户可以使用简洁明了的文本语法来定义图表的内容。
  • 可集成性:PlantUML 可以轻松地与多种文本编辑器和开发环境集成。
  • 多样化输出:支持生成多种格式的图表输出,如 PNG 图片、SVG 矢量图以及 PDF 文档等。
  • 扩展性:可以通过自定义样式和主题来增强图表的表现力。
  • 实时预览:许多集成环境提供了实时预览功能,便于用户即时查看图表的变化。

PlantUML应用场景及解决的痛点需求

PlantUML 在多种应用场景中都非常有用,它主要解决了以下几个方面的痛点需求:

  1. 软件工程和系统设计

    • 痛点需求:在软件开发过程中,团队成员需要理解和沟通复杂的系统架构、模块间交互、数据流等。
    • 应用场景:使用 PlantUML 创建类图、组件图、部署图、序列图等,帮助团队成员更好地理解系统的结构和行为。
  2. 文档编写和知识分享

    • 痛点需求:技术文档和知识分享材料需要包含清晰易懂的图表,但传统的图形工具使用起来较为繁琐。
    • 应用场景:利用 PlantUML 生成高质量的图表,嵌入到技术文档、教程、博客文章中,使读者更容易理解内容。
  3. 项目管理和协作

    • 痛点需求:项目管理中需要明确各个阶段的任务分配和流程安排,但这些信息通常难以直观表达。
    • 应用场景:使用 PlantUML 制作甘特图、流程图等,清晰展示项目进度和任务关系,促进团队间的协作。
  4. 教育和培训

    • 痛点需求:教育和培训材料需要包含直观的视觉辅助,帮助学生更好地学习和记忆。
    • 应用场景:教师和培训师可以利用 PlantUML 创作概念图、流程图、用例图等,帮助学生理解复杂概念。
  5. 需求分析和产品规划

    • 痛点需求:在需求分析阶段,需要明确产品的功能和用户交互方式,但这些往往很难用文字描述清楚。
    • 应用场景:使用 PlantUML 绘制用例图、活动图等,帮助团队成员和利益相关者理解产品的需求和工作流程。
  6. 敏捷开发和迭代

    • 痛点需求:敏捷开发过程中,需求和设计经常发生变化,需要快速更新图表以反映最新的设计决策。
    • 应用场景:由于 PlantUML 文件是纯文本格式,因此可以很容易地进行版本控制并快速更新图表以适应变化。
  7. 技术面试和技术交流

    • 痛点需求:在技术面试和技术讨论中,需要清晰地表达系统架构和技术解决方案。
    • 应用场景:准备面试或会议时,使用 PlantUML 快速绘制所需的图表,以便更有效地进行交流。

总之,PlantUML 通过提供一种简便的方式来创建和更新图表,极大地提高了工作效率,减少了沟通成本,并促进了更好的团队合作。

PlantUML插件安装

大多数程序员使用的开发工具包括 Visual Studio Code (VSCode) 和 IntelliJ IDEA (IDEA)。本文将以 IntelliJ IDEA 为例进行讲解,但需要注意的是,其他开发工具如 VSCode 通常也提供了类似的插件支持。
image.png

PlantUML使用

image.png
以开源项目ruoyi-cloud:ruoyi-gateway模块生成时序图为例,文件内容如下:

@startuml
!theme vibrant
actor User
participant "Bootstrap" as Bootstrap
participant "Nacos" as Nacos
participant "Configuration Files" as ConfigFiles
participant "Sentinel" as Sentinel

User -> Bootstrap: 加载 bootstrap.yml
Bootstrap -> Nacos: 获取服务地址
Bootstrap -> ConfigFiles: 加载配置文件
ConfigFiles -> Nacos: 获取 application-dev.yml
ConfigFiles -> Nacos: 获取 ruoyi-gateway-dev.yml
ConfigFiles -> Nacos: 获取 sentinel-ruoyi-gateway.yml
Bootstrap -> Bootstrap: 初始化项目设置

Bootstrap -> Sentinel: 关联 Sentinel
Sentinel -> Sentinel: 定义限流规则

User -> Sentinel: 访问其他模块
Sentinel -> User: 应用流量控制
@enduml

编写代码生成图表,完美契合程序员的风格——代码在手,走遍天下。

缺点:

  • 学习曲线: 尽管 PlantUML 的语法相对简单,但对于初学者来说仍然需要一定的学习成本来掌握所有可用的命令和语法结构。灵活但也很鸡肋! 继续找解决办法,能结合AI工具提升效率,答案是有的。

AI工具Fitten Code安装

image.png

Fitten Code驱动PlantUML生成时序图

开源项目ruoyi-cloud:ruoyi-gateway模块

1.Fitten Code中输入以下需求:

使用plantuml生成时序图,内容如下:
1.首先,该模块加载了 bootstrap.yml 文件,其中配置了 Nacos 服务的地址,以此实现当前项目与 Nacos 服务的关联。
2.在 bootstrap.yml 文件中,进一步加载了 Nacos 中的以下配置文件:application-dev.yml, ruoyi-gateway-dev.yml, 和 sentinel-ruoyi-gateway.yml。这些配置文件共同作用于项目的初始化设置。 
3. 此模块通过与 Sentinel 关联,实现了对其他各个模块的流量控制。具体的限流规则定义在 sentinel-ruoyi-gateway 配置中。

image.png

image.png

2.新建一个PlantUML文件,并黏贴如上内容,见证奇迹如我等所愿!

image.png

3.定制主题,生成更漂亮的UML图,挑选适合自己风格的即可

!theme silver

image.png

!theme mimeograph

image.png

!theme materia-outline

image.png

!theme amiga

image.png

AI工具阿里通义的效果

image.png

总结

AI驱动的PlantUML能够带来多种好处,主要包括:

  1. 提高效率:自动化生成图表可以显著减少手动绘制UML图所需的时间。
  2. 减少错误:通过智能分析和自动布局,可以减少人工绘制时可能出现的错误。
  3. 提升质量:AI可以根据最佳实践生成标准化的图表,保证图表的专业性和一致性。
  4. 易于维护:随着项目的变化,AI可以帮助快速更新图表,保持文档与代码的一致性。
  5. 促进理解:清晰准确的图表有助于团队成员更快地理解系统架构和设计。
  6. 增强协作:通过即时更新图表,可以促进团队之间的沟通和协作。

这些优点共同作用,可以极大地提升软件开发过程中的文档质量和团队效率。
对于其他类型的UML图,还在研究阶段,但类似的AI辅助方法也可以应用于类图、用例图、组件图等,以实现相似的好处。再分享更多类型图表的生成案例。

标签:PlantUML,AI,痛点,专业级,Nacos,图表,UML
From: https://www.cnblogs.com/budaos/p/18383056

相关文章

  • 工业AI—“Maker‘S”真实作用浅析(上)
    各个行业的企业虽然在规模,生产工艺上有很大的区别,但是底层逻辑是一致的——就是提供满足顾客质量要求的产品或服务,Maker‘SAI是依据这个底层逻辑对相应的产品标准、体系标准、关于环保、安全生产、职业卫生、合规性等生产相关的法律法规进行数字化分析,可以根据企业具体的类型......
  • GaLore Memory-Efficient LLM Training by Gradient Low-Rank Projection
    目录概符号说明GaLoreZhaoJ.,ZhangZ.,ChenB.,WangZ.,AnandkumarA.andTianY.GaLore:Memory-efficientllmtrainingbygradientlow-rankprojection.ICML,2024.概本文提出了一种优化器中高效的缓存策略.符号说明\(W_t\in\mathbb{R}^{m\timesn}\),参......
  • AI创新,DataOps聚能 | 白鲸开源DTCC共话DataOps新篇章
    近日,由IT168联合旗下ITPUB、ChinaUnix两大技术社区主办的第15届中国数据库技术大会(DTCC2024)隆重召开。大会以“自研创新数智未来”为主题,吸引了数百位行业专家和广大数据领域从业者共聚这场年度数据库技术交流盛宴,共同探讨新时代下数据库的技术动态和应用实践。作为全球领先......
  • docker和containerd的区别
    目录容器运行时Docker:原先的翘楚Containerd:K8s生态系统的标配容器运行时接口(CRI)Kubernetes与dockershim当前支持的CRI后端Dockershim调用关系对比常用命令容器运行时容器运行时(ContainerRuntime)是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的......
  • [图文直播]基于Mermaid代码借助draw.io绘制依赖关系图
    安装draw.io开源仓库地址:GitHub-jgraph/drawio-desktop:Officialelectronbuildofdraw.io安装包地址Releases·jgraph/drawio-desktop·GitHub安装、具体实现......
  • Datawhale X 李宏毅苹果书 AI夏令营 深度学习方向 task 1 笔记
    一、机器学习机器学习(MachineLearning,ML):机器具备找函数的能力。当我们对机器输入一个任务时(如:语音识别和图像识别),机器要做的就是找出这些任务蕴含的函数,通过找到函数,机器就可以通过输入的内容给出对应的输出内容。而找函数人类是很难做到的,所以这时候就需要机器学习。机器学......
  • LLM的轻量化推理:AirLLM
    AirLLM是一种针对LLM的轻量级推理框架,通常用于优化和加速大模型的推理过程,可以允许70B的LLM在单个4GB的GPU上运行,无需量化、蒸馏、剪枝。AirLLM是通过分层推理实现的上述功能,本质上是将LLM的每一层拆分出来,分别加载权重进行推理,在推理较大的LLM时会很慢。环境配置使用pip安装a......
  • Start OpenAI gym on arbitrary initial state
    题意:“在任意初始状态下启动OpenAIGym”问题背景:AnybodyknowsanyOpenAIGymenvironmentswherewecansettheinitialstateofthegame?Forexample,IfoundtheMountainCarContinuous-v0candosuchthingsothatwecanselectatwhichpointthecarst......
  • 如何使用TensorFlow构建AI模型
    TensorFlow已成为构建机器学习模型最受欢迎的框架之一。无论你是初学者还是经验丰富的数据科学家,了解如何使用TensorFlow构建AI模型对充分利用机器学习的潜力至关重要。本指南将引导你逐步创建TensorFlowAI模型,从基础知识到更高级的概念,确保你拥有坚实的基础。了解Te......