10倍提效!用ChatGPT编写系统功能文档。。。
系统功能文档是一种描述软件系统功能和操作方式的文档。它让开发团队、测试人员、项目管理者、客户和最终用户对系统行为有清晰、全面的了解。
通过ChatGPT,我们能让编写系统功能文档的效率提升10倍以上。
《Leetcode算法刷题宝典》一位阿里P8大佬总结的刷题笔记。
《大厂Java面试题汇总及详解》进大厂必看。
《架构学习资料大礼包》早日成为百万年薪架构师。
《AI学习资料大礼包》学习AI抢占先机。
请到下面公号【架构师汤师爷】取↓↓↓
用ChatGPT生成系统功能文档
我们以线上商城系统为例,介绍如何使用ChatGPT帮我们完成系统功能文档编写。
向ChatGPT发送如下请求:
# 角色:系统功能文档撰写专家## 背景:
系统功能文档撰写## 注意事项:
编写高质量的系统功能文档,是确保项目成功的关键步骤。## 技能:
- 熟练运用各类文档组织格式。
- 善于从客户视角考虑需求。
- 能够捕捉用户需求,将其转化为明确的功能要求。
- 精通系统功能的业务与技术细节。
- 具备逻辑思维,能够编写合理的实现逻辑和功能细节描述。## 目标:
- 设计一个规范的系统功能文档框架,确保每个功能需求都得到明确描述。
- 在文档中包含功能名、需求描述、概述、功能细节描述。## 工作流程:
1. 首先,用话术引导用户输入系统需求描述,理解用户的期望和项目目标。
2. 设计一个明确的系统功能文档框架,包含功能名、需求描述、概述、功能细节描述。## 输出格式:
- 功能名:[功能名]
- 需求描述:[需求描述]
- 概述:[概述]
- 功能细节描述:[功能细节描述]## 初始化
简介自己, 引导用户输入对系统的需求描述,全程使用中文描述。
ChatGPT回答如下:
您好!作为系统功能文档撰写专家,我在这里帮助您把系统需求转化为清晰、详尽的文档,确保项目成功实施。我将运用我的专业技能,从客户的视角出发,精准捕捉需求,并将其转化为明确的功能要求,同时确保文档的高质量和易于理解。请您描述一下您希望实现的系统需求,包括您希望通过这个系统解决的问题、期望实现的功能等。这样我可以更好地理解您的项目目标,并为您设计一个规范的系统功能文档框架。
向ChatGPT发送如下请求:
我们要开发一个线上商城系统,需求如下:
- C端功能包括:品牌首页、基于LBS进店、加购、订单列表、结算、下单、支付、个人中心。
- B端功能包括:组织管理、渠道管理、客户管理、店铺装修、商品管理、B端管理、库存管理、订单管理、营销管理、配送管理、数据分析。
帮我生成一份详细的系统功能文档。
ChatGPT回答如下:
C端功能需求文档1. 功能名:品牌首页- 需求描述:为用户提供品牌介绍、主打商品展示、活动宣传等信息的入口页面。
- 概述:首页需要具有吸引用户并提供品牌信息的设计,包含搜索、分类浏览等功能,优化用户的访问体验。
- 功能细节描述:实现轮播图广告、热门商品推荐、品牌故事介绍等模块。支持用户搜索商品、查看各类商品分类。2. 功能名:基于LBS的进店- 需求描述:允许用户根据地理位置信息选择最近的店铺进行浏览和购买。
- 概述:通过LBS技术,推荐用户周围的店铺,提升用户体验和购买转化率。
- 功能细节描述:获取用户授权的位置信息,展示用户当前位置附近的店铺列表,支持店铺搜索和选择。3. 功能名:加购- 需求描述:用户可以将心仪的商品添加到购物车中。
- 概述:为用户提供便捷的商品浏览和加购体验,支持多商品加购和购物车管理。
- 功能细节描述:实现加购按钮、购物车商品数量编辑、购物车列表展示、商品选中结算等功能。4. 功能名:订单列表- 需求描述:允许用户查看其所有订单的状态和详情。
- 概述:提供一个用户友好的界面,展示用户的订单历史,包括正在进行、已完成、已取消等状态的订单。
- 功能细节描述:实现订单筛选功能,支持按照订单状态、下单时间等条件筛选。每个订单项需显示订单号、下单时间、商品详情、订单状态、支付金额等信息。5. 功能名:结算- 需求描述:用户在购物车选择商品后,进行订单确认和支付前的最后一步操作。
- 概述:为用户提供一个清晰的结算页面,展示所购商品详情、价格、预计配送时间等信息,并允许用户选择支付方式。
- 功能细节描述:包括商品列表、数量选择、价格汇总、优惠券使用、收货地址选择、支付方式选择等功能。6. 功能名:下单- 需求描述:用户完成商品选择和支付信息填写后,创建订单。
- 概述:确保用户能够轻松地完成订单创建,包括核对订单信息、选择配送选项、确认支付等步骤。
- 功能细节描述:生成订单摘要,包括商品详情、订单总额、支付信息、配送信息。支持不同的支付方式,包括但不限于信用卡、支付宝、微信支付等。7. 功能名:支付- 需求描述:为用户提供多种支付方式,完成订单支付。
- 概述:实现安全、便捷的支付流程,确保用户信息安全。
- 功能细节描述:集成第三方支付平台,支持支付状态查询和回调处理,确保支付成功后更新订单状态。8. 功能名:个人中心- 需求描述:允许用户管理个人信息、查看订单历史、管理收货地址等。
- 概述:提供一个个性化的用户界面,方便用户访问和管理个人相关信息。
- 功能细节描述:实现个人信息编辑、密码修改、订单历史查看、收货地址管理、支付方式管理等功能。B端功能需求文档1. 功能名:组织管理- 需求描述:允许商城管理员配置和管理组织结构,包括部门、员工角色等。
- 概述:提供一个界面让管理员能够方便地管理公司的组织架构。
- 功能细节描述:实现组织架构的创建、编辑、删除功能;员工的添加、角色分配、权限设置等功能。2. 功能名:渠道管理- 需求描述:管理销售渠道和合作伙伴信息。
- 概述:为商城提供渠道拓展和渠道维护的管理功能。
- 功能细节描述:实现渠道信息录入、编辑、渠道业绩追踪、合作伙伴管理等功能。3. 功能名:客户管理- 需求描述:允许企业用户管理其客户信息,包括客户资料的录入、编辑和查询。
- 概述:为B端用户提供一个完整的客户信息管理系统,增强客户关系管理能力。
- 功能细节描述:客户信息的录入、编辑、删除功能;支持按照客户名、联系方式等条件搜索客户;客户购买历史和偏好分析等。4. 功能名:店铺装修- 需求描述:允许B端用户自定义店铺的布局和样式。
- 概述:提供一套灵活的店铺装修工具,支持拖拽布局、模板选择等功能,无需编程知识。
- 功能细节描述:支持多种布局模板选择,自定义颜色方案、字体选择;轮播图、商品展示区、促销活动板块等可自定义编辑。5. 功能名:商品管理- 需求描述:允许B端用户添加、编辑和管理销售的商品。
- 概述:提供一个界面以支持商品信息的完整管理,包括商品详情、价格、库存、分类等。
- 功能细节描述:实现商品信息的添加、编辑、删除功能;支持商品分类管理;实现库存管理功能,包括库存数量的调整和库存预警;支持商品图片上传和编辑。6. 功能名:库存管理- 需求描述:为B端用户提供库存量的监控和管理功能。
- 概述:确保用户可以实时了解商品库存情况,及时补充库存,避免缺货。
- 功能细节描述:展示各商品的当前库存量;支持库存的手动调整;实现库存预警设置,当库存低于预设阈值时自动提醒用户。7. 功能名:订单管理- 需求描述:允许B端用户查看、处理和管理客户订单。
- 概述:为用户提供订单的详细列表,包括订单状态、支付情况、配送信息等。
- 功能细节描述:实现订单详情查看,包括商品信息、订单金额、客户信息等;支持订单状态管理,如确认订单、取消订单、退货处理等;集成配送管理功能,包括配送方式选择、配送状态跟踪。8. 功能名:营销管理- 需求描述:为B端用户提供营销活动的创建、管理和分析工具。
- 概述:支持多种营销活动类型,如折扣、优惠券、积分奖励等,以提升销售额和客户粘性。
- 功能细节描述:实现营销活动的创建和设置,包括活动类型、时间、适用商品等;提供营销效果分析,如参与度、销售提升等指标的跟踪评估。9. 功能名:配送管理- 需求描述:允许B端用户管理商品的配送方式和配送状态。
- 概述:提供一个界面以支持对订单的配送方式选择、配送进度跟踪和管理。
- 功能细节描述:支持配送方式的设置和选择,如快递、自提等;实现配送进度的实时跟踪和更新;支持与第三方物流平台的集成,自动化配送流程。10. 功能名:数据分析- 需求描述:为B端用户提供销售数据和客户行为分析。
- 概述:通过数据分析帮助用户了解业务表现,指导决策。
- 功能细节描述:实现销售数据的汇总和分析,包括销售额、订单量、热销商品等;客户行为分析,如购买习惯、偏好分析等;支持自定义报表功能,便于用户根据需要生成各种分析报告。
通过ChatGPT,我们能生成详细的系统功能文档。基于这个,我们可以进一步修改和调整,极大地提高了写文档的效率。
用ChatGPT生成用例图
用例图是统一建模语言(UML)的一部分,用于描述系统的功能以及与之交互的外部实体(如人、系统或设备)。
它是一种图形表示法,用于展示系统的行为,通过展示参与者(actors)与系统的用例(use cases)之间的关系来实现。
用例图主要用于找出功能需求,并帮助团队理解系统提供的功能。用例图的主要元素包括:
用例(Use Cases):表示系统的一项功能或者一组功能,通常用椭圆形来表示。用例是从用户的角度出发,描述了用户可以通过系统完成的一个任务或者目标。
参与者(Actors):表示与系统交互的外部实体,可以是人、系统或设备。参与者通过与用例的交互来完成某些目标。
关系(Relationships):用来描述参与者与用例之间的交互关系,以及用例之间的关系。主要有以下几种类型:
- 关联(Association):直接连接参与者和用例,表示参与者参与用例的交互。
- 包含(Include):表示一个用例的执行包含另一个用例的执行。
- 扩展(Extend):表示一个用例的执行可能扩展或增加另一个用例的行为。
- 泛化(Generalization):表示参与者或用例之间的继承关系。
用例图主要用于需求分析阶段,帮助项目团队和客户之间建立共同的理解,以确保软件完全满足用户需求。它为开发过程提供了一个清晰的功能视图,同时也是沟通、讨论和计划的基础。
ChatGPT与PlantUML结合后,可以生成各种UML图表。接下来,我们使用ChatGPT生PlantUML语言描述的用例图。
向ChatGPT发送如下请求:
上文中已确定线上商城系统功能,请使用PlantUML语言帮我绘制用例图。
ChatGPT回答如下:
@startuml
left to right direction
skinparam packageStyle rectangleactor C端用户 as cuser
actor B端用户 as buserrectangle C端功能 {(品牌首页) as (HomePage) (基于LBS进店) as (LBSStore)(加购) as (AddToCart)(订单列表) as (OrderList)(结算) as (Checkout)(下单) as (PlaceOrder)(支付) as (Payment)(个人中心) as (UserProfile)
}rectangle B端功能 {(组织管理) as (OrgManagement)(渠道管理) as (ChannelManagement)(客户管理) as (CustomerManagement)(店铺装修) as (StoreDecoration)(商品管理) as (ProductManagement)(B端管理) as (BManagement)(库存管理) as (InventoryManagement)(订单管理) as (OrderManagementB)(营销管理) as (MarketingManagement)(配送管理) as (DistributionManagement)(数据分析) as (DataAnalysis)
}cuser --> HomePage : 浏览
cuser --> LBSStore : 定位与推荐
cuser --> AddToCart : 添加商品
cuser --> OrderList : 查看订单
cuser --> Checkout : 进行结算
cuser --> PlaceOrder : 下单
cuser --> Payment : 支付
cuser --> UserProfile : 管理个人信息buser --> OrgManagement : 组织架构管理
buser --> ChannelManagement : 渠道策略管理
buser --> CustomerManagement : 客户信息管理
buser --> StoreDecoration : 装修店铺
buser --> ProductManagement : 管理商品
buser --> BManagement : 管理B端用户
buser --> InventoryManagement : 监控库存
buser --> OrderManagementB : 处理订单
buser --> MarketingManagement : 执行营销活动
buser --> DistributionManagement : 管理配送
buser --> DataAnalysis : 进行数据分析@enduml
用drawio绘制用例图
接下来,我们要使用drawio神器,绘制用例图。登录https://app.diagrams.net/,点击➕,选择高级→PlantUML。
将上文中的PlantUML代码,贴入文本框,点击插入。
线上商城系统的用例图就自动绘制好啦,是不是效率提升非常多~
《Leetcode算法刷题宝典》一位阿里P8大佬总结的刷题笔记。
《大厂Java面试题汇总及详解》进大厂必看。
《架构学习资料大礼包》早日成为百万年薪架构师。
《AI学习资料大礼包》学习AI抢占先机。
请到下面公号【架构师汤师爷】取↓↓↓
相关文章:

10倍提效!用ChatGPT编写系统功能文档。。。
系统功能文档是一种描述软件系统功能和操作方式的文档。它让开发团队、测试人员、项目管理者、客户和最终用户对系统行为有清晰、全面的了解。 通过ChatGPT,我们能让编写系统功能文档的效率提升10倍以上。 《Leetcode算法刷题宝典》一位阿里P8大佬总结的刷题笔记…...

【Linux进阶之路】地址篇
文章目录 一、ipv4地址1. 基本概念2. 分类3.CIDR4.特殊的ip地址 二、IP协议1. 协议字段2.分片与重组3.路由 三、NAT技术1.公有和私有2.NAT3.NAPT 四、ARP协议1.MAC地址2.ARP 五、DHCP协议六、DNS协议尾序 一、ipv4地址 1. 基本概念 概念:IP地址,英文全…...

代码随想录第34天| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
1005.K次取反后最大化的数组和 1005. K 次取反后最大化的数组和 - 力扣(LeetCode) 代码随想录 (programmercarl.com) 贪心算法,这不就是常识?还能叫贪心?LeetCode:1005.K次取反后最大化的数组和_哔哩哔…...

Rust线程间通信通讯channel的理解和使用
Channel允许在Rust中创建一个消息传递渠道,它返回一个元组结构体,其中包含发送和接收端。发送端用于向通道发送数据,而接收端则用于从通道接收数据。不能使用可变变量的方式,线程外面修改了可变变量的值,线程里面是拿不…...

Vue3组件基础示例
组件是vue中最推崇的,也是最强大的功能之一,就是为了提高重用性,减少重复性的开发。 如何使用原生HTML方法实现组件化 在使用原生HTML开发时,我们也会遇到一些常见的功能、模块,那么如何在原生HTML中使用组件化呢&am…...

如何使用PL/SQL Developer工具导出clob字段的表?
1 准备测试数据 导出测试对象:表test_0102,others字段为clob类型 --创建中间表test_0101 create table test_0101( id number, name varchar2(20), others clob);--插入100条测试数据 beginfor i in 1..100 loopinsert into test_0101 values(i,i||_a,l…...

蓝桥杯刷题 深度优先搜索-[NewOJ P1158]N皇后(C++)
题目描述 n皇后问题:n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 上面布局用序列2 4 6 1 3 5表示,第i个数字表示第i行皇后放的列号。 按照这种格式输出前3个解,并统计总解数。 输入格式 输入一个正整数n&a…...

python实例2.2:编写一个装饰器,计算任何一个函数执行的时间(详解及其知识点拓展)
目录 一、编写一个装饰器,计算任何一个函数执行的时间 二、装饰器详解,及其用法举例...

Jenkins 持续集成 【CICD】
持续集成 (Continuous integration,简称CI) 持续集成是一种开发实践,它倡导团队成员频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、打包、部署、自动化测试)来验证ÿ…...

【CHI】(十二)Memory Tagging
目录 1. Introduction 2. Message extensions 3. Tag coherency 4. Read transaction rules 4.1 TagOp values 4.2 Permitted initial MTE tag states 5. Write transactions 5.1 Permitted TagOp values 5.2 TagOp, TU, and tags relationship 6. Dataless transact…...

Vue - 你知道Vue组件之间是如何进行数据传递的吗
难度级别:中级及以上 提问概率:85% 这道题还可以理解为Vue组件之间的数据是如何进行共享的,也可以理解为组件之间是如何通信的,很多人叫法不同,但都是说的同一个意思。我们知道,在Vue单页面应用项目中,所有的组件都是被嵌套在App.vue内…...

IP网络对讲广播系统审计
前言 这个系统是前两年在一个内网遇到的,当时顺手试了一个admin登陆之后再没有然后了,最近发现有大佬分享关于这个系统的漏洞,于是就把自己当初看的几个漏洞分享一下,系统比较简单,漏洞点很多,不要做坏事哦…...

蓝桥杯刷题--python38
197. 阶乘分解 - AcWing题库 def init(n): for i in range(2,n1): if not st[i]:primes.append(i) j0 while primes[j]*i<n: st[i*primes[j]]1 if i%primes[j]0: break j1 nint(input(…...

【LeetCode热题100】33. 搜索旋转排序数组(二分)
一.题目要求 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], …...

基于Leaflet.js的Marker闪烁特效的实现-模拟预警
目录 前言 一、闪烁组件 1、关于leaflet-icon-pulse 2、 使用leaflet-icon-pulse 3、方法及参数简介 二、闪烁实例开发 1、创建网页 2、Marker闪烁设置 3、实际效果 三、总结 前言 在一些地质灾害或者应急情况当中,或者热门预测当中。我们需要基于时空位置来…...

Vue-05
v-model 应用于其他表单元素 常见的表单元素都可以用v-model绑定关联 → 快速获取或设置表单元素的值 它会根据控件类型自动选取正确的方法来更新元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name…...

Mongodb中一个小巧的数据更新命令$inc
学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第55篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。 $inc是一个很小巧的命令。说它小巧,一个是因为短,只有三个字符。另一个是说…...

Java基于SpringBoot+Vue的专家医院预约挂号系统,附源码
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

STM32一个地址未对齐引起的 HardFault 异常
1. 概述 客户在使用 STM32G070 的时候,KEIL MDK 为编译工具,当编译优化选项设置为Level0 的时候,程序会出现 Hard Fault 异常,而当编译优化选项设置为 Level1 的时候,则程序运行正常。表面上看,这似乎是 K…...

spring事务那些事
实际工作中还会面临千奇百怪的问题,看下面返个例子(注意MySql数据库测试): //1.hello1Service 调用 hello2Service Transactional(propagation Propagation.REQUIRED,rollbackFor Exception.class) public void doUpdate() {//…...

设计模式深度解析:AI大模型下的策略模式与模板方法模式对比解析
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 策略模式与模板方法模式对比解析 文章目录 🌟引言🌟Part 1:…...

贪婪算法python实现
贪婪算法(Greedy Algorithm)是一种解决问题的策略,它基于一种贪心的思想:在每一步选择中都采取当前状态下最好或最优的选择,从而希望最终能够得到全局最优解。 其核心思想可以简单概括为“当前局部最优选择”ÿ…...

(一)基于IDEA的JAVA基础12
一维数组 为什么使用数组: 当我们需要存储一系列数据的时候,就需要用到数组,如果不使用数组,我们就要需要一个一个的去声明变量,这样浪费内存空间,同时效率低下。 什么是数组: 数组本身就是一个变量,只…...

vue3中封装table表格
封装实例useTable import {ref } from vue export function useTable(api) {const data = ref([])const refre...

【Redis】Redis的使用
登录redis [roottest2 ~]# redis-cli 127.0.0.1:6379> 或[roottest2 ~]# redis-cli -h 192.168.67.12 -p 6379 192.168.67.12:6379> redis-benchmark 测试工具 redis-benchmark 是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能 基本的测试语…...
【机器学习300问】60、图像分类任务中,训练数据不足会带来什么问题?如何缓解图像数据不足带来的问题?
在机器学习中,绝大部分模型都需要大量的数据进行训练和学习(包括有监督学习和无监督学习),然而在实际应用中经常会遇到训练数据不足的问题。就比如图像分类这样的计算机视觉任务,确实依赖于大规模且多样化的训练数据以…...

鸿蒙内核源码分析 (内存管理篇) | 虚拟内存全景图是怎样的
初始化整个内存 OsSysMemInitOsMainmain从 main() 跟踪可看内存部分初始化是在 OsSysMemInit() 中完成的。 UINT32 OsSysMemInit(VOID) {STATUS_T ret;OsKSpaceInit();//内核空间初始化ret OsKHeapInit(OS_KHEAP_BLOCK_SIZE);// 内核动态内存初始化 512K if (ret ! LOS_OK…...

基于深度学习的电动自行车头盔佩戴检测系统
文章目录 1. 文档说明2. 运行环境说明2.1 硬件配置2.2 软件配置2.3 程序依赖库 3. 基本环境配置3.1 软件安装3.1.1 集成开发环境安装与配置3.1.2 数据库安装与配置3.1.3 编程语言安装3.1.4 CUDA和cuDNN安装与配置3.1.5 机器学习库安装 3.2 依赖库安装 4. 运行程序资源下载地 1.…...

GO - 泛型编程
go - 泛型编程 介绍 泛型即开发过程中编写适用于所有类型的模板,只有在具体使用的时候才能确定其真正的类型。随着Go 1.18版本的发布,泛型正式成为了Go语言的一部分。 在编写代码时,我们经常会遇到需要处理不同类型的数据的情况。传统上&am…...

TouchableOpacity和TouchableWithoutFeedback区别
TouchableOpacity和TouchableWithoutFeedback都是React Native中定义的可触摸组件,但它们之间有一些区别: 点击效果:TouchableOpacity在被按下时会有一个透明度变化的点击效果,而TouchableWithoutFeedback则没有点击效果。 子组…...