2·8把握需求評審的關鍵點
(1)注意對軟件需求說明書的正確性進行評審。需求規(guī)格說明的正確性通??梢詮娜缦路矫娴靡泽w現(xiàn):
①是否有需求與其他需求相互沖突或者重復?
?、谑欠袂逦?、簡潔、無二義地表達了每個需求(“清晰”是讓人能夠讀懂;“簡潔”是讓人愿意去讀;“無二義”決定“讀”的效果,是讓大家對需求描述的理解能夠達成一致)?
?、凼欠衩總€需求都通過了演示、測試、評審,分析是否得到了驗證?
?、苁欠衩總€需求都在項目的范圍內(nèi)?
?、菔欠衩總€需求都沒有內(nèi)容和語法上的錯誤?
?、拊诂F(xiàn)有的資源內(nèi),是否能實現(xiàn)所有的需求?
?、呙恳粭l特定的錯誤信息,是否都是唯一的和具有含義的?
(2)注意對軟件需求說明書的實踐性進行評審。所謂實踐性是指需求本身是否來源于目前企業(yè)的相關業(yè)務規(guī)則和文件制度,而非源于分析師們經(jīng)驗主義的臆測。實踐性是判斷需求規(guī)格說明是不是理論聯(lián)系實踐、密切和用戶聯(lián)系的一個關鍵性指標。
(3)注意對需求規(guī)格說明書的完整性進行評審。可由下面的問題清單來評審需求說明書是否“完整”:
?、倬帉懙乃行枨?其詳細程度是否一致和合適?
②需求是否能為設計提供足夠的基礎?
?、鬯袑ζ渌枨蟮膬?nèi)部引用是否正確?
?、苁欠癜嗣總€需求的實現(xiàn)優(yōu)先級?
?、菔欠穸x了功能說明的內(nèi)在算法?
⑥是否包含了所有已知的客戶需求或系統(tǒng)需求?
?、呤欠襁z漏了必要的信息?⑧是否對所有預期的錯誤條件所產(chǎn)生的系統(tǒng)行為都編制了文檔?
需求說明的完整性主要體現(xiàn)在需求說明的詳細程度上,怎樣判斷該需求的描述是否詳細呢?筆者認為需求需要精化,而不是僅僅提出精化功能、對象要考慮涉眾參與者、做些什么、需要什么數(shù)據(jù)信息、受什么業(yè)務規(guī)則和條件限制、系統(tǒng)會有什么響應等。
(4)注意對需求方案的可行性和成本預算進行評審。
(5)注意對需求的質量屬性進行評審。評審需求規(guī)格需要說明是否合理地確定了所有的性能目標,是否合理地確定了安全性方面要考慮到的問題。
(6)注意對需求的可實施性進行評審:
?、偈欠駥γ總€需求都設置了唯一性并且可以正確地識別它?
②是否每個功能需求都可以跟蹤到高層需求?
需求必須可以測試,每個需求在特定的輸入條件下應當能給出已知的輸出結果,同時,需求應當層次分明,需要把單個需求下面的相關需求綜合在一起形成一組需求功能。需求的可實施性除了可跟蹤性還包括可測試性,事實上,分析人員和測試人員在編寫代碼以前把需求模型,分析模型和測試用例綜合起來通盤考慮,檢查出遺漏的、錯誤的和不必要的需求,軟件需求在概念上的測試是一種很必要的技術,它可以在項目早期階段發(fā)現(xiàn)需求的歧義和錯誤。
(7)注意對需求包含的用例文檔進行評審。用例是參與者對系統(tǒng)和參與者的交互過程所達成的一種契約。需求說明書基于用例的分析方法是也是當前較為流行的需求開發(fā)方式。用例文檔作為需求重要的成果性文檔也是需求評審主體之所在。
需求評審確認的重點是對關鍵用戶的最常用和最重要的用例進行深入和細致的評審,首先要通過測試用例的主干過程。而是否撰寫有效的用例則要從以下方面著手評審:用例的目標或價值度量是否明確?用例是否是獨立的分散任務?
是否明確說明可用用例會給哪些參與者帶來用處?編寫用例的詳細程度是否恰當?是否有不必要的設計和實現(xiàn)細節(jié)?所有預期的分支過程是否都編寫了文檔說明?所有預估的異常過程是否都編寫了文檔說明?是否存在一些普通的動