學號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),主要用來說明軟件的外部功能和用戶的交互情況(把軟件當作一個黑盒子)。
- 定義好相關的概念。
- 規范好一些假設(Assumptions)。
- 避免一些誤解,界定一些邊界條件。
- 描述主流的用戶/軟件交互步驟。
- 一些好的功能還會有副作用。我們要把這些副作用明明白白地寫出來。
- 服務質量的說明。軟件團隊要說清楚服務質量是什么等級,意味着什么,不然就會人雲亦雲,以謬傳謬。
軟件技術說明書(Technical Spec),又叫設計文檔(Design Doc),主要用來說明軟件內部的設計規范(把軟件當作一個透明的箱子)。
定義典型用戶
用戶 | 用戶1 |
---|---|
身份 | 小學老師 |
年齡 | 30~60歲 |
重要性 | 非常重要 |
使用場景 | 發布作業 |
使用環境 | 學校 |
生活/工作 | 承擔數學課的教學工作 |
知識層次/能力 | 熟悉小學數學的知識 |
動機/目的 | 提高學生知識水平 |
用戶偏好 | 題目避免重復,可定制數量,控制年級以及運算符號 |
用戶 | 用戶2 |
---|---|
身份 | 小學教導主任 |
年齡 | 30~60歲 |
重要性 | 非常重要 |
典型場景 | 編寫考卷 |
使用環境 | 學校 |
生活/工作 | 擔任教學工作,管理老師 |
知識層次/能力 | 對小學知識有着卓越的理解力和出題力 |
動機/目的 | 提高學生學習能力 |
用戶偏好 | 能生成期中期末的試卷 ,網站在5:00~24:00可訪問 |
用戶 | 用戶3 |
---|---|
身份 | 小學生 |
年齡 | 10歲 |
重要性 | 非常重要 |
典型場景 | 老師或教導主任布置作業時 |
使用環境 | 學校、家庭 |
生活/工作 | 好好學習,天天向上 |
知識層次/能力 | 小學數學一年級水平、小學數學二年級水平、小學數學三年級水平 |
動機/目的 | 好好學習,天天向上 |
用戶偏好 | 學習更加輕松 |
給出界面原型設計









- 主流用戶進入登錄頁面進行注冊操作,然后登錄進行功能選擇,可以選擇是生成期中期末試卷功能或是生成四則運算功能,生成后可按照提示獲取生成,然后退出網站即可。
系統功能描述及驗收驗證標准
具體功能
- 網站至少在五點到晚十二點能訪問
- 能生成期中期末的試卷
- 對於題目:
- 題目避免重復
- 可定制數量
- 可以控制一下參數
- 乘除法、括號、數制范圍、數值范圍、……
驗收驗證標准
- 在5:00~24:00能夠登錄,其它時間無法登錄
- 正常生成期中期末的試卷
- 對生成的題目進行自動化測試
寫出產品可能的副作用
- 不夠完善,功能上仍有殘缺,需要補缺
- 在超過一定人數訪問時,可能會無法及時響應
- 不同的人在生成題目時,可能會生成有重復部分的題目
四、總結
spec的目標是什么,不包括什么?
- 從用戶的角度描述軟件產品的功能, 輸入,輸出,界面, 功能的邊界問題, 功能的效率問題(對用戶而言), 國際化, 本地化異常情況, 等;
- 不涉及軟件內部的實現細節
spec的用戶和典型場景是什么?
- 用戶:學生、老師、教導主任
- 典型場景:老師布置作業讓學生上網站各自下載對應作業,然后學生上學校網站獲取題目並完成;教導主任負責出卷子給學生做
spec用到了哪些術語,它們的定義是什么?
- 軟件功能說明書(Functional Spec),主要用來說明軟件的外部功能和用戶的交互情況(把軟件當作一個黑盒子)。
- 軟件技術說明書(Technical Spec),又叫設計文檔(Design Doc),主要用來說明軟件內部的設計規范(把軟件當作一個透明的箱子)。
用戶是如何使用軟件的功能的?
- 進入登錄頁面點擊注冊,進行注冊操作
- 完成注冊,回到登錄頁面,進行登錄
- 登錄成功,進行所需功能的選取
- 選定功能后,轉至相對應功能頁面
- 進行各自功能操作,完成操作后,獲取相對應所需
各種邊界條件是什么,軟件功能應該怎樣隨之變化?(用戶數量的變化,輸入內容的上限下限,不同國家地區文化語言硬件……)
- 一年級只會有加減運算,運算結果在100以內進行
- 二年級只有乘除運算,運算結果在100以內
- 三年級有加減乘除運算,並且加入括號進行混合運算,運算結果在1000以內
- 用戶只能輸入年級在1~3以內,數量1~100以內才能正確運行程序
- 不同國家,則會改變成相對應的語句
功能有什么副作用,對於其他功能有什么顯性或隱性的依賴關系?
- 生成題目過程中需要調用所輸入參數,需要用戶一定有參數輸入,方能運行
- 如果輸入的是0,則只會生成空的文檔,不進行題目生成
什么叫“好”,什么叫“這個功能測試完了,可以交付了”?
- 能夠順利運行,並且沒有太高延遲,保證所有人都能順利執行操作,簡易明白。才是“好”
- 當所有功能都能順利運行,並且沒有異常拋出,就叫“這個功能測試完了,可以交付了”
軟件發布出去之后,有哪些和項目目標相關的數據可以收集,怎么在實現階段就能把數據收集的工作准備好?
- 用戶在進行參數的輸入時輸入了哪些數據導致功能無法順利運行,應當進行和項目目標相關的數據收集
- 用戶正常操作,出現異常或無法繼續執行,應當進行和項目目標相關的數據收集
- 當出現異常時,調用try{}catch{}捕獲異常,並存儲下來,進行和項目目標相關的數據收集
結對照片
