AI+軟體工程:10倍提效!用ChatGPT編寫系統功能文檔

来源:https://www.cnblogs.com/tangshiye/p/18093747
-Advertisement-
Play Games

系統功能文檔是一種描述軟體系統功能和操作方式的文檔。它讓開發團隊、測試人員、項目管理者、客戶和最終用戶對系統行為有清晰、全面的瞭解。 通過ChatGPT,我們能讓編寫系統功能文檔的效率提升10倍以上。 用ChatGPT生成系統功能文檔 我們以線上商城系統為例,介紹如何使用ChatGPT幫我們完成系統 ...


系統功能文檔是一種描述軟體系統功能和操作方式的文檔。它讓開發團隊、測試人員、項目管理者、客戶和最終用戶對系統行為有清晰、全面的瞭解。

通過ChatGPT,我們能讓編寫系統功能文檔的效率提升10倍以上。

用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 rectangle

actor C端用戶 as cuser
actor B端用戶 as buser

rectangle 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代碼,貼入文本框,點擊插入。

線上商城系統的用例圖就自動繪製好啦,是不是效率提升非常多~

本文來自博客園,作者:架構師湯師爺,轉載請註明原文鏈接:https://www.cnblogs.com/tangshiye/p/18093747


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Flex 1.概述 Flex佈局它可以讓容器中的子元素具有彈性伸縮性。Flex佈局是一種二維佈局模型,它可以在任意方向上對元素進行排列,並且可以動態地調整元素的大小和位置,以適應不同的屏幕尺寸和設備。通過使用Flex佈局,我們可以實現響應式佈局效果,以適應不同的屏幕尺寸和設備。Flex布 ...
  • 本文記錄如何使用 adb 命令修改 Android/data 目錄下的文件,然後給國服的碧藍檔案打上布丁~ 前言 今天下午刷著刷著微博就看到國服 BA 又又又發了和諧公告 ... 心情複雜。jpg 於是乎終於想起來得吃布丁了,至於此次更新後布丁有沒有用還未知,但還是先搞上 食用方法之前就出了 ...
  • 原創研發flutter3+getX+mediaKit仿抖音app短視頻直播實戰Flutter-DouYin。 flutter3_dylive使用最新跨平臺技術flutter3.x+dart3+getx+get_storage+media_kit開發手機端仿抖音app小視頻直播實戰項目。實現了抖音全屏 ...
  • 一、Stack 1.概述 HarmonyOS中的層疊佈局Stack是一種可以將多個組件按照一定順序疊放的佈局。Stack佈局中的組件可以是任意類型的組件,且每個組件都可以設置在哪個位置疊放。在疊放時,後添加的組件會自動覆蓋前面添加的組件。 Stack佈局佈局中的每個子組件都可以設置偏移量、旋 ...
  • 一、是什麼 TCP/IP,傳輸控制協議/網際協議,是指能夠在多個不同網路間實現信息傳輸的協議簇 TCP(傳輸控制協議) 一種面向連接的、可靠的、基於位元組流的傳輸層通信協議 IP(網際協議) 用於封包交換數據網路的協議 TCP/IP協議不僅僅指的是TCP和IP兩個協議,而是指一個由FTP、SMTP、T ...
  • 前言 習慣了在 css 文件裡面編寫樣式,其實JavaScript 的 CSS對象模型也提供了強大的樣式操作能力, 那就隨文章一起看看,有多少能力是你不知道的吧。 樣式來源 客從八方來, 樣式呢, 樣式五方來。 chrome舊版本用戶自定義樣式目錄: %LocalAppData%/Google/Ch ...
  • VUE 腳手架 腳手架文件結構 ├── node_modules ├── public │ ├── favicon.ico: 頁簽圖標 │ └── index.html: 主頁面 ├── src │ ├── assets: 存放靜態資源 │ │ └── logo.png │ │── componen ...
  • 最近看到了許多關於 :has() 選擇器的知識點,在此總結下來。 MDN 對 :has() 選擇器 的解釋是這樣的: CSS 函數式偽類 :has() 表示一個元素,如果作為參數傳遞的任何相對選擇器在錨定到該元素時,至少匹配一個元素。這個偽類通過把可容錯相對選擇器列表作為參數,提供了一種針對引用元素 ...
一周排行
    -Advertisement-
    Play Games
  • 隨著Aspire發佈preview5的發佈,Microsoft.Extensions.ServiceDiscovery隨之更新, 服務註冊發現這個屬於老掉牙的話題解決什麼問題就不贅述了,這裡主要講講Microsoft.Extensions.ServiceDiscovery(preview5)以及如何 ...
  • 概述:通過使用`SemaphoreSlim`,可以簡單而有效地限制非同步HTTP請求的併發量,確保在任何給定時間內不超過20個網頁同時下載。`ParallelOptions`不適用於非同步操作,但可考慮使用`Parallel.ForEach`,儘管在非同步場景中謹慎使用。 對於併發非同步 I/O 操作的數量 ...
  • 1.Linux上安裝Docken 伺服器系統版本以及內核版本:cat /etc/redhat-release 查看伺服器內核版本:uname -r 安裝依賴包:yum install -y yum-utils device-mapper-persistent-data lvm2 設置阿裡雲鏡像源:y ...
  • 概述:WPF界面綁定和渲染大量數據可能導致性能問題。通過啟用UI虛擬化、非同步載入和數據分頁,可以有效提高界面響應性能。以下是簡單示例演示這些優化方法。 在WPF中,當你嘗試綁定和渲染大量的數據項時,性能問題可能出現。以下是一些可能導致性能慢的原因以及優化方法: UI 虛擬化: WPF提供了虛擬化技術 ...
  • 引言 上一章節介紹了 TDD 的三大法則,今天我們講一下在單元測試中模擬對象的使用。 Fake Fake - Fake 是一個通用術語,可用於描述 stub或 mock 對象。 它是 stub 還是 mock 取決於使用它的上下文。 也就是說,Fake 可以是 stub 或 mock Mock - ...
  • 為.net6在CentOS7上面做準備,先在vmware虛擬機安裝CentOS 7.9 新建CentOS764位的系統 因為CentOS8不更新了,所以安裝7;簡單就一筆帶過了 選擇下載好的操作系統的iso文件,下載地址https://mirrors.aliyun.com/centos/7.9.20 ...
  • 經過前面幾篇的學習,我們瞭解到指令的大概分類,如:參數載入指令,該載入指令以 Ld 開頭,將參數載入到棧中,以便於後續執行操作命令。參數存儲指令,其指令以 St 開頭,將棧中的數據,存儲到指定的變數中,以方便後續使用。創建實例指令,其指令以 New 開頭,用於在運行時動態生成並初始化對象。方法調用指... ...
  • LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 We ...
  • 1 開源解析和拆分文檔 第三方的工具去對文件解析拆分,去將我們的文件內容給提取出來,並將我們的文檔內容去拆分成一個小的chunk。常見的PDF word mark down, JSON、HTML。都可以有很好的一些模塊去把這些文件去進行一個東西去提取。 優勢 支持豐富的文檔類型 每種文檔多樣化選擇 ...
  • OOM是什麼?英文全稱為 OutOfMemoryError(記憶體溢出錯誤)。當程式發生OOM時,如何去定位導致異常的代碼還是挺麻煩的。 要檢查OOM發生的原因,首先需要瞭解各種OOM情況下會報的異常信息。這樣能縮小排查範圍,再結合異常堆棧、heapDump文件、JVM分析工具和業務代碼來判斷具體是哪 ...