第一章 需求概述
1.需求問題的提出
五個與需求有關的敗因描述
(1)不完整的需求,未能讓不同需求層次的人參與進來
(2)缺乏用戶參與
(3)不切實際的用戶期望,客戶不懂技術,有些需求目前技術是無法實現的
(4)需求變更頻繁,用戶忽略了變更需求對軟件項目的負面影響
(5)提供了不再需要的需求
2.不同的項目具有不同的特點,不同的項目有不同的需求視圖
3.軟件需求的定義
(1)軟件需求的特性
完整性。完整性是指需求無遺漏,在實際開發過程中,不同層次的人的需求是不同的。在驗證需求完整性的過程中,需要采用分層評審的方式,不同層次的人負責評審與自己相關的需求。高層負責主題域的劃分。
正確性。只有用戶代表才能確定用戶需求的正確性。
無歧義性。加強需求驗證,加強對需求文檔的正規審查,編寫測試用例,開發原型以及設定特定的方案腳本。
可行性。評估技術可行性
有優先級。從業務、技術開發、項目管理三個角度
必要性。每一項需求都應把客戶所需要的和最終系統所需遵循的標準記錄下來,它是對優先級別的一種補充。
可驗證性。檢查每項需求能否通過測試用例或其他的驗證方法。
4.需求定義的實踐
問題定義五步
(1)在問題定義上達成共識
(2)分析問題背後的文字
(3)確定相關人員和用戶
(4)定義解決方案的界限
(5)確定加在解決方案上的約束
5.需求的層次和分類
(1)軟件需求包括三個層次,分別是業務需求、用戶需求、功能需求
業務需求:代表支付、采購或投資軟件產品的一方提出的業務需求,怎樣為他們帶來更大的效益
用戶需求:使用此軟件產品的人員對軟件的要求,用戶需要使用軟件做什麽
功能需求:軟件產品需要實現的功能
(2)軟件需求的分類,可分為功能需求、非功能需求和設計約束
功能需求:開發人員必須實現的軟件功能,使用戶能完成他們的任務。從而滿足業務需求。
非功能需求:非功能需求是客戶對軟件的質量的期望。例如。在外賣平臺的送餐業務中,點餐的人希望半小時送到,在軟件設計方面已經實現,但在實際的送餐過程中,存在著許多問題,送餐小哥臨時有急事。天氣不好,地址填寫不清晰等,導致用戶的需求無法得到滿足
設計約束:非技術類型的技術選型,預期的軟硬件環境和預期的使用環境
6.需求在總體方案中的位置
需求分析為軟件的開發起到了決策的作用,提供了開發的方向,並指明了開發的策略,在軟件開發及維護中均起到了舉足輕重的作用。
第一章 需求概述