需求驗證
需求的驗證是為了確保需求說明準確、完整,表達必要的質量特點,需求將要作為系統(tǒng)設計和最終驗證的依據(jù),因此一定要保證它的正確性。需求驗證務必確保符合完整性、正確性、靈活性、必要性、無二義性、一致性、可跟蹤性及可驗證性這些良好特征。這個活動需要完成下面幾個任務:
1、審查需求文檔,對需求文檔進行正式審查是保證軟件質量的有效的方法。組織一個由不同代表(如用戶,分析人員,設計人員,測試人員)組成的小組,對需求規(guī)格說明書及相關模型進行仔細的檢查;
2、依據(jù)需求編寫測試用例,根據(jù)用戶需求所要求的產品特性寫出系統(tǒng)的功能測試用例作為系統(tǒng)測試依據(jù);
3、編寫用戶手冊,在需求開發(fā)早期即可起草一份用戶手冊,用它作為需求規(guī)格說明的參考并輔助需求分析;
4、確定合格的標準,需求說明中描述什么樣的產品才算滿足用戶的要求和適合他們使用的,將合格的測試建立在使用情景描述或使用實例的基礎之上。
需求管理
需求管理是組織、控制和文檔化需求的系統(tǒng)方法,也是一種建立和維護用戶和開發(fā)組織對于改變系統(tǒng)功能的協(xié)議。需求開發(fā)的結果經驗證批準就定義了開發(fā)工作的需求基線,這個基線在客戶和開發(fā)人員之間就構筑了一個需求約定,需求管理包括在項目進展過程中維持需求約定一致性和精確性的活動?,F(xiàn)在很多商業(yè)化的需求管理工具都能很好的支持需求管理活動。這個活動需要完成下面幾個任務:
1、確定變更控制過程,確定一個選擇、分析和決策需求變更的過程,所有的需求變更都需遵循此流程;
2、建立軟件變更控制委員會(SCCB,Software Change Control Board),組織一個由項目風險承擔者組成的小組作為變更控制委員會,由他們來評估和確定需求變更;
3、進行變更影響分析,評估需求變更對項目進度、資源、工作量和項目范圍以及其它需求的影響;
4、跟蹤變更影響的產品,當進行某項需求變更時,參照需求跟蹤能力矩陣找到相關的其它需求、設計文檔、源代碼和測試用例,這些相關部分可能也需要修改;
5、建立基準和控制版本,需求文檔確定一個基線,這是一致性需求在特定時刻的快照,之后的需求變更就遵循變更控制過程即可;
6、維護變更的歷史記錄,記錄變更需求文檔版本的日期以及所做的變更、原因,還包括由誰負責更新和更新的新版本號等情況;
7、跟蹤每項需求的狀態(tài),這里狀態(tài)包括"確定"、"已實現(xiàn)"、"暫緩"、"新增"、"變更" 等。建立一個數(shù)據(jù)庫,其中每一條記錄記錄一項需求;
8、衡量需求穩(wěn)定性,記錄基線需求的數(shù)量和每周或每月的變更(添加、修改、刪除)數(shù)量。
需求獲取是在問題及其最終解決方案之間架設橋梁的第一步,是軟件需求過程的主體。一個項目的目的就是致力于開發(fā)正確的系統(tǒng),要做到這一點就要足夠詳細地描述需求,也就是系統(tǒng)必須達到的條件或能力,使用戶和開發(fā)人員在系統(tǒng)應該做什么,不應該做什么方面達成共識。我們都知道開發(fā)軟件系統(tǒng)最為困難的部分就是準確說明開發(fā)什么,最為困難的概念性工作便是編寫出詳細技術需求,這包括所有面向用戶、面向機器和其它軟件系統(tǒng)的接口。
獲取需求就是為了解決這些問題,它必不可少的成果就是是對項目中描述的用戶需求的普遍理解,一旦理解了需求,分析者、開發(fā)者和用戶就能探索出描述這些需求的多種解決方案。這一階段的工作一旦做錯,將最終會給系統(tǒng)帶來極大損害的部分,由于需求獲取事物造成的對需求定義的任何改動,都將導致設計、實現(xiàn)和測試上的大量返工,而這時花費的資源和時間將大大超過仔細精確獲取需求的時間和資源。