所謂需求,就是構思未來的產品,說明產品應該是什么樣的,定義開發的行動準則,并且定義產品的驗收標準。
大部分在軟件開發中遇到的問題,都是由于收集、編寫、協商、修改產品需求過程中的手續和作法(方法)失誤帶來的。
出現的問題包括:非正式信息的收集,未確定的或不明確的功能,未發現或未經溝通的假設,不完善的需求文檔,以及突發的需求變更要求。這一切都告訴我們,必須深入地研究和建立良好的需求工程方法。
需求是站在用戶的視角看問題,而設計是依據需求,站在設計人員的視角看問題。
這種視角的變化形成了分析與設計工作風格上有很大的不同。也就是說:需求專注于要做什么,而不是怎么做;設計專注于怎么做,但它的依據是需求。事實上這種工作風格的不同,本身也反映了企業降低機會成本的追求。
?
良好需求的特點
把所有的需求集成起來,就成為“需求規格說明”。從整體文檔編寫的角度上看,好的“需求規格說明”還應該具備如下特點:
完整性:不能遺漏任何必要的需求信息。注重用戶的任務而不是系統的功能將有助于你避免不完整性。
一致性:一致性是指與其它軟件需求或高層(系統,業務)需求不相矛盾。在開發前必須解決所有需求間的不一致部分。
可修改性:在必要時應維護與修訂“需求規格說明”。這就要求每項需求要獨立標出,并與別的需求區別開來。每項需求只應在“需求規格說明”中出現一次。這樣更改時易于保持一致性。
可跟蹤性:應能在每項軟件需求與它的業務和設計元素、源代碼、測試用例之間建立起準確的跟蹤關系。
對于嚴肅的工程活動而言,良好的需求不但是必須的,也是項目成功的根本保障。
?
軟件工程歷經數十年的發展,已經形成了一些行之有效的標準,比較典型的是 GJB5000A,這個標準是目標驅動的。研究標準的意義是使我們的思考有是非、有依據,更可以讓我們學會需求開發的途徑,以及明確在需求開發中需要考慮哪些問題。