求研發(fā)可進一步分為:問題獲取、分析、編寫規(guī)格說明和驗證四個階段。這些子項包括軟件類產(chǎn)品中需求收集、評價、編寫文件等所有活動。需求研發(fā)活動包括以下幾個方面:
確定產(chǎn)品所期望的用戶類別。
獲取每個用戶類的需求。
了解實際用戶任務(wù)和目標及這些任務(wù)所支持的業(yè)務(wù)需求。
分析源于用戶的信息以差別用戶任務(wù)需求、功能需求、業(yè)務(wù)規(guī)則、質(zhì)量屬性、建議解決方法和附加信息。
將系統(tǒng)級的需求分為幾個子系統(tǒng),并將需求中的一部份分配給軟件組件。
了解相關(guān)質(zhì)量屬性的重要性。
商討實施優(yōu)先級的劃分。
將所收集的用戶需求編寫成文件和模型。
評審需求規(guī)格說明,確保對用戶需求達到一起的理解和認識,并在整個研發(fā)小組接受說明之前將問題都弄清晰。
需求管理需要“建立并維護在軟件工程中同客戶達成的合同” 。這種合同都包含在編寫的需求文件和模型中??蛻舻慕邮軆H是需求成功的一半,研發(fā)人員也必須能夠接受他們,并真正把需求應(yīng)用到產(chǎn)品中。通常的需求管理活動包括:
定義需求基線(迅速制定需求文件的主體)。
評審提出的需求變更、評估每項變更的可能影響從而決定是否實施他。
以一種可控制的方式將需求變更融入到項目中。
使當(dāng)前的項目計劃和需求一致。
估計變更需求所產(chǎn)生影響并在此基礎(chǔ)上協(xié)商新的承諾,這種承諾具體體目前項目解決方案上。
讓每項需求都能和其對應(yīng)的設(shè)計、原始碼和測試用例聯(lián)系起來以實現(xiàn)跟蹤。
在整個項目過程中跟蹤需求狀態(tài)及其變更情況。
以上幾點說明是我總結(jié)了成功實施項目后系統(tǒng)分析人員的經(jīng)驗,同時也根據(jù)國內(nèi)外的其他系統(tǒng)實施的相關(guān)成功經(jīng)驗,進行了總結(jié)。
四.需求的類型
這些定義是需求工程領(lǐng)域中常見術(shù)語的定義。
軟件需求包括三個不同的層次:業(yè)務(wù)需求、用戶需求和功能需求(也包括非功能需求)。
1.業(yè)務(wù)需求(business requirement)反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標需求,他們在項目視圖和范圍文件中予以說明。
2.用戶需求(user requirement) 文件描述了用戶使用產(chǎn)品必須要完成的任務(wù),這在使用實例(use case)文件或方案腳本說明中予以說明。
3.功能需求(functional requirement)定義了研發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足了業(yè)務(wù)需求。
在軟件需求規(guī)格說明書 (SRS)中說明的功能需求充分描述了軟件系統(tǒng)所應(yīng)具有的外部行為。軟件需求規(guī)格說明在研發(fā)、測試、質(zhì)量確保、項目管理及相關(guān)項目功能中都起了重要的作用。對一個大型系統(tǒng)來說,軟件功能需求也許只是系統(tǒng)需求的一個子集,因為另外一些可能屬于子系統(tǒng)(或軟件部件)。
作為功能需求的補充,軟件需求規(guī)格說明還應(yīng)包括非功能需求,他描述了系統(tǒng)展現(xiàn)給用戶的行為和執(zhí)行的操作等。他包括產(chǎn)品必須遵從的標準、規(guī)范和合約;外部界面的具體細節(jié);性能需求;設(shè)計或?qū)崿F(xiàn)的約束條件及質(zhì)量屬性。所謂約束是指對研發(fā)人員在軟件產(chǎn)品設(shè)計和構(gòu)造上的限制。質(zhì)量屬性是通過多種角度對產(chǎn)品的特點進行描述,從而反映產(chǎn)品功能。多角度描述產(chǎn)品對用戶和研發(fā)人員都極為重要。
下面以一個字處理程式為例來說明需求的不同種類。業(yè)務(wù)需求可能是:“用戶能有效地糾正文件中的拼寫錯誤”,該產(chǎn)品的包裝盒封面上可能會標明這是個滿足業(yè)務(wù)需求的拼寫檢查器。而對應(yīng)的用戶需求可能是“找出文件中的拼寫錯誤并通過一個提供的替換項列表來供選擇替換拼錯的詞”。同時,該拼寫檢查器更有許多功能需求,如找到并高亮度提示錯詞的操作;顯示提供替換詞的對話框及實現(xiàn)整個文件范圍的替換。
從以上定義能發(fā)現(xiàn),需求并未包括設(shè)計細節(jié)、實現(xiàn)細節(jié)、項目計劃信息或測試信息。需求和這些沒有關(guān)系,他關(guān)注的是充分說明你究竟想研發(fā)什么。項目也有其他方面的需求,如研發(fā)環(huán)境需求或發(fā)布產(chǎn)品及移植到支撐環(huán)境的需求。盡管這些需求對項目成功也至關(guān)重要,但他們并非本書所要討論的。