軟體需求設計評審須知的8大注意

2021-08-31 15:37:56 字數 3836 閱讀 5092

一、 注意對需求規格說明的正確性進行評審

需求規格說明的正確性通常可以從如下方面得以體現:

是否有需求與其他需求相互衝突或者重複?通常乙份長達幾百頁的需求規格說明書都不會是一蹴而就的,它可能是系統分析師幾個夜晚的心血之作。正是因為撰寫過程的連續性,可能導致同乙份文件中前後名詞定義不一致,前後觀點上有重疊或差異的情況出現,這需要我們在撰寫報告前首先要在思想上形成統一概念, 可使術語列表貫穿整份文件以達提綱挈領之效。

是否清晰、簡潔、無二義地表達了每個需求? 「清晰」是讓人能夠讀懂;「簡潔」是讓人願意去讀;「無二義」決定」讀」的效果,是讓大家對需求描述的理解能夠達成一致。需求陳述是「三重門」,這三扇門是否開啟決定了需求說明書的質量高低。我們尤其要拒絕「二義性」的名詞術語的出現, 似是而非的概念定義是需求書應該避免的。換句話說,如果乙份需求說明書沒能給人以清晰、簡潔和無二義的闡述,則需求評審是沒有進行下去的必要,同時也無法進行下去。需求評審的前提是使用者讀懂了需求說明,並且使用者的理解內容就是分析師們所描述的內容。

是否每個需求都通過了演示、測試、評審,分析是否得到了驗證? 需求應該是可以測試的,通常通過測試去驗證它是不是正確。比如我們完成了「銷售員客戶佣金提成規則」需求的撰寫,如果需求書未能經過原型測試通過,則需求評審是不能得到通過的。面對相當複雜的業務需求,經過測試或演示是讓使用者信任的乙個必要過程。試想一下, 如果連需求都不能很好地被確認,則開發實現階段更是沒有把握控制了。

是否每個需求都在專案的範圍內? 劃分專案範圍和區分系統邊界同樣是需求說明書的乙個任務,不要對需求書作出超範圍的論述和延伸,要知道需求書不是分析師賣弄概念、展示時尚的場所,它是軟體工程的乙個重要環節。

是否每個需求都沒有內容和語法上的錯誤?按照傳統的需求列表方式,需求像選單一樣被一條條列出來,構成需求項的主要字段包括:需求id、 需求描述、優先順序、**和狀態等。 通常需求首先要經過「拼寫檢查」,保證沒有拼寫上的問題,然後通過逐行瀏覽修改那些在內容或行文上出現問題的需求。

在現有的資源內, 是否能實現所有的需求? 需求規格說明要考慮可行性的問題。事實上,分析師的關注層面是價值驅動和成本驅動方面。分析師應該明白不是所有的需求都要去實現,一些看上去很明顯與涉及使用者有衝突的、費力不討好的需求應該果斷地捨棄。國內有專家提出,搞需求也要講「和諧」即是此中道理。

每一條特定的錯誤資訊,是否都是唯一的和具有含義的? 不要忽視錯誤資訊的定義, 它必須具有唯一性。如果過於籠統地定義錯誤資訊則和沒有定義的效果是一樣的。

二、 注意對需求規格說明的實踐性進行評審

所謂實踐性是指需求本身是否**於目前企業的相關業務規則和檔案制度,而非源於分析師們經驗主義的臆測。實踐性是判斷需求規格說明是不是理論聯絡實踐、密切和使用者聯絡的乙個關鍵性指標。如果需求規格說明和使用者實踐脫離,即使看上去寫得再天花亂墜,也會使需求說明如同無根之樹、無源之水,會大大減低使用者對需求報告本身的信任度。

有經驗的系統分析師通常會迷信自己的經驗,把從前的經驗嫁接到目前的企業需求分析中。也許由於行業性質相同,但如果不經過當前的實踐調研則給出需求,仍然會無法體現出企業自身的特徵。因而不能為企業帶來真正的價值,也會造成與使用者需求的鴻溝。

筆者也曾經「輕實踐重抽象」,我認為系統分析師的工作特點是站在具體案例上的深度抽象,前提是必須獲得本企業的一手具體業務背景、流程和規則。

我們在分析比如「任務跟蹤」之類的系統時,由於系統的抽象模型是已知的(通過大量同類軟體的分析得知),但還是需要分析師把抽象模型演繹到企業當前業務現狀。這樣的需求分析才會有「實話實說」之效,才能引發評審者的共鳴。否則,在需求評審中評審者是很難讀懂你的意圖,自然不會立即通過你的需求報告,導致需要重新返工撰寫需求報告。

三、 注意對需求規格說明的完整性進行評審

我們經常由下面的問題清單來評審需求說明書是否「完整」。

1 編寫的所有需求,其詳細程度是否一致和合適?

2 需求是否能為設計提供足夠的基礎?

3 所有對其他需求的內部引用是否正確?

4 是否包含了每個需求的實現優先順序?

5 是否定義了功能說明的內在演算法?

6 是否包含了所有已知的客戶需求或系統需求?

7 是否遺漏了必要的資訊?如果有遺漏的話,把他們標記為待確定的問題(tbd)?

8 是否對所有預期的錯誤條件所產生的系統行為都編制了文件?

需求說明的完整性主要體現在需求說明的詳細程度上,我們怎樣判斷該需求的描述是否詳細呢?我認為需求需要精化,而不是僅僅提出精化功能、物件要考慮涉眾參與者、做些什麼、需要什麼資料資訊、受什麼業務規則和條件限制、系統會有什麼響應,等等。

四、 注意對需求方案的可行性和成本預算進行評審

需求方案的可行性和成本預算也是需求評審中的兩個重要方面。需求方案的可行性和成本預算評審的目的,是從需求的多項方案中選擇最優化的或者是價效比最高的方案。一般而言,需求說明書可以給出同乙個問題的幾種方案,並給出各自的優缺點和成本差異,經過比較由決策者作出最終選擇。當我們理解了需求說明,我們下一步需要對其分析是否有可行性。如果可行性高,則還要考慮它需要哪些資源和預算。我們需要確定技術是否確實滿足業務需求,同時, 也要考慮整個產品成本,包括開發人員、伺服器、許可和公升級費用,還需要考慮初始硬體、軟體和支援、基礎結構和培訓的費用。

五、 注意對需求的質量屬性進行評審

我們需要評審需求規格說明是否合理地確定了所有的效能目標,是否合理地確定了安全性方面要考慮到的問題。系統效能需求之所以在概念階段即被要求,是因為現實的教訓。君不見很多功能已經完善的系統因為效能上不達標,而被使用者束之高閣——使用者通常難以忍受執行或響應速度過慢的系統。

系統的安全性也是乙個很重要的指標,尤其是作為企業級的系統,它的安全考量完全繼承於組織對安全的基本訴求 。除了功能許可權、字段級別許可權外,資料間的授權關係也是必須考慮的,這本身也是一種業務規則。在「商機管理系統」需求分析中,「業務員a不能夠檢視業務員b下達的訂單或相關資訊」。所以,諸如此類的安全性需求在需求規格說明中是否被完整的描述,也是需求評審過程的乙個硬性指標。總的說來,安全性包含了身份驗證、訪問控制、加密和審核等考慮事項。

六、 注意對需求的可實施性進行評審

是否對每個需求都設定了惟一性並且可以正確地識別它?是否每個功能需求都可以跟蹤到高層需求(比如系統需求或用例)?

需求必須可以測試,每個需求在特定的輸入條件下應當能給出已知的輸出結果。同時,需求應當層次分明,需要把單個需求下面的相關需求綜合在一起形成一組需求功能。

需求的可實施性除了可跟蹤性還包括可測試性。事實上, 分析人員和測試人員在編寫**以前把需求模型,分析模型和測試用例綜合起來通盤考慮,檢查出遺漏的、錯誤的和不必要的需求。軟體需求在概念上的測試是一種很必要的技術,它可以在專案早期階段發現需求的歧義和錯誤。

七、 注意對需求包含的用例文件進行評審

用例是參與者對系統和參與者的互動過程所達成的一種契約。需求說明書基於用例的分析方法是也是當前較為流行的需求開發方式。用例文件作為需求重要的成果性文件也是需求評審主體之所在。需求評審確認的重點是對關鍵使用者的最常用和最重要的用例進行深入和細緻的評審,首先要通過測試用例的主幹過程。

八、 注意需求評審會的過程和結束標準

通常,需求評審會都不是件容易的事情,業務審查人員分散在各個地域和時間上的不一致性是困難產生的所在。在很多情況下,我們可以使用分布式需求評審軟體從網路上對需求文件進行預先評審,而在評審會中則要注意不要使評審會演變成了「業務會」或「技術研討會」。同時,需求評審會的結果是對需求規格書完成了評審過程,那我們又如何判斷審查的結束標準呢?請看如下幾條建議:

1、審查期間評審員們提出的所有問題都已經解決。

2、相關文件中的所有更改都已經正確完成。

3、修訂過的文件進行了拼寫檢查。

4、所有標識為tbd(待確定)的問題已經全部解決, 或者已經對每個tbd的問題的解決過程、計畫解決的目標日期和責任解決人等編制了文件。

5、需求文件正式進入了配置庫。

設計專業每日必看的8大設計部落格

設計專業每日必看的8大設計部落格 1 創意酷 全球創意產品設計發布站!推薦理由 發展較快,創意產品資源豐富,對所發布產品有詳細介紹。2 奇趣發現 等你來發現!3 i d 公 社 發現有意味的設計 推薦理由 相信很多人都知道這個部落格,但目前更新較慢,更偏向於對設計理念的 4 engadget中國版 ...

說說ERP軟體的系統設計 開源軟體誕生8

用日誌記錄 開源軟體 的誕生 點亮星標,感謝支援,與開發者交流 kzca2000 碼雲 github 赤龍erp官網 筆者是軟體專業出身,學了好多的理論知識,但我總結就是理論過於枯燥,而且在實戰中基本用不上。所以今天就來說說我是如何學習系統設計的。還記得我剛剛畢業,第一次面對要獨立做乙個系統或 時的...

開發者應注意的8大問題

以下回答僅本人粗淺理解.1.net底層基礎較差,不知道堆和棧,裝箱和拆箱的比比皆是。首先,清楚值型別和引用型別 2.t sql基礎差,竟然有些同學談到多表連線,臨時表和表變數的時候就暈了,還有些連varchar和nvarchar的區別也分不清。關於inner join left join right...