軟件需求的特性有:1、完整性,是指每一項需求都必須將所要實現的功能描述清楚,不能丟失一些信息;2、正確性,是指每一項需求都必須準確地陳述其要開發的功能;3、可行性,是指需求是否能被正常地實現,每一項目需求都必須是可以在已知系統和環境的權能和限制范圍內實施的;4、必要性,是指每一項需求都應把客戶真正所需要的和最終所需遵從的標準記錄下來;5、劃分優先級;6、無二義性;7、可驗證性。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用
本教程操作環境:windows7系統、Dell G3電腦。
什么是軟件需求
用戶解決問題或達到目標所需的條件或者權能(capability)
系統或者系統部件要滿足合同、標準、規范或者其它正式規定文檔所需具有的條件或權能
一種能反映上面1或者2所描述的條件或者權能的文檔說明
需求不僅僅包含通常意義上的產品功能,還包含行業規范中定義的標準,如銀行的行業技術規范、電信的入網標準等。
軟件需求的特性
在整個研發過程中,原始收集完成后,接下來進行的第一個步驟就是需求評審,那么如果要將需求評審好,就必須知道什么樣的需求說明是好的說明,通常一個好的需求說明應該具備以下7個特性。
(1)完整性
完整性是指每一項需求都必須將所要實現的功能描述清楚,不能丟失一些信息,如果有丟失信息則說明需求不夠完整,需求的完整性也是開發人員獲得設計和實現這些功能所需的必要信息。
(2)正確性
正確性是指每一項需求都必須準確地陳述其要開發的功能,做出正確判斷的參考是需求的來源,如用戶或高層的系統需求規格說明,若軟件需求與對應的系統需求相抵觸則是不正確的。只有用戶代表才能確定用戶需求的正確性,這就是一定要有用戶積極參與的原因。沒有用戶參與的需求評審將會導致這種現象出現:“那些沒有意義不是我們想要的”,因為沒有用戶參與的話,很多評審都可能是我們評審專家自己憑空想的。
(3)可行性
可行性是指需求是否能被正常地實現,每一項目需求都必須是可以在已知系統和環境的權能和限制范圍內實施的。為避免不可行的需求,最好在獲取需求過程中始終有一位軟件工程小組的組員與需求分析人員或考慮市場的人員在一起工作,由他檢查技術可行性。
(4)必要性
必要性是指每一項需求都應把客戶真正所需要的和最終所需遵從的標準記錄下來,“必要性”也可以理解為每項需求都是用來授權你編寫文檔的“根源”,要使用每項需求都能回溯至某項客戶的輸入。
(5)劃分優先級
劃分優先級是對所有的需求進行分類,分成不同等級的需求,通常需求可以分為高、中、低三個級別。需求優先級高是指一個關鍵任務的需求,如果這個業務沒有實現,那么這個產品就沒有用戶會購買。如手機的通話功能,如果手機沒有通話功能,這個手機就沒有人會買。
需求優先級中是指這個業務一定要實現,但質量特性可以做得是不是很完善,如手機的攝像頭功能,現在的智能機都帶攝像頭,但像素不一定做得很高,如有的廠家做到3000 萬像素,但我們可以做到1000 萬像素,這樣產品還是有人會買,但可能價格會受到影響。
需求優先級低是指這個業務可以實現也可以不實現,如月餅包裝得很漂亮,如果我們是買給自己吃的,那么這個包裝是否很漂亮并不是主要的,通常這類需求也叫鍍金需求。
(6)無二義性
二義性是指一個描述的需求有兩種或多種理解的方式,在描述需求的過程中由于自然語言很容易導致二義性,所以盡量使用簡潔明了的用戶性的語言表達每項需求。
(7)可驗證性
可驗證性是指每項需求都可以通過具體的用例或測試步驟來驗證其是否正確,如果我們不能使用一套有效的方法進行驗證,那么就無法客觀地判斷當前的需求是否被正確地實現。
上面是我們評審時需要注意的一些特性,只有符合這些特性的需求,我們才認為是一個好的需求,那么需求說明通常具備以下四個特點:
1)完整性
完整性上面我們介紹過,是指不能遺漏任何必要的需求信息,如果有遺漏的信息很難被查出來。
在描述需求時,如果我們盡量注重用戶的任務,拋開系統的功能,可以更好地避免需求的不完整性。
2)一致性
一致性是指與其他軟件需求或高層(系統、業務)需求不相矛盾,在開發前有必要解決所有需求之間不一致部分,只有進行詳細的檢查才能確定某一項需求是否正確。
3)可修改性
在必要的時候或為了維護每一個需求變更歷史記錄時需要修改需求,這樣就要求每項需求要獨立標識出來,并與其他需求區別開來,這樣可以保證無二義性。并且每項需求只應在需求說明書中出現一次,這樣更改需求時,可以保持需求的一致性。
4)可跟蹤性
可跟蹤性是指每項軟件需求與其根源和設計元素、源代碼、測試用例之間建立起鏈接,這樣可以確保每項需求都被實現和驗證,這也是我們工作中常說的需求跟蹤矩陣。