需求 決定了軟件做什么,要提供什么功能。 軟件工程 初期的一般過程是,軟件 開發 的計劃,確定要實現的目標和進度等,然后就是需求規格說明書,該說明書要得到用戶的認可。用戶往往提供了一份要求的說明,開發人員在這個基礎上進行了加工和整" name="description" />
MILY: 宋體">需求決定了軟件做什么,要提供什么功能。
軟件工程初期的一般過程是,軟件開發的計劃,確定要實現的目標和進度等,然后就是需求規格說明書,該說明書要得到用戶的認可。用戶往往提供了一份要求的說明,開發人員在這個基礎上進行了加工和整理。此后的開發過程,都是圍繞著需求規格說明書進行進一步地細化,直至開發出產品。當然,測試計劃中也要針對需求進行驗證,看看是否滿足了用戶的要求。
一般來說,用例視圖可以很好地表現需求。用例圖中,若干角色actor與系統提供的用例(功能)之間的連接關系。
以下是參考《IEEE推薦的軟件需求規格說明的方法(IEEE 830-1998)》的一個系統規格說明書SRS模板:
一、引言 (一) 目的 (二) 文檔約定 (三) 預期的讀者和閱讀建議 (四) 產品的范圍 (五) 參考文獻 二、綜合描述 (一) 產品的前景 (二) 產品的功能 (三) 用戶類型和特征 (四) 運行環境 (五) 設計和實現上的限制 (六) 假設和依賴 三、外部接口需求 (一) 用戶界面 (二) 硬件接口 (三) 軟件接口 (四) 通信接口 四、系統特性 (一) 說明和優先級 (二) 激勵/響應序列 (三) 功能需求 五、其它非功能需求 (一) 性能需求 (二) 安全設施需求 (三) 安全性需求 (四) 軟件質量屬性 (五) 業務規則 (六) 用戶文檔 六、其它需求 附錄A:詞匯表 附錄B:分析模型 附錄C:待確定問題的列表 |
另外,《GB9385-88 計算機軟件需求說明編制指南》也為軟件需求實踐提供了規范化的方法。
有些時候,需求的問題會變得很復雜的。尤其是在做行業軟件或者ERP的時候,你遇到不同的客戶,每個客戶都有他的想法或要求,而且有些客戶沒有明確的思路,有些則有他們很固執的思路,一時間仿佛需求是沒完沒了的?;蛟S你的軟件已經是一個產品,那么究竟對什么功能進行取舍,對什么功能要增加進軟件的核心,對什么功能采用二次開發,都是需要仔細判斷的事情。
1 需求的重復和變更
對于比較大的系統,客戶不可能一次性地把需求完全提清楚。這是必須容忍的。只要你不斷溝通和了解,用戶需求就會不斷增加。有些公司采用的方法是在需求規格說明書上讓客戶簽字,然后嚴格按照該說明書來實現。如果以后客戶有新的要求,則要另外考慮。但在另一方面,客戶永遠是上帝,一個軟件的成功,應該是用戶用得非常流暢和滿意。
2 有些需求無法實現
和客戶的溝通也很重要。什么是必須滿足的需求,而另外一些需求可能暫時不能提供實現,這也需要解釋清楚。
3 實現的功能和客戶原來提出的需求會有所差別。
很多軟件的問題最后總結下來是因為需求沒有明確。開發人員沒有認準客戶究竟需要什么。這時候只能修改軟件。
原文轉自:http://www.anti-gravitydesign.com