軟體需求規約
出自 MBA智库百科(https://wiki.mbalib.com/)
需求規約(Software Requirement Specification)
目錄[隱藏] |
軟體需求規約是指分析任務的最終產物,通過建立完整的信息描述、詳細的功能和行為描述、性能需求和設計約束的說明、合適的驗收標準,給出對目標軟體的各種需求。
需求分析對系統的成敗影響甚大,所以對需求的描述應該儘可能的好。需求規約(Requirement Specification)作為記錄需求分析結果的文檔應當具有如下特征。
1.完整性
優秀的需求規約是完整的,它可以充分地說明用戶所期望的系統功能。每一個需求的描述均包含了開發人員設計和實現這項功能需要的所有信息。
2.正確性
對於每一項需求都必須正確地描述所需要的系統功能.要真實地反映用戶的意圖。需求的正確性只有提出需求的人——用戶才能加以判斷,所以需求在提交給開發人員之前,必須請用戶予以確認。
3.完整性與精確性
需求最大的用途是對待開發軟體系統的知識實現共用,它將用戶的期望準確地傳遞給系統的相關開發人員,如設計者、實現者和測試者等。所以需求的描述必須是可理解的。可理解性要求需求描述的信息要充分,要具有完整性。同時,過多的冗餘信息會擾亂讀者的思路,所以可理解性也要求描述僅包含必要的信息,即精確性。
4.可行性
需求必須能夠在軟體系統及其運行環境的已知條件和約束下實現。顯然,用戶對需求的技術可行性是無法判斷的,所以需求的可行性是由開發人員進行評審。在評審過程中,開發人員可能需要進行一定的分析和研究,而不是單純的憑藉經驗和直覺。對於難以判斷的需求,必要的時候要通過開發原型來加以驗證。
5.必要性
每一項需求都應該是必要的,它是滿足用戶的業務需求所必需的。如果一條需求被忽略之後,系統仍然能夠解決用戶的問題,那麼它就是非必要需求,應該刪除。
6.無歧義
需求規約能夠實現共用的前提是參與軟體系統開發的各種角色能夠形成關於需求規約共同的理解。因此每一項需求都應該只能攜帶一種語義,即需求無歧義。而需求規約大多採用自然語言進行描述,這顯然將會導致規約中含有大量容易導致歧義的因素。因此,在保證需求描述的無歧義時,要格外註意需求描述中的辭彙選擇,通常在需求開發中要定義一個可以共同理解的辭彙表,然後再在其基礎上進行需求的描述。
7.可驗證
需求應該是可驗證的,即通過分析、檢查、模擬或者測試等方法能夠判斷需求是否被滿足。如果需求不可驗證,就無法判斷完成的軟體系統是否滿足了該需求,開發人員也無法選擇一個能夠實現該需求的方法。