功能規格說明書


學號1:367 姓名:林恩 學號2:445 姓名:肖志豪

作業鏈接:https://edu.cnblogs.com/campus/fzzcxy/2016SE/homework/2180

原型模型設計工具: 墨刀

原型模型鏈接:https://modao.cc/app/Dib7wlWBGtRcmSmyBR8RDMSAAJdTLQe

一、預估與實際

PSP2.1 Personal Software Process Stages 預估耗時(分鍾) 實際耗時(分鍾)
Planning 計划 30 30
• Estimate • 估計這個任務需要多少時間 30 30
Development 開發 790 750
• Analysis • 需求分析 (包括學習新技術) 170 150
• Design Spec • 生成設計文檔 50 70
• Design Review • 設計復審 20 30
• Coding Standard • 代碼規范 (為目前的開發制定合適的規范) 30 20
• Design • 具體設計 185 185
• Coding • 具體編碼 185 185
• Code Review • 代碼復審 30 30
• Test • 測試(自我測試,修改代碼,提交修改) 120 120
Reporting 報告 60 50
• Test Repor • 測試報告 30 30
• Size Measurement • 計算工作量 10 10
• Postmortem & Process Improvement Plan • 事后總結, 並提出過程改進計划 10 20
合計 880 830

二、需求分析

需要了解

  • 《構建之法》,第八章-需求分析第十章-典型用戶和場景
  • 原型模型如何設計
  • 功能規格說明書如何書寫

三、設計

1. 設計思路

顯示解決用戶問題的過程

  • 題目重復
    • 在每次生成式子最終時判斷式子是否是已經存在的,如果存在,則放棄這道題,選擇重新生成;如果不存在,則繼續生成這道題。
  • 數量不可定制或無限制
    • 輸入數量時限制數量大小,直至輸入合格數量
  • 非法輸入參數
    • 輸入非法參數,與正則表達式進行匹配,不匹配則重新輸入參數;匹配則繼續下一步。
  • 乘除法、括號、數制范圍、數值范圍
    • 用字符串數組存放乘除號,括號則是手動添加,數制范圍默認為整型,數值范圍則根據年級進行重新限制。

2. 實現方案 寫出具體實現的步驟

分為六個步驟:

定義相關概念,如縮寫、專有名詞等

競爭性需求分析的框架

N(Need,需求)

  • 要充分了解用戶的痛苦,他們對已有軟件、服務不滿意的地方。
  • 老師需要能夠批量生成題目的軟件以及能夠定時訪問的網站

A(Approach,做法)

  • 有什么招數,特別是獨特的招數,來解決用戶的痛苦。
  • 構建一個網站創建上述功能減輕用戶負擔

B(Benefit,好處)

  • 你的新的軟件具體有哪些好處,能讓用戶離開現有產品,使用你的產品呢?
  • 使用方便快捷且小巧,能夠快速進行題目構建並下載,方便學生做題

C(Competitors,競爭)

  • 做競爭性需求分析的目的之一,就是要看清楚我方優勢在哪里,我方劣勢在哪里。
  • 背景美觀,題目具有獨立性,每道題目都不一樣

D(Delivery,推廣)

  • 如何把產品交到千萬個用戶手中呢?
  • 如何使應用快速推廣至用戶手中,快速擴大使用群體?
  • 通過學校推廣,然后慢慢推廣到其他學校之間

功能的定位和優先級

從各個角度將需求量化(需求實現的最后期限,實現需求大致所需的時間和資源成本,各個不同需求的優先級,需求帶來的收益,等等)

功能分析的四個象限

  • 殺手功能(Core)/ 外圍功能(Context)
    題目具有獨立性,每道題目都不一樣/背景美觀
  • 必要需求(Mission Critical)/ 輔助需求(Enabling)
    能夠快速進行題目構建並下載,方便學生做題/使用方便快捷且小巧
功能分析的四個象限

規格說明書(Specification),簡稱Spec

軟件功能說明書(Functional Spec),主要用來說明軟件的外部功能和用戶的交互情況(把軟件當作一個黑盒子)。

  1. 定義好相關的概念。
  2. 規范好一些假設(Assumptions)。
  3. 避免一些誤解,界定一些邊界條件。
  4. 描述主流的用戶/軟件交互步驟。
  5. 一些好的功能還會有副作用。我們要把這些副作用明明白白地寫出來。
  6. 服務質量的說明。軟件團隊要說清楚服務質量是什么等級,意味着什么,不然就會人雲亦雲,以謬傳謬。

軟件技術說明書(Technical Spec),又叫設計文檔(Design Doc),主要用來說明軟件內部的設計規范(把軟件當作一個透明的箱子)。

定義典型用戶

用戶 用戶1
身份 小學老師
年齡 30~60歲
重要性 非常重要
使用場景 發布作業
使用環境 學校
生活/工作 承擔數學課的教學工作
知識層次/能力 熟悉小學數學的知識
動機/目的 提高學生知識水平
用戶偏好 題目避免重復,可定制數量,控制年級以及運算符號
用戶 用戶2
身份 小學教導主任
年齡 30~60歲
重要性 非常重要
典型場景 編寫考卷
使用環境 學校
生活/工作 擔任教學工作,管理老師
知識層次/能力 對小學知識有着卓越的理解力和出題力
動機/目的 提高學生學習能力
用戶偏好 能生成期中期末的試卷 ,網站在5:00~24:00可訪問
用戶 用戶3
身份 小學生
年齡 10歲
重要性 非常重要
典型場景 老師或教導主任布置作業時
使用環境 學校、家庭
生活/工作 好好學習,天天向上
知識層次/能力 小學數學一年級水平、小學數學二年級水平、小學數學三年級水平
動機/目的 好好學習,天天向上
用戶偏好 學習更加輕松

給出界面原型設計

主要頁面
登錄與注冊
退出登錄頁面
注冊頁面1
注冊頁面2
注冊完成頁面
功能頁面
生成四則運算的試卷
生成期中期末的試卷
### **描述主流的用戶/軟件交互步驟**
  • 主流用戶進入登錄頁面進行注冊操作,然后登錄進行功能選擇,可以選擇是生成期中期末試卷功能或是生成四則運算功能,生成后可按照提示獲取生成,然后退出網站即可。

系統功能描述及驗收驗證標准

具體功能

  • 網站至少在五點到晚十二點能訪問
  • 能生成期中期末的試卷
  • 對於題目:
    • 題目避免重復
    • 可定制數量
    • 可以控制一下參數
    • 乘除法、括號、數制范圍、數值范圍、……

驗收驗證標准

  • 在5:00~24:00能夠登錄,其它時間無法登錄
  • 正常生成期中期末的試卷
  • 對生成的題目進行自動化測試

寫出產品可能的副作用

  • 不夠完善,功能上仍有殘缺,需要補缺
  • 在超過一定人數訪問時,可能會無法及時響應
  • 不同的人在生成題目時,可能會生成有重復部分的題目

四、總結

spec的目標是什么,不包括什么?

  • 從用戶的角度描述軟件產品的功能, 輸入,輸出,界面, 功能的邊界問題, 功能的效率問題(對用戶而言), 國際化, 本地化異常情況, 等;
  • 不涉及軟件內部的實現細節

spec的用戶和典型場景是什么?

  • 用戶:學生、老師、教導主任
  • 典型場景:老師布置作業讓學生上網站各自下載對應作業,然后學生上學校網站獲取題目並完成;教導主任負責出卷子給學生做

spec用到了哪些術語,它們的定義是什么?

  • 軟件功能說明書(Functional Spec),主要用來說明軟件的外部功能和用戶的交互情況(把軟件當作一個黑盒子)。
  • 軟件技術說明書(Technical Spec),又叫設計文檔(Design Doc),主要用來說明軟件內部的設計規范(把軟件當作一個透明的箱子)。

用戶是如何使用軟件的功能的?

  • 進入登錄頁面點擊注冊,進行注冊操作
  • 完成注冊,回到登錄頁面,進行登錄
  • 登錄成功,進行所需功能的選取
  • 選定功能后,轉至相對應功能頁面
  • 進行各自功能操作,完成操作后,獲取相對應所需

各種邊界條件是什么,軟件功能應該怎樣隨之變化?(用戶數量的變化,輸入內容的上限下限,不同國家地區文化語言硬件……)

  • 一年級只會有加減運算,運算結果在100以內進行
  • 二年級只有乘除運算,運算結果在100以內
  • 三年級有加減乘除運算,並且加入括號進行混合運算,運算結果在1000以內
  • 用戶只能輸入年級在1~3以內,數量1~100以內才能正確運行程序
  • 不同國家,則會改變成相對應的語句

功能有什么副作用,對於其他功能有什么顯性或隱性的依賴關系?

  • 生成題目過程中需要調用所輸入參數,需要用戶一定有參數輸入,方能運行
  • 如果輸入的是0,則只會生成空的文檔,不進行題目生成

什么叫“好”,什么叫“這個功能測試完了,可以交付了”?

  • 能夠順利運行,並且沒有太高延遲,保證所有人都能順利執行操作,簡易明白。才是“好”
  • 當所有功能都能順利運行,並且沒有異常拋出,就叫“這個功能測試完了,可以交付了”

軟件發布出去之后,有哪些和項目目標相關的數據可以收集,怎么在實現階段就能把數據收集的工作准備好?

  • 用戶在進行參數的輸入時輸入了哪些數據導致功能無法順利運行,應當進行和項目目標相關的數據收集
  • 用戶正常操作,出現異常或無法繼續執行,應當進行和項目目標相關的數據收集
  • 當出現異常時,調用try{}catch{}捕獲異常,並存儲下來,進行和項目目標相關的數據收集

結對照片

結對照片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM