使用AI生成产品流程图

发布于 2023-11-20  674 次阅读


使用的工具: ChatGPT或者 “通义千问”

实现思路:利用PlantUML代码完成UML建模

提问:请生成一个大学生信息管理注册功能的流程图,请尽可能的详细,使用PlantUML代码。

@startuml 参与者 大学生 -> 学生管理系统: 注册新用户 学生管理系统 -> 数据库: 检查用户名是否已存在 数据库 -> 学生管理系统: 用户名不存在 学生管理系统 <- 参与者 大学生: 输入用户名和密码 学生管理系统 -> 数据库: 插入新的用户数据 数据库 -> 学生管理系统: 用户数据插入成功 学生管理系统 -> 参与者 大学生: 注册成功 @enduml

这个流程图描述了一个大学生在学生管理系统中注册新用户的流程。首先,大学生向学生管理系统发送注册请求。然后,学生管理系统检查数据库中是否存在该用户名。如果用户名不存在,系统会提示大学生输入用户名和密码。接着,学生管理系统将这些信息存储到数据库中,并返回注册成功的消息给大学生。

注意:这只是一个简单的示例,实际的学生信息系统可能需要处理更多的细节,例如密码加密、错误处理等。

--------------------------------------------------------------------------------------------------------------------

1、访问网址:https://www.draw.io/

2、创建新的绘图

3、选择创建流程图、点击创建按钮、并将文件保存在桌面。


4、复制GPT生成的代码结果,但是报错。

以上报错信息的意思是,GPT生成的PlantML代码版本不对。因此再次回到GPT提问,问题如下:

提问: 请生成一个大学生信息管理注册功能的流程图,请尽可能的详细,使用PlantUML代码,使用PlantUML 1.2023.10版本。

@startuml
title 大学生信息管理注册功能流程图

参与者 大学生 -> 学生管理系统: 提交注册请求
学生管理系统 -> 数据库: 检查用户名是否已存在
数据库 -> 学生管理系统: 用户名不存在
学生管理系统 -> 参与者 大学生: 请求输入密码
参与者 大学生 -> 学生管理系统: 提交密码
学生管理系统 -> 数据库: 插入新的用户数据
数据库 -> 学生管理系统: 用户数据插入成功
学生管理系统 -> 参与者 大学生: 注册成功
@enduml

5、返回draw.io, 复制并修改以上得到的新代码,生成的结果还是报错,然后我回到ChatGPT问同样的问题,发现得到的代码结果和同义千问不一样,但是得到的是类图?结果如下:

@startuml
!define RECTANGLE class
!define ROUNDRECT rectangle

package "大象放进冰箱流程" {

RECTANGLE 大象 {
+ 大小
+ 重量
+ 象鼻
}

RECTANGLE 冰箱 {
+ 门
+ 内部空间
+ 冷藏功能
}

RECTANGLE 用户 {
+ 打开冰箱门()
+ 放入大象()
+ 关闭冰箱门()
}

大象 -[hidden]-> 冰箱 : 大象准备就绪
用户 -> 冰箱 : 打开冰箱门
用户 -> 大象 : 放入大象
用户 -> 冰箱 : 关闭冰箱门

note right of 大象 : 大象准备就绪\n(例如:鼻子收起)

@enduml
}

5、换种解决思路,更换建模语言为Mermaid

提问:请生成一个“淘宝”的注册活动图,请尽可能的详细,使用Mermaid建模

ChatGPT的结果如下,通义千问沙雕了:

graph TD

subgraph 用户
A[填写注册信息]
B[提交注册请求]
end

subgraph 注册系统
C[接收注册请求]
D[验证信息合法性]
E[生成 API 密钥]
F[分配访问权限]
G[发送欢迎邮件]
end

subgraph ChatGPT
H[API 密钥验证]
I[访问权限验证]
J[提供文本生成服务]
end

subgraph 数据库
K[存储用户信息]
end

A -->|1. 填写| B
B -->|2. 提交请求| C
C -->|3. 验证信息| D
D -->|4. 信息合法| E
D -->|5. 信息不合法| B
E -->|6. 生成密钥| F
F -->|7. 分配权限| G
F -->|8. 存储信息| K
G -->|9. 发送欢迎邮件| B

B -->|10. 请求文本生成| H
H -->|11. 验证密钥| I
I -->|12. 验证权限| J

PlantUML代码是一种基于文本的语言,用于描述统一建模语言(UML)图。使用PlantUML代码,您可以编写定义不同过程和活动以及它们之间关系的文本,然后将这些文本转换为各种UML图,例如类图、活动图、状态图等。

UML是一种用于描述和可视化软件系统的图表和技术。它是统一建模语言的缩写,是由OMG(Object Management Group)开发的一种标准建模语言。 UML允许软件工程师使用图表和符号来表示软件系统中的各种元素,例如类、接口、包、组件、活动、状态机等。这些图表可以帮助软件工程师更好地理解软件系统的结构和行为,从而提高软件的质量和可维护性。 UML可以用于多种目的,包括设计、实现、测试和文档化软件系统。它是一种通用的建模语言,可以在多个领域中使用,包括企业应用、嵌入式系统、移动应用、互联网应用等。