1. 程式人生 > >如何寫《軟體需求規格說明書》

如何寫《軟體需求規格說明書》

轉載自:https://www.jianshu.com/p/f9bcf52f4321

一、任務突然從天而降

自己維護一個終端一年多,今天主管突然要求補寫一下《軟體需求規格說明書》,有些傻眼。自已可是一個轉行來的非正規軍程式設計師,根本沒有經驗寫過這個。沒辦法,從網上下載一個模板吧,必須標準些,沒商量!下載模板後一看,有些傻眼。模板目錄如下:

 

二、首先要理解需求

看了目錄,有些傻眼。不過很快,難不到哥,因為哥喜歡學習。經過哥一番努力研究之後,終於有些眉目了。

《軟體需求規格說明書》簡稱SRS,英語全稱懶得去查,主要是找到快捷的定義就行。SRS一般不是企業方(委託方)

所做,而是開發方(被委託方)根據企業方的非標準文字或口述資料整理所得。SRS也不僅僅是為了明確需求,更是為了協調各方(企業使用者、架構師、開發者、測試人員、部署人員)統一目標的第一個標準文件。一旦專案比較龐大,跨越多組織多部門時,這個文件就很重要,省去很多溝通上的眾多麻煩。

所謂專案前期,核心就是需求(功能)。從企業使用者而來的第一手需求,一條一條的就像列舉清單一樣,往往在邏輯上比較凌亂,開發方需要對其進行整理,整理之後便是SRS。這樣的需求列表就是專案前期的核心內容,也是SRS的主要內容。

SRS並不是列出來後,放在檔案櫃中的資料,而是不斷改進與完善的資料,是所有參與組織與部門的統一認可。如有改動,大家必須重新聚首討論。

什麼是需求,需求就是企業方對開發方的要求,必須這麼做。企業方提出的需求並非越少越好。往往企業越細心,需求越詳盡,開發方越輕鬆。

你要求的越多越詳盡,我發揮的就越少,但往往就越輕鬆。

你要求的越少越細疏,我發揮的就越多,但往往就越困難。

一個專案真正複雜不復雜,是由真實的業務需求決定的,而不是由起初的需求描述量所決定的。

零亂的需求大體有規律可尋,需求經過整理後,SRS就是如此而來。一定有些不能歸類的需求,畢竟好的軟體都有自己的概念創新,可以新增需求條目,自定義需求名稱,也可以歸入”其它需求”。還是謹記一點,不要被這些分類所束縛。大膽描述需求,需求只要能被提出來,就是需求,歸類是後期的事。

三、SRS文件解釋

1、功能需求

需求首先要滿足企業使用者的業務功能,就是與企業生產管理運營相關的功能,用來與員工、使用者、業務人員、領導進行互動的功能,有多少就列多少。這種需求是軟體開發的最原始動機。

這種需求,先描述有多少參與者,再描述每種參與者有多少功能。

 

(如果軟體為服務,則功能需求則是以介面形式服務於客戶端程式

除過功能需求外,以下需求並非個個都是可選項,根據自己軟體的特徵而定。

 

2、非功能需求類

 

2.1、安全性需求

如果系統賬號出現紕漏,為軟體參與者造成重大損失,這是最麻煩的。

還有如果系統被注入或被黑客攻入,軟體宕機,為軟體使用者造成重大損失,為運營方造成重大市場影響,這也是最可怕的。

安全性需求是運營方、運營方網管、運營人員的基本需求。

 

2.2、維護性需求

維護成本,這是運營方要考慮的問題。如果運營方有技術人員,對原始碼的標準化、文件的標準化是有要求的,為了降低維護性成本。

維護性需求是運營方技術人員的基本需求。

 

2.3、移植性需求

如果程式碼從一個平臺,移植到另一種平臺,編譯是否仍然正常,這個很重要。當公司需要二次開發或再開發時,這個就太重要了。

移植性需求是二次開發人員再開發人員的基本需求。

 

2.4、效能需求

軟體佔多少記憶體,執行速度,提交反饋速度,是否符合要求業務要求。

效能需求是執行系統、軟體使用者的基本需求。

 

2.5、執行環境需求

軟體執行系統版本的要求,執行環境,與協同軟體協同工作需求,不能與協同軟體相沖突的要求。這種需求常見於客服類軟體。

運動環境需求是執行系統、執行環境、協同軟體的需求。

 

2.6、可靠性需求

軟體得出的數字或結論,必須可靠,因為它可能被用於決策、生產或再生產。

這是生產或經營決策者、客戶端程式的需求。

 

3、外部介面需求類

 

3.1、硬體介面需求

如果軟體被要求用特定的硬體,則會要求開發方必須按照某種形式對接硬體,而且必須要達到相關效能。

硬體介面是軟體所使用硬體裝置的基本需求。(如:簡訊貓裝置、列印裝置)

 

3.2、軟體介面需求

如果軟體某個模組必須對接某個軟體介面,則會要求開發方必須按照某種規則對接此軟體,而且必須要達到相關效能。

軟體介面是協同軟體的介面需求。(如:簡訊介面、驗證碼介面)

 

 

3.3、使用者介面需求

如果軟體的輸入輸出被要求必須用某種格式的文字或檔案,或互動上有特殊要求,都可以寫在這兒。

使用者介面需求是協同系統、有匯入匯出需求使用者的基本需求。

 

3.4、通訊介面需求

如果軟體是某通訊主機的終端軟體,或是某終端軟體的服務端程式。則會對開發要求使用規定的通訊介面。

通訊介面需求是協同系統的通訊標準需求。

 

4、其它需求類

4.1、介面需求

需求可以更詳盡,有些企業使用者對介面有直接要求,而不是要求開發方先做幾版,自己挑一版。這種情況下,對開發方來說,介面需求越詳盡越好。

 

4.2、資料需求

只要專案,一般都會用到資料庫,有些開發實力較強的企業方甚至對資料庫、資料表、儲存過程等有要求。

 

5、其它

最後就是假定與約束這個概念,值得一提了。

就是需求方的強制條件限制、開發時間、經費的限制等。

遇到什麼意外,應該如何處理,資源應該如何分配的問題。



作者:劍心折手
連結:https://www.jianshu.com/p/f9bcf52f4321
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。