ChatGPT也能画图?教你一键生成时序图、类图、流程图、状态图以及用例图

您所在的位置:网站首页 画uml工具 ChatGPT也能画图?教你一键生成时序图、类图、流程图、状态图以及用例图

ChatGPT也能画图?教你一键生成时序图、类图、流程图、状态图以及用例图

2023-08-10 14:10| 来源: 网络整理| 查看: 265

作为一个文本模型,ChatGPT是无法直接输出图像的,除非借助其他的第三方插件或库。

但是,得益于前期接受了海量不同格式文本的预训练,ChatGPT可以轻松生成各种类型的结构化输出,例如表格,代码,数学公式等等。

这其中还包括一类「基于文本的图形描述语言」,它允许我们通过编写文本指令或代码来构建包含特定元素、关系以及布局的图形,而无需依赖图形编辑工具。

那么,我们是否可以改由让ChatGPT生成对应的文本指令或代码,然后再通过特定的解析器与渲染引擎,转换为可视化的图形或图表呢?

这不禁让我想起了一个很有意思的工具:PlantUML。

PlantUML是什么?

PlantUML提供了一种用文本描述来绘制UML图的方式,可以绘制类图、时序图、用例图等等。

用PlantUML来创建图表有很多好处,包括:

使用人类可读的文本描述,上手容易 免费开源 智能布局,无需手动调整 快速创建和更新 高度可定制的外观

接下来,我们将在《使用ChatGPT提高研发生产力的10个正确姿势》一文中的「代码解释器」基础上,进一步展示如何使用ChatGPT为指定代码生成合适的UML图。

(所用到的Prompt和工具地址在文末,可自取)

时序图

时序图是一种用于描述对象之间交互行为的UML图,它展示了对象之间的消息传递顺序。

我们先给ChatGPT一份Java伪代码,这份代码描述了一个简单电商系统中的订单流程:

用户(User)下单; 订单(Order)交给订单处理器处理; 订单处理器(OrderProcessor)执行订单处理逻辑,并在完成后发送处理结果通知。 通知服务(NotificationService)发送通知给用户。 public class User { private String name; private String email; // ... public void placeOrder(Order order) { // 下单逻辑 // ... } } public class Order { private User user; private String orderId; // ... public void process() { OrderProcessor orderProcessor = new OrderProcessor(); orderProcessor.processOrder(this); } } public class OrderProcessor { public void processOrder(Order order) { // 执行订单处理逻辑 // ... // 发送处理结果通知 NotificationService.sendNotification(order.getUser(), "订单处理完成"); } } public class NotificationService { public static void sendNotification(User user, String message) { // 发送通知给用户 // ... } }

然后,我们让ChatGPT根据这份伪代码用PlantUML语言构建一张时序图:

@startuml actor User participant Order participant OrderProcessor participant NotificationService User -> Order: placeOrder(order) activate Order Order -> OrderProcessor: process() activate OrderProcessor OrderProcessor -> NotificationService: processOrder() activate NotificationService NotificationService --> User: sendNotification() deactivate NotificationService deactivate OrderProcessor deactivate Order @enduml

最后,我们把ChatGPT生成的PlantUML代码复制粘贴到官网的运行块中预览:

类图

类图是一种用于描述系统中的类以及类之间的关系的UML图,比如继承、关联、依赖等。

我们先给ChatGPT一份Java伪代码,这份代码描述了一个简单的人员系统:

Person类是基类,具有name和age属性,以及eat方法; Teacher类继承自Person类,并添加了id属性和teach方法; Student类也继承自Person类,并添加了id属性和study方法; class Person { String name; int age; void eat() { // 吃饭的逻辑 } } class Student extends Person { String studentId; void study() { // 学习的逻辑 } } class Teacher extends Person { String teacherId; void teach() { // 教学的逻辑 } }

然后,我们让ChatGPT根据这份伪代码用PlantUML语言构建一张类图:

@startuml class Person { - name: String - age: int + eat(): void } class Student { - studentId: String + study(): void } class Teacher { - teacherId: String + teach(): void } Person (借出图书) Admin --> (归还图书) Reader --> (搜索图书) Reader --> (借阅图书) Reader --> (归还图书) Reader --> (注册借书证) } @enduml

最后,我们把ChatGPT生成的PlantUML代码复制粘贴到官网的运行块中预览:

总结 PlantUML是一个使用文本描述构建UML图的工具; ChatGPT无法直接生成图像,但可以生成对应的文本描述或代码,然后借助PlantUML等工具转换为可视化的UML图。 实现过程: 1)给ChatGPT提供要生成UML图的Java代码; 2)向ChatGPT描述需要生成的UML图类型; 3)让ChatGPT根据代码生成PlantUML代码; 4)将PlantUML代码复制到官网预览并输出图片。

所用到Prompt:

我将为你提供一个代码片段(由```分隔),请先充分理解该代码片段的含义。接下来,请用PlantUML语言为我绘制一个{流程图},要求该{流程图}能有助于解释该代码片段的结构和关系:

```

代码

```

PlantUMl官网:www.plantuml.com

PlantUML在线预览:www.plantuml.com/plantuml/um…



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3