### 軟件需求說明書
軟件需求說明書(SRS,Software Requirements Specification)
[TOC]
#### 1. 什么是軟件需求說明書
軟件需求說明書是需求分析階段的最后成果,是軟件開發中的重要文檔之一。軟件需求說明書是作為需求分析的一部分而制定的可交付文檔,該說明把在軟件計劃中確定的軟件范圍加以展開,制定出完整的信息描述、詳細的功能說明、恰當的檢驗標準以及其他與要求有關的數據。
#### 2. 軟件需求說明書的作用
軟件需求說明書主要有以下三個作用:
口 作為用戶和軟件人員之間的共同文件,為雙方相互了解提供基礎。
口 反映出用戶問題的結構,可以作為軟件人員進行設計和編碼的基礎。
口 作為驗收的依據,即作為選取測試用例和進行形式驗證的依據。
軟件需求說明書是一份在軟件生命周期中至關重要的文件,它在開發早期就為尚未誕生的軟件系統建立了一個可見的邏輯模型,它是確保系統質量的有力措施,可以保證開發工作的/頃利進行。因而應及時地建立并保證它的質量。
作為設計基礎和驗收依據,需求說明書應該是精確而無二義性的。需求說明書越精確,以后出現錯誤、混淆、反復的可能性越小。用戶能看懂需求說明書,并且發現和指出其中的錯誤是保證軟件系統質量的關鍵,因而需求說明書必須簡明易懂,盡量不包含計算機的概念和術語,以便用戶和軟件人員雙方都能接受它。
由于在一個企業組織中各部門的用戶可能提出相互沖突的要求,在分析階段必須協調和解決這些沖突,因而在需求說明書中的表達應該是一致的、無矛盾的用戶要求。
在軟件生命周期中,軟件錯誤發現得越早,糾正的代價就越小。所以需求說明書編寫完成后,應該組織用戶和一些專家反復對其作檢驗和復查,爭取盡早發現錯誤并及時糾正,以免到系統后期改正錯誤時付出巨大代價。
#### 3. 軟件需求說明書注意要點:
需求說明書要符合以下原則。
1. 明確性:需求敘述的讀者應只能從其得到唯一的解釋說明,同樣,一個需求的多個讀者也應達成共識。每寫一個需求都應簡潔、簡單、直觀地采用用戶熟知的語言,每個需求必須精確描述要交付的功能。
2. 可行性:在已知的能力、有限的系統及其環境中每個需求必須是可實現的。為了避免需求的不可行性,在需求分析階段應該有一個開發人員參與,在抽象階段應該有市場人員參與。
3. 必要性:每個需求應載明什么是客戶確實需要的,每個需求都有原始出處。
4. 完整性:不應該遺漏要求和必需的信息。完整性也是一個需求應具備的。
5. 一致性:一致性需求就是不要與其他系統發生沖突。需求中的不一致必須在開發開始前得到解決。只有經過調研才能確定哪些是正確的。修改需求時一定要謹慎,如果只審定修改的部分,沒有審定于修改相關的部分,就可能導致不一致性。