第一章 軟體需求規格書
前言
介紹將要建置之系統。
(1)文件目的
摘要描述本文件之目的與內容。
(2)現有系統
簡單介紹目前系統,如果沒有則省略。
(3)現有系統的限制
列出現有系統的限制,而準備開發標的系統解決之。
(4)名詞解釋與縮寫符號(B、C)
描述在軟體需求規格書中所使用到的特殊名詞、縮寫符號與簡稱。定義用字需解釋清楚、縮寫符號則需說明全文及其意義。
(5)參考文件資料(B、C)
參考資料項目為一般國際標準文件所必需,記載軟體需求規格書中所參考引用之文獻範例、參考的文件清單、名稱、標號、出版日期、出版商等。
2、標的軟體系統摘述
綜觀簡介標的軟體系統的範圍、架構、適用之軟硬體環境及使用者等,特別是其目的與效益。
(1)整體系統概述
從需求面說明此系統軟體的範圍、架構、適用之環境及未來的使用者等。
(2)系統操作環境平台
描述未來使用者使用時應具備何種操作環境,例如,硬體、軟體、及網路環境等。 A.硬體 說明本軟體未來執行時應具備那些硬體配備,例如,何種等級電腦設備、處理器、記憶體及I/O規格等。 B.軟體 說明本軟體未來執行時應具備那種軟體配備,例如,何種作業系統、外掛軟體與其版本及程式語言等。 C.網路 說明本軟體未來執行時必備的網路設備,例如,採用什麼特殊的網路規格,上、下行速度,中繼器、路由器、交換器、匣道器品牌型號及規格,網路卡規格等。
(3)使用者作業活動
說明使用者操作此系統時,會有那些作業活動,例如,某文字編輯軟體有開新檔案/開啟舊檔/儲存檔案/另存新檔/關閉檔案/列印/編輯/線上說明/版本說明等作業活動。
(4)遵循及參考標準(B、C)
記載軟體開發團隊應該遵循的相關標準規定(Standards Requirements),例如,Coding Style,但其真正的標準內容則可界定在不同的文件中。
(5)驗收前應準備之文件
說明將來軟體系統驗收前應準備的文件,例如,軟體測試計畫書、測試案例清單等,並以英文字母順序排列。
3、分項功能需求
(1)功能需求
A.各項功能描述及目標 明確列出軟體的各項功能、設定與目標,其中若有某一項功能需再細分成若干細部功能,亦需完整描述。例如,圖4.2.1為一地震監測系統之基本功能架構,圖4.2.2為其中一項之分項功能架構圖。 B.各項功能處理程序
說明各功能之處理程序及動作的順序,尤其應指明執行某一個功能後,對其他個別功能、物件或整個軟體系統有什麼影響。例如,一個公司之會計部門擬要統計這個月要發放之總薪資額,則該功能需先存取資料庫中員工薪資表之薪資額及各項津貼後再統計總額。
C.限制因素
說明在軟體執行過程中有那些限制,有那些是應該特別注意的地方。例如:兩個元件以Socket相互傳遞資料,若一方當機,另一方需關閉通道,並回復到相互傳遞資料前之狀態,待當機一方上線,雙方再重新建立通道,並重新開始傳遞作業。
(2)介面需求
軟體介面需求需說明:軟體介面的目的、介面格式、介面本身的訊息、內容與傳遞方式等,擬分成下列幾項說明之。
A.介面辨識與介面圖
描述及確認軟體項目之間的介面關係及必要的外部介面,這種關係可能是相互分享資料、相互提供資料、或互換資料。每一介面之辦識應包括唯一的專案識別項目,並說明那些實體符合介面特性(意即那些軟體實體中有介面需求)、那些實體必需被開發或修正(因此在其上有介面需求),也應儘可能藉著名稱、編號、版本、與文件參考指出需要介面之元件,而這些元件可能是一個系統、硬體項目、軟體項目或使用者等。此外,如果允許的話,亦應提供一個或數個介面圖示輔助說明這些介面與各實體之關係。
B.系統輸入輸出介面
一個待開發之軟體程式模組通常會與現有其他的自動或非自動系統有互動關係,因此這些外在的介面必需事先界定清楚,以確認該軟體程式可以與外部介面相容,正確地傳遞並接收資料。而輸入、輸出規格包括資料型態(整數、小數、字串)、範圍、單位、準確度、精確度等,精確度應給予明確的需求說明。使用者介面則需另外說明以何種方式與軟體進行溝通(例如,下命令、選單輸入或按鈕等)。
C.各元件輸入輸出介面
軟體中各元件對其外部(包括對其他各元件或本軟體系統的外部)的行為所必需提供的輸出、輸入規格,包括資料型態(整數、小數、字串或抽象資料型態)、範圍、單位、精確度等。
(3)非功能性需求
非功能性需求(Non-functional Requirements)主要在描述上述功能性需求之進一步限制,例如,反應時間、記憶體需求量,及例外處理等。
A.處理時間需求
明定軟體使用時,各功能動作之各項績效需求,例如,平均反應時間(Mean Response Time)、線上反應時間(Online Response Time)、每秒交易數(Number of Transactions)、每單位時間完成之交易量(Throughput)、每一動作之平均等待時間、每小時被服務之顧客數等。
B.保密需求
指明有關維護保密性與私密性之軟體項目需求,包括:軟體項目必需操作之保密性/私密性環境,所提供之保密性或私密性之型式與等級,軟體項目必需承受之保密性/私密性風險,必需加強的安全防護以減少這些風險,必需符合的保密性/私密性策略,軟體項目必需提供之保密性/私密性責任,與保密性/私密性保證及認證必需符合之評估標準。
C.安全需求
指明避免或減少人員、資產、與實際環境非預期危險之軟體項目需求,以避免疏忽行為(例如,不小心發出〝關閉自動導引〞指令)與無法作用(例如:欲發出而無法發出〝關閉自動導引〞指令)等之安全防護。
D.例外處理
說明處理非正常作業流程(例外情形)之軟體項目需求,例如,開啟舊檔時,使用者輸入檔名,但是系統找不到該檔案(可能檔案不存在或損毀),此時系統該如何運作;另外一個例子是,系統使用I/O做輸入輸出時,突然無法與該I/O設備連線,系統將如何運作等。
(4)、雛型系統摘述
詳述系統初步完成時,必需擁有那些架構、介面、及功能。
(5)、需求規格表(A)/需求追溯表(B、C)
需求規格表主要在表列前述功能需求之各種細項,以供未來軟體系統驗收時之查核單(Checklist)。若軟體系統很複雜不易用單一表格表示時,則需求規格表可依不同性質歸類分為若干個表。
除了表列功能需求之各種細項外,需求追溯表(Traceability Table / Matrix)應更進一步列述未來系統開發流程中對應的設計文件、模組(類別、或繼承類別)名稱、測試案例編號等。需求追溯乃是評估在軟體發展的過程中,實際依循軟體需求規格書中所提出之各軟體型態項目需求的程度,可將不同層次的需求以對照表顯示其追溯性。
需求追溯表除了可確認軟體需求規格書中之各分項功能已被完整地涵蓋在所發展之軟體系統中之中,亦可當作功能測試之測試清單,例如表4.2.1為和平公園售票系統之售票、資料統計分析、排程管理等功能的需求規格表,表4.2.2為人事管理系統之部分需求追溯表。
(6)、附錄
附錄可為相關的背景資料,其內容有助於瞭解軟體需求規格的參考資料,若無附件資料則此項可省略。