軟體需求說明書
06-17
1 引言 提出對軟體需求規格說明的縱覽,幫助讀者理解該文檔是如何編寫並且如何閱讀和解釋。 1.1 目的 對產品進行定義,在該文檔中詳盡說明這個產品的軟體需求,包括修正或發行版本號。如果這個軟體需求規格說明只與整個系統的一部分有關係,那麼就只定義文檔中說明的部分或子系統。 1.2 文檔約定 描述編寫文檔時所採用的標準或排版約定,包括正文風格、提示區或重要符號。例如,說明高層需求的優先順序是否可以被其所有細化的需求所繼承,或者每個需求陳述是否都有其自身的優先順序。 1.3 預期的讀者和閱讀建議 列舉了軟體需求規格說明所針對的不同讀者。例如開發人員、項目經理、營銷人員、用戶、測試人員或文檔編寫人員。描述了文檔中剩餘部分的內容及其組織結構。提出了最適合於每一類型讀者閱讀文檔的建議。 1.4 產品的範圍 提供了對指定的軟體及其項目的簡短描述,包括利益和目標。把軟體與企業目標或業務策略相聯繫。可以參考項目視圖和範圍文檔而不是將其內容複製到這裡 。 1.5 參考文獻 列舉了編寫軟體需求規格說明時所參考的資料或其他資源。可能包括用戶界面風格指導、合同、標準、系統需求規格說明、使用實例文檔,或相關產品的軟體需求規格說明,在這裡應該給出詳細的信息,包括標題的名稱、作者、版本號、日期、出版單位或資料來源,以方便讀者查閱這些文獻。 2 綜合描述 概述了正在定義的產品以及它所運行的環境、使用產品的用戶和已知的限制、假設和依賴。 2.1 產品的前景 描述了軟體需求規格說明中所定義的產品的背景和起源。說明了該產品是否是產品系列中的下一成員,是否是成熟產品所改進的下一代產品、是否是現有應用程序的替代品,或者是否是一個新型的、自含型產品。如果軟體需求規格說明定義了大系統的一個組成部分,那麼就要說明這部分軟體是怎樣與整個系統相關聯的,並且要定義出兩者之間的介面。 2.2 產品的功能 概述了產品所具有的主要功能。其詳細內容將在第4節中描述,所以在此只需要概括地總結。例如用列表的方法給出,很好的組織產品的功能,使每個讀者都易於理解。用圖形表示主要的需求分組以及他們之間的聯繫,例如數據流程圖的頂層圖或類圖,都是有用的。 2.3 用戶類和特徵 確定可能使用該產品的不同用戶類並描述他們相關的特徵。有一些需求可能只與特定的用戶類相關。將該產品的重要用戶類與那些不太重要的用戶類區分開。 2.4 運行環境 描述了軟體的運行環境,包括硬體平台、操作系統和版本,還有其他的軟體組件或與其共存的應用程序。 2.5 設計和實現上的限制 確定影響開發人員自由選擇的問題,並說明這些問題為什麼成為一種限制。可能的限制包括以下內容: l 必須使用或者避免的特定技術、工具、編程語言和資料庫。 l 所要求的開發規範或標準(例如,如果有客戶的公司負責軟體維護,就必須定義轉包者所使用的設計符號表示和編碼標準。 l 企業策略、政府法規或工業標準。 l 硬體限制,例如定時需求或存儲器限制。 l 數據轉換格式標準。 2.6 假設和依賴 列舉出在對軟體需求規格說明中影響需求陳述的假設因素(與已知因素相對立)。可能包括打算要用的商業組件或有關開發或運行環境的問題。你可能認為產品將符合一個特殊的用戶界面設計約定,但是另一個SRS讀者卻可能不這樣認為。如果這些假設不正確、不一致或被更改,就會使項目受到影響。 此外,確定項目對外部因素存在的依賴。例如,如果你打算把其他項目開發集成到系統中,那麼你就要依賴那個項目按時提供正確的操作組件。如果這些依賴已經記錄到其他文檔(例如項目計劃)中了,那麼在此就可以參考其他文檔。 3 外部介面需求 本節確定可以保證新產品與外部組件正確連接的需求。關聯圖表示了高層抽象的外部介面。需要把對介面數據和控制組件的詳細描述寫入數據字典中。如果產品的不通部分有不同的外部介面,那麼應該把這些外部介面的詳細需求併入到這一部分的實例中。 3.1 用戶界面 陳述所需要的用戶界面的軟體組件。描述每個用戶界面的邏輯特徵。以下是可能要包括的一些特徵: l 將要採用的圖形用戶界面(GUI)標準或產品系列的風格 l 屏幕布局或解決方案的限制 l 將出現在每個屏幕的按鈕、功能或導航鏈結(例如一個幫助按鈕)。 l 快捷鍵 l 錯誤信息顯示標準 對於用戶界面的細節,例如特定對話框的布局,應該寫入一個獨立的用戶界面規格說 明中,而不能寫入軟體需求規格說明中。 3.2 硬體介面 描述系統中軟體和硬體每一介面的特徵。這種描述可能包括支持的硬體類型、軟硬體之間交流的數據和控制信息的性質以及所使用的通信協議。 3.3 軟體介面 描述該產品與其他外部組件(由名字和版本識別)的連接,包括資料庫、操作系統、工具、庫和集成的商業組件。明確並描述在軟體組件之間交換數據或消息的目的。描述所需要的服務以及內部組件通信的性質。確定將在組件之間共享的數據。如果必須用一種特殊的方法來實現數據共享機制,例如在多任務操作系統中的一個全局數據區,那麼就必須把它定義為一種實現上的限制。 3.4 通信介面 描述與產品所使用的通信功能相關的需求,包括電子郵件、Web瀏覽器、網路通信標準或協議及電子表格等等。定義了相關的消息格式。規定通信安全或加密問題、數據傳輸速率和同步通信機制。 4 系統特性 在模板中,功能需求是根據系統特性即產品所提供的主要服務來組織的。你可能更喜歡通過使用實例、運行模式、用戶類、對象類或功能等級來組織這部分內容(IEEE1998)。你還可以使用這些元素的組合。總而言之,你必須選擇一種使讀者易於理解預期產品的組織方案。 僅用簡短的語句說明特性的名稱,例如「4.1拼寫檢查和拼寫字典管理」。無論你想說明何種特性,闡述每種特性時都將重複從4.1到4.3這三步系統特性。 4.1 說明和優先順序 提出了對該系統特性的簡短說明並指出該特性的優先順序是高、中,還是低。或者你還可以包括對特定優先順序部分的評價,例如利益、損失、費用或風險,其相對優先等級還可以從1(低)到9(高)。 4.2 激勵/響應序列 列出輸入激勵(用戶動作、來自外部設備的信號或其他觸發器)和定義這一特性行為的系統響應序列。這些序列將與使用實例相關的對話元素相對應。 4.3 功能需求 詳列出於該特性相關的詳細功能需求。這些是必須提交給用戶的軟體功能,使用戶可以使用所提供的特性執行服務或者使用所指定的使用實例執行任務。描述產品如何響應可預知的出錯條件或者非法輸入或動作。必須唯一地標示每一個需求。 5 非功能需求 列舉出所有非功能需求,而不是外部介面需求和限制。 5.1 性能需求 闡述了不同的應用領域對產品性能的需求,並解釋它們的原理以幫助開發人員做出合理的設計選擇。確定相互合作的用戶數或者所支持的操作、響應時間以及與實時系統的時間關係。你還可以在這裡定義容量需求,例如存儲器和磁碟空間的需求或者存儲在資料庫中表中的最大行數。儘可能詳細地確定性能需求。可能需要針對每個功能需求或特性分別陳述其性能需求,而不是把它們都集中在一起陳述。例如,「在運行微軟Windows 2000的450 MhzPentium II的計算機上,當系統至少有50%的空閑資源時,95%的目錄數據苦查詢必須在兩秒內完成」。 5.2 安全設施需求 詳盡陳述與產品使用過程中可能發生的損失、破壞或危害相關的需求。定義必須採取的安全保護或動作,還有那些預防的潛在的危險動作。明確產品必須遵從的安全標準、策略或規則。一個安全設施需求的範例如下:「如果油箱的壓力超過了規定的最大壓力的95%,那麼必須在1秒中內終止操作」。 5.3 安全性需求 詳盡陳述與系統安全性、完整性或與私人問題相關的需求,這些問題將會影響到產品的使用和產品所創建或使用的數據的保護。定義用戶身份確認或授權需求。明確產品必須滿足的安全性或保密性策略。你可能更喜歡通過稱為完整性的質量屬性來闡述這些需求,。一個軟體系統的安全性需求的範例如下:「每個用戶在第一次登錄後,必須更改他的最初登錄密碼。最初的登錄密碼不能重用。」 5.4 軟體質量屬性 詳盡陳述與客戶或開發人員至關重要的其他產品質量特性。這些特性必須是確定、定量的並在可能時是可驗證的。至少應指明不通屬性的相對側重點。例如易用程度優於易學程度,或者可移植性優於有效性。 5.5 業務規則 列舉出有關產品的所有操作規則,例如什麼人在特定的環境下可以進行何種操作。這些本身不是功能需求,但它們可以暗示某些功能需求執行這些規則。一個業務規則的範例如下:「只有持有管理員密碼的用戶才能執行¥100.00或更大額的退款操作。」 5.6 用戶文檔 列舉出將與軟體一同發行的用戶文檔部分。例如,用戶手冊、在線幫助和教程。明確所有已知的用戶文檔的交付格式或標準。 6 其他需求 定義在軟體需求規格說明的其他部分未出現的需求,例如國際化需求或法律上的需求。還可以增加有關操作、管理和維護部分來完善產品安裝、配置、啟動和關閉、修復和容錯,以及登錄和監控操作等方面的需求。在模板中加入與你相關的新部分。如果你不需要增加其它需求,就省略這一部分。 附錄A:辭彙表 定義所有必要的術語,以便讀者可以正確地解釋軟體需求規格說明,包括詞頭和縮寫。可能希望為整個公司創建一張跨多項項目的辭彙表,並且只包括特定於單一項目的軟體需求規格說明中的術語。 附錄B: 分析模型 這個可選部分包括後涉及到相關的分析模型的位置,例如數據流程圖、類圖、狀態轉換圖或實體……關係圖。 附錄C:待確定問題的列表 編輯一張在軟體需求規格說明中待確定的問題的列表,其中每一表項都是編上號的,以便於跟蹤調查。
推薦閱讀:
推薦閱讀:
※如何挑逗男人的生理需求
※女人出軌,都是為了滿足哪些需求?
※喜歡被感動,需要被感動,我怎麼了?
※為什麼用研總是感覺無用(下)
※年度5萬美元購匯額度能滿足個人用匯需求