【软件工程】需求分析文档——需求规格说明书
【備注】本說明書由華中農業大學2018級計算機科學與技術專業的劉暢、劉鎧銘、張清望、盧家偉四位同學共同完成。
文章目錄
- 1 引言
- 1.1 編寫目的
- 1.2 背景
- 1.3 術語和縮略詞
- 1.4 參考資料
- 2 任務概述
- 2.1 項目概述
- 2.1.1 項目來源及背景
- 2.1.2 項目目標
- 2.1.3 系統功能概述
- 2.2 用戶特點
- 2.3 假定和約束
- 3 功能需求
- 3.1 功能劃分
- 3.1.1 系統功能組成
- 3.1.2 功能編號和優先級
- 3.2 功能描述
- 4 數據需求
- 4.1 靜態數據
- 4.2 動態數據
- 4.3 數據字典
- 4.4 數據庫描述
- 5 性能需求
- 5.1 數據精度
- 5.2 時間特性
- 5.3 靈活性
- 6 運行需求
- 6.1 用戶界面
- 6.2 軟件接口
- 6.3 硬件接口
- 7 其他需求
- 7.1 驗收標準
- 7.2 質量屬性
1 引言
1.1 編寫目的
??本文檔的目的是詳細地介紹Asking APP所包含的需求,以便客戶能夠確認產品的確切需求以及開發人員能夠根據需求設計編碼,以下敘述將結合文字描述、數據流圖、ER圖等來描述Asking APP的功能、性能、用戶界面、運行環境、外部接口以及針對用戶操作給出的各種響應。本文檔的預期讀者有客戶、項目經理、開發人員以及跟該項目相關的其他競爭人員。
1.2 背景
??該項目適用于喜歡社交并且有想法的年輕人群體,由辣雞搬磚喵喵團隊進行后續的開發和實施工作。
1.3 術語和縮略詞
(1)問題箱:一種私密問題。該類問題的回答者僅可以通過Id搜索到問題,輸入密鑰后查看,并且所有回答都是匿名狀態。
(2)硬幣:軟件內虛擬貨幣。每日簽到可以獲取2枚硬幣,為贊同的回答點贊時會消耗硬幣,并且該硬幣會轉移給回答者。
(3)稱號:根據持有硬幣數所給予的等級,依次為:見習、水手、艦長、提督、總督。稱號等級高者可表明他收到過大量的贊或者使用此軟件的時間較長。
1.4 參考資料
[1]竇萬峰.軟件工程方法與實踐(第三版).北京:機械工業出版社,2016
[2]普萊斯曼.軟件工程:實踐者的研究方法(原書第8版).北京:機械工業出版社,2016
2 任務概述
2.1 項目概述
2.1.1 項目來源及背景
??Asking APP是一款針對年輕人的咨詢類社交軟件,大家可以在這里分享自己有趣的想法,以及咨詢自己的煩心事或暢聊每天的趣事,現在市場上大部分的咨詢類社交軟件都不僅僅是幫助用戶解決問題,還摻雜了一些諸如推送廣告、推銷等的附帶功能,所以我們推出Asking APP,主打咨詢類社交,無其他附帶功能。
2.1.2 項目目標
??該項目的市場目標為年輕人群體、咨詢類社交軟件市場,應用目標為實現咨詢社交專一化,不摻雜其他功能。
2.1.3 系統功能概述
(1)搜索:通過問題標題、標簽或問題箱id進行模糊搜索顯示結果列表。
(2)提問、刪除問題:提出問題、刪除自己提出的問題。
(3)創建、刪除問題箱:創建問題箱并分享給好友、刪除自己創建的問題箱。
(4)查看、回復問題:查看該問題及其回答、回答該問題。
(5)增加、刪除回答:回答別人提出的問題,刪除自己做出的回答。
(6)個人中心:查看基本資料和功能列表,可以簽到、修改資料。
2.2 用戶特點
??本產品的用戶主要是20~35歲的年輕人群體,這類人群的主要特點是思維活躍,而且接受新鮮事物的能力比較強,他們時常瀏覽各大社交軟件,發表自己的觀點與想法,在Asking上可以提出自己的問題,同時也可以回答別人提出的問題,或者創建自己的私密問題,以滿足自己的在一定程度上的社交需求。
2.3 假定和約束
(1)人力和時間的約束:本APP開發過程中需要考慮到人力和時間的約束,相較于一些軟件的開發團隊來說人員較少時間較短。
(2)技術發展的約束:計算機技術和發展的日新月異,將會給信息處理帶來更多手段,同時也會帶來更加豐富的信息表達形式,例如現在發展起來的人工智能等等,可能導致我們在搜索問題的時候沒有那么智能,這就要求軟件在設計時要考慮技術變化的可能性,為可能的變化預留一定的處理能力。
3 功能需求
3.1 功能劃分
3.1.1 系統功能組成
(1)Asking的頂層數據流圖
??????????圖 1 Asking頂層數據流圖
??描述:如圖1所示,用戶可以扮演兩種角色——提問者、回答者。當用戶扮演提問者的角色時,可以向Asking系統發送事務,同時提問者可以瀏覽Asking系統返回的事務,即提問者與Asking系統有雙向的數據流動。當用戶扮演回答者的角色時,可以向Asking系統發送事務,同時回答者可以瀏覽Asking系統返回的事務,即回答者與Asking系統也有雙向的數據流動。
(2)Asking的0層數據流圖
??????????圖 2 Asking 0層數據流圖
??描述:如圖2所示,用戶(包括兩種角色——提問者、回答者)通過提交身份信息向用戶登錄事務發送請求。用戶登錄事務從用戶信息庫中讀取相應的用戶信息進行匹配判斷登錄結果。用戶登錄成功后,問題推送事務將要根據用戶信息推送問題,用戶可以進行個人信息管理、搜索問題、提問管理操作。用戶進行搜索問題操作時,用戶提供的搜索信息流動到搜索問題事務,搜索問題事務對搜索信息進行相應的處理后得到問題信息。系統對用戶進行問題推送時,用戶信息流動到問題推送事務,問題事務對用戶信息進行處理得到請求信息。用戶進行提問時,用戶的提問者身份信息和提問信息流動到提問管理事務,提問管理事務對提問者身份信息和提問信息進行處理得到問題信息。以上三種操作分別得到問題信息、請求信息和問題信息,這三種信息均傳送到問題信息庫。問題信息庫流出問題信息到問題查看事務,問題查看事務對問題信息處理后將得到的回答者身份信息和回答信息發送到問題回答管理事務。問題回答管理事務分別發送回答信息到回答信息庫,發送問題列表到問題查看事務。
3.1.2 功能編號和優先級
| 1 | 用戶登錄 | 高 |
| 2 | 個人信息管理 | 中 |
| 3 | 搜索問題 | 中 |
| 4 | 問題推送 | 中 |
| 5 | 問題查看 | 中 |
| 6 | 回答管理 | 高 |
| 7 | 提問管理 | 高 |
| 8 | 回答查看 | 中 |
3.2 功能描述
(1)用戶登錄
? ??功能描述:如圖3所示,用戶登錄可以分為注冊和登陸。注冊時用戶提供新用戶注冊信息發往注冊事務,注冊事務根據新用戶注冊信息得到新用戶信息存入用戶信息庫,同時流動出用戶信息。登錄時用戶提供用戶名和密碼發往登錄事務,登錄事務將得到的用戶名和密碼與用戶信息庫中的信息匹配,同時流動出用戶信息。
??????????圖 3 用戶登錄功能細化數據流圖
????????????表1 登錄加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·用戶名、密碼 | ① 用戶利用自己的用戶名和密碼進行登錄。 | ·用戶信息 |
????????????表2 注冊加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·用戶注冊信息 | ① 新用戶輸入用戶名(郵箱)、密碼、昵稱進行注冊 | ·用戶信息 |
(2)個人信息管理
? ??功能描述:用戶登錄后可以進行相應操作進入個人信息管理界面,用戶可以在此頁面修改自己的個人信息。
????????????表3 個人信息管理加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·當前用戶信息 | ① 用戶對自己的個人信息進行修改和保存 | ·修改后的個人信息 |
(3)搜索問題
? ??功能描述:如圖4所示,用戶在搜索欄輸入相應的搜索信息。搜索信息可以是問題箱ID或者是問題標題。問題箱ID進入搜索問題箱事務,搜索問題箱事務處理傳入的問題ID流動出問題箱內容。問題標題進入搜索問題事務,搜索問題事務處理傳入的問題標題流動出問題內容。
??????????圖 4 搜索功能細化數據流圖
????????????表4 檢索模式選擇加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·搜索信息 | ① 用戶輸入想要搜索的信息,系統根據輸入的信息判定搜索模式:是標題則是搜索普通問題、是ID則是搜索問題箱。 | ·問題箱ID或問題標題 |
????????????表5 搜索問題箱加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·問題箱的ID | ① 系統根據輸入的問題箱ID搜索問題箱 | ·搜索到的問題箱內容 |
????????????表6 搜索問題加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·問題的標題 | ① 系統根據輸入的問題標題查找含有該字符的問題 | ·搜索到的問題內容 |
(4)問題推送
??? 功能描述:用戶選擇該功能后,系統會發送請求,從問題庫中選擇較新和較熱門的問題推送給用戶。
????????????表7 問題推薦功能加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·用戶信息 | 系統根據用戶信息推薦相關問題給用戶 | ·推薦的問題信息 |
(5)問題查看
? ??功能描述:用戶可以查看問題的標題、標簽、作者和描述,以及所有回答。
????????????表8 問題查看功能加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·問題信息 | 系統根據問題信息將問題內容展示給用戶 | ·問題信息 |
(6)回答管理
??功能描述:如圖5所示,回答問題信息進入功能劃分事務,功能劃分事務流動出回答信息及刪除指令和回答信息?;卮鹦畔⒓皠h除指令進入刪除回答事務,處理出待刪除回答并存入回答信息庫。回答信息進入問題分類事務,處理出匿名回答或記名回答,分別進入新增私密回答事務和新增普通回答事務,之后經過處理得到回答內容進入回答信息庫。從回答信息庫流動出回答列表。
??????????圖 5 回答管理功能細化數據流圖
????????????表9 功能劃分加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·回答信息身份信息或相關操作指令 | 系統根據操作指令判定用戶要執行什么功能 | ·相關功能所需信息 |
????????????表10 刪除回答加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·待刪除回答信息 | 系統根據輸入的待刪除回答信息刪除該問題 | ·刪除記錄 |
????????????表11 回答分類加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·回答信息 | 系統根據回答信息是否匿名,分類為匿名回答和記名回答 | ·分類后的回答信息 |
????????????表12 新增私密回答加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·匿名回答內容 | 系統將回答內容寫入數據庫 | ·回答內容 |
????????????表13 新增普通回答加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·記名回答內容 | 系統根據輸入的回答寫入數據庫 | ·回答內容 |
(7)提問管理
??功能描述:如圖6所示,問題信息和身份信息進入功能劃分事務,功能劃分事務流動出問題信息及刪除指令或問題信息。問題信息及刪除指令進入刪除問題事務,經過處理后流動出待刪除問題存入到問題信息庫。問題信息進入問題分類事務,問題分類事務處理問題信息分為問題箱問題和普通問題,分別進入新增問題箱事務和新增普通問題事務,之后處理得到問題內容存入問題信息庫。從問題信息庫流動出問題列表。
??????????圖 6 提問管理功能細化數據流圖
????????????表14 功能劃分加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·回問題信息身份信息或相關操作指令 | 系統根據操作指令判定用戶要執行什么功能 | ·相關功能所需信息 |
????????????表15 刪除問題加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·待刪除問題信息 | 系統根據輸入的待刪除問題信息刪除該問題 | ·刪除記錄 |
????????????表16 問題分類加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·問題信息 | 系統根據問題信息是否含有密鑰,分位普通問題和問題箱 | ·分類后的問題信息 |
????????????表17 新增問題箱加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·問題箱內容 | 系統將問題箱內容寫入數據庫 | ·問題內容 |
????????????表18 新增普通問題加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·普通問題內容 | 系統根據輸入的問題寫入數據庫 | ·問題內容 |
(8)回答查看
??? 功能描述:列出對應問題的所有回答供用戶查看
????????????表19 查看回答加工說明
| 輸入部分 I | 處理描述 P | 輸出部分 O |
| ·問題列表 | 系統根據問題列出該問題的所有回答 | ·回答列表 |
4 數據需求
4.1 靜態數據
用戶信息、問題信息、問題的回復、問題箱信息和問題箱回復。
4.2 動態數據
用戶自己輸入的問題箱密鑰、判斷用戶某一個行為后的狀態碼和提示消息。
4.3 數據字典
1.數據流條目
(1)身份信息
| 簡述 | 描述提問者和回答者的身份 |
| 來源 | 提問者、回答者 |
| 去處 | 1用戶登錄 |
(2)用戶名
| 簡述 | 用戶登錄的賬號 |
| 類型 | varchar |
| 長度 | 1024 |
| 來源 | 1用戶登錄 |
| 去處 | D1用戶信息庫 |
(3)密碼
| 簡述 | 用戶登錄的賬號對應的密碼 |
| 類型 | varchar |
| 長度 | 1024 |
| 來源 | 1用戶登錄 |
| 去處 | D1用戶信息庫 |
(4)搜索信息
| 簡述 | 用戶發出搜索問題的信息 |
| 來源 | 1用戶登錄 |
| 去處 | 3搜索問題 |
(5)提問者身份信息
| 簡述 | 描述提問者的身份信息 |
| 來源 | 1用戶登錄 |
| 去處 | 5提問管理 |
(6)提問信息
| 簡述 | 用戶發出提問問題的信息 |
| 來源 | 1用戶登錄 |
| 去處 | 5提問管理 |
(7)請求信息
| 簡述 | 推送問題的請求信息 |
| 來源 | 4問題推送 |
| 去處 | D2問題信息庫 |
(8)回答者身份信息
| 簡述 | 描述回答者的身份信息 |
| 來源 | 5問題查看 |
| 去處 | 6回答管理 |
(9)問題列表
| 簡述 | 描述問題的排列順序 |
| 來源 | 6回答管理 |
| 去處 | 8回答查看 |
(10)新用戶注冊信息
| 簡述 | 新用戶進行注冊的信息 |
| 來源 | 用戶 |
| 去處 | 1.2注冊 |
(11)問題箱ID
| 簡述 | 問題箱的編號 |
| 類型 | int |
| 長度 | 11 |
| 來源 | 3.1檢索模式選擇 |
| 去處 | 3.2搜索問題箱 |
(12)問題箱內容
| 簡述 | 問題箱的內容 |
| 類型 | text |
| 來源 | 3.2搜索問題箱 |
(13)問題標題
| 簡述 | 問題的概括性簡述 |
| 類型 | text |
| 來源 | 3.1檢索模型選擇 |
| 去處 | 3.3搜索問題 |
(14)問題內容
| 簡述 | 問題的內容 |
| 類型 | text |
| 來源 | 3.3搜索問題 |
(15)刪除指令
| 簡述 | 用戶發出的刪除問題或回答的指令 |
| 來源 | 6.1功能劃分、7.1功能劃分 |
| 去處 | 6.2刪除回答、7.2刪除問題 |
(16)匿名回答
| 簡述 | 用戶匿名對問題的回答 |
| 來源 | 6.3回答分類 |
| 去處 | 6.4新增私密回答 |
(17)記名回答
| 簡述 | 用戶發出的刪除問題或回答的指令 |
| 來源 | 6.3回答分類 |
| 去處 | 6.5新增普通回答 |
(18)回答內容
| 簡述 | 用戶回答問題的內容 |
| 類型 | text |
| 來源 | 6.4新增私密回答6.5新增普通回答 |
| 去處 | D3回答信息庫 |
(19)待刪除回答
| 簡述 | 用戶想要刪除的回答 |
| 來源 | 6.2刪除回答 |
| 去處 | D3回答信息庫 |
(20)待刪除問題
| 簡述 | 用戶想要刪除的問題 |
| 來源 | 7.2刪除問題 |
| 去處 | D3問題信息庫 |
(21)問題箱問題
| 簡述 | 問題箱里面的問題 |
| 來源 | 7.3問題分類 |
| 去處 | 7.4新增問題箱 |
(22)普通問題
| 簡述 | 普通問題 |
| 來源 | 7.3問題分類 |
| 去處 | 7.5新增普通問題 |
2.數據存儲條目
(1)用戶信息
| 簡述 | 描述用戶的信息 |
| 組成 | 用戶名+密碼+昵稱+頭像 |
| 組織方式 | 以用戶名為關鍵字 |
(2)新用戶信息
| 簡述 | 描述新用戶的信息 |
| 組成 | 用戶名+密碼+昵稱+頭像+個性簽名+性別+硬幣數 |
| 組織方式 | 以用戶名為關鍵字 |
(3)問題信息
| 簡述 | 描述問題的信息 |
| 組成 | 問題編號+問題內容+問題標題+標簽+問題創建時間+問題瀏覽量+問題評論量 |
| 組織方式 | 以問題編號為關鍵字 |
(4)回答信息
| 簡述 | 描述回答的信息 |
| 組成 | 回答編號+回答內容+點贊量+回答時間 |
| 組織方式 | 以回答編號為關鍵字 |
4.4 數據庫描述
軟件的數據庫概念模型(ER圖)
????????????圖 7 Asking 概念模型
??由圖7所示,該ER圖中共有五個實體,分別為用戶、問題、問題回復,問題箱和問題箱回復,其中用戶以用戶名為關鍵字,問題以其編號為關鍵字,問題回復以其編號為關鍵字,問題箱以其編號為關鍵字,問題箱回復以其編號為關鍵字,圖中所有關系均為一對多的關系。
5 性能需求
5.1 數據精度
| 用戶名 | char型 | 郵箱 |
| 密碼 | char型 | 8-12位 |
| 昵稱 | char型 | |
| 用戶是否存在 | map型 | 前端傳過來含有用戶名和密碼的json對象,后端接受到之后在數據庫中匹配,返回是否匹配的信息給前端 |
| 問題箱ID | int型 |
5.2 時間特性
(1) 響應時間:用戶任意操作后5秒內系統給予反饋信息。
(2) 更新處理時間:由系統運行狀態來決定。
(3) 數據的轉換和傳送時間:能夠在20秒內完成。
5.3 靈活性
??當需求發生某些變化時,該軟件的基本操作、數據結構、運行環境等等基本不會發生變化,只是對系統的數據庫的文件和記錄進行處理,就可以滿足需求。
6 運行需求
6.1 用戶界面
(1)注冊:用戶填寫該頁面的“用戶名”、“昵稱”、“密碼”、“確認密碼”信息后點擊提交即可成功注冊,返回“注冊是否成功的消息”。
(2)登錄:用戶填寫該頁面的“用戶名”、“密碼”信息后點擊登錄即可成功登錄,如果用戶沒有賬號可以點擊下方的鏈接進行注冊。
(3)主頁:此頁面中央顯示“隨機問題列表”;點擊列表中某個問題可以查看該問題的問題詳情;點擊列表中的某個頭像可以查看該用戶的“個人信息”;用戶在上方搜索框內輸入“搜索信息”后回車,下方列表即變為“包含搜索信息的問題”。
(4)個人中心:點擊用戶頭像可以修改資料;點擊簽到可以進行本日簽到;中間提供該用戶的基本數據信息;下方提供列表,包括我的主頁、我的回答、我的提問、創建問題、幫助提示這幾個功能;點擊最下方的退出可以登出用戶。
(5)修改資料:點擊頭像旁邊的上傳新頭像后可以更新頭像;填寫修改信息下的“用戶名”、“昵稱”、“密碼”、“性別”、“簡介”后點擊確認修改可以修改用戶的信息。
(6)我的回答:列出來了該用戶的所有回答信息,點擊刪除即可刪除該條回答信息;點擊該回答會返回該問題的所有信息。
(7)我的提問:切換標簽來展示不同類型的問題;點擊刪除即可刪除該條問題;點擊該問題會返回該問題的所有信息;在“問題箱”中點擊分享,即可自動復制一份“邀請回答”鏈接。
(8)創建問題:輸入問題的“標題”、“是否設為問題箱”、“標簽”、“問題描述”后點擊發布問題即可成功創建一個問題。
(9)查看問題:提供該問題的“標題”、“標簽”、“作者”、“描述”,以及所有回答;用戶可以點擊贊給喜歡的回答點贊;可以在下方的評論區輸入“評論”后點擊發布評論即可發布一條對該問題的評論。
(10)回答問題箱:展示了該問題箱的“標題”和“描述”,用戶成功輸入密鑰后填寫該問題的回答后,點擊提交評論后即可發布一條對該問題箱的評論。
(11)查看問題箱:展示了該問題箱的信息,用戶可通過點擊上一頁和下一頁來查看回答。
(12)查看用戶:查看該用戶的頭像、昵稱和基本數據信息。
6.2 軟件接口
1.操作系統:Microsoft Windows 10
2.軟件設備:VScode、IntelliJ IDEA、MySQL8.0
6.3 硬件接口
1.內存:512M以上
2.磁盤空間:40G以上
3.CPU:233Mhz以上
4.硬盤空間:1.5G以上
7 其他需求
7.1 驗收標準
| 登錄功能 | 登錄 | 單擊用戶名輸入框,輸入用戶名 | 用戶名和密碼檢查 | 符合形式,輸入錯誤,提示用戶名或密碼有問題,請重新輸入 | |
| 單擊密碼框,輸入密碼 | 密碼框保護 | 輸入的字符在密碼框隱藏 | |||
| 用戶登錄成功界面 | 創建問題 | 單擊創建問題,輸入相應內容 | 問題成功創建 | 查看問題頁面顯示已經創建的問題 | |
| 回復問題 | 點擊問題,進行評論、點贊或贊賞 | 評論、點贊、贊賞 | 問題下面顯示回復以及點贊數和贊賞數 | ||
| 搜索問題 | 在查詢框內輸入標簽或id搜索問題 | 搜索 | 查詢框下顯示相應的問題 | ||
| 刪除問題 | 在個人中心我的問題里點擊問題選擇刪除 | 刷新該頁面 | 問題成功被刪除,查看問題頁面不再顯示 |
7.2 質量屬性
1.可用性:用戶可以使用
2.可靠性:在給定時間內可以大致上滿足無錯運行的要求
3.可維護性:服務器重啟、寫進日志
4.安全性:對用戶的密碼加密
5.可移植性:移動端移植
總結
以上是生活随笔為你收集整理的【软件工程】需求分析文档——需求规格说明书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#:RichTextBox 追加其它颜
- 下一篇: C# WPF:初识布局容器