什麼是軟體需求呢?為什麼它需要管理呢?
軟體需求完全嚴格來解釋就是:
(1) 使用者解決問題或達到目標所需條件或權能(capability)。
(2) 系統或系統部件要滿足合同、標準、規範或其它正式規定文件所需具有的條件或權能。
(3) 一種反映上面(1)或(2)所述條件或權能的文件說明
也許看起來有點深奧,其實簡單來說,軟體需求就是乙個軟體要實現的功能,當然這裡所謂的「功能」可能分為兩種情況,一種是有形的,一種是無形的:
當然,其實最終所有「無形」的需求還是需要靠乙個個的「有形」的需求來實現,只是有些「有形「的需求即使實現了客戶也無法直接看到,只有設計、開發與測試才能看到它們。
那為什麼要對需求進行管理呢?
軟體需求是隨著計算機的發展而發展的,在計算機發展早期,軟體規模很小,所以當時大家關注的是編碼,而對於需求並不怎麼關注,後來隨著「軟體危機」的出現,誕生了軟體工程,而需求階段就是其第一階段,至此,軟體需求(也稱之為需求分析)階段開始慢慢被關注。
大家都知道,「軟體危機」的原因是落後的軟體生產方式無法滿足迅速增長的計算機軟體需求,軟體系統的規模越來越大,複雜程度越來越高,軟體可靠性問題也越來越突出,原來的個人設計、個人使用的方式不再能滿足要求,迫切需要改變軟體生產方式,提高軟體生產率,軟體危機開始爆發。
而軟體需求分析階段作為軟體工程的第一階段,需要為乙個軟體的開發搭好最初的框架並且還要考慮好後面可能的修改,所以對於軟體可靠性、易用性、可擴充套件性和可維護性來說,需求分析階段是及其重要的,直接關係到乙個軟體是否能夠成功。
如果乙個產品在需求分析階段沒有被設計好的話,在以後的各個階段,開發與維護的成本就會非常高,導致最後失敗的可能性就會非常大,著名的例子比如微軟的vista,設計初期沒有考慮好相容性與硬體,導致發布以後發現與其他軟體的相容性很差,而且硬體要求又很高,很多客戶不買他們的賬,所以最後匆匆收場,趕緊推出windows 7來,要知道vista的開發成本估計要接近百億美金了,都還沒怎麼賺錢就趕緊推出另外乙個產品,足見其失敗了。
所以軟體需求分析階段對於軟體工程而言,已經成為至關重要的階段,其實按照我的理解,它已經成為軟體工程最重要的階段,記住,不是之一。(當然,我這裡說的需求分析階段是包含軟體的設計階段的)
乙個軟體的成功與否,在需求分析與設計階段已經可以基本上預見了,因為需求分析與設計階段從概念上其實已經把這個產品做出來了,而之後的編碼階段只是去實現它,讓產品能真正可以去用。那這個「實現」階段其實相對來說就不會那麼重要了,所以現在很多跨國公司只在總部保留設計部門,研發部門都外包出去,就是這個原因。 「蘋果」就是這樣乙個公司,把需求分析與設計工作做好,讓台灣人去把產品做出來,最後得到乙個完美的產品。
既然軟體需求階段已經變成如此重要,那對它的管理也就相應的變得特別重要了,只有把需求設計做好了,產品才有可能成功,所以我們就需要對這個階段進行有效的管理,而且是非常有效的管理!
(未完待續)
文章出處:
如何有效實現軟體的需求管理(7)
如何有效實現軟體的需求管理 7 本篇為 如何有效實現軟體的需求管理 第七篇,第一篇,第二篇,第三篇,第四篇,第五篇,第六篇 版本控制 在我們公司的實際需求管理中,需求的版本控制用的地方非常多,比如 第一,因為乙個需求從獲取到最終能拿去開發,中間也需要經歷非常多次的改動。既然有改動,就肯定也會出現類似...
如何有效實現軟體的需求管理(3)
本篇為 如何有效實現軟體的需求管理 第三篇,第一篇,第二篇 第二階段 需求分析與設計 怎麼去做 既然需求已經獲取了,也就是說客戶已經跟我們說了要做什麼或者我們自己想出來的一些需要做的功能,好了,那現在就真正開始進入需求管理階段了。首先就是需求分析階段了,所謂的需求分析,簡單點來說就是把獲取的需求分析...
產品經理如何有效進行產品需求管理
需求是整個軟體專案當中最重要一項輸入。軟體開發和傳統生產行業最大的區別在於,需求總是模糊的 主觀的和隨時變化的。相對於電子產品 汽車等製造行業有形的硬體需求,軟體開發的需求的描述和驗收是個難以解決的問題。但是需求又是整個專案能否成功的決定性因素,所以我們必須對需求進行管理,從而使需求成為整個軟體工程...