如何寫需求分析報告(軟件需求說明書GB856T-88)
近來學校的壹些科研項目又在申報了,壹些學弟開始Q我壹些軟件工程上書面的問題。大概的總結了下,寫到這裏。本文涉及到的是需求分析部分的書寫,主要是根據國家標準文檔中的要求來的。
在互聯網公司或者壹些敏捷開發的公司裏,其實大家都是秉承著重開發,重討論,而輕文檔的態度。這個輕文檔並不是指沒有文檔或者幾乎不做文檔,而是在嚴格的文檔流程中解脫出來,只把最最實際的部分寫出來。這個特征是有互聯網本身叠代周期短,版本發布快等特點決定的。而在實際的兼職項目的時候,同學們就要註意了,最重要的應該就是在簽合同的時候壹定要附上最清楚的壹份需求分析,雖然這份需求說明可能不是按照某些標準文檔而來的,描述清楚每個功能達到的效果,而這個效果壹定要讓客戶點頭確認,而不能出現“應該是”、“可能是”、“也許是”這樣的模糊回答。否則在項目後期就會比較難過了。在學校申請的項目和大型公司項目開發中,是重視文檔流程的,壹部壹部來。所以還是看情況來對待文檔的深度和標準。
壹、目錄:目錄要用word的“引用”—>”目錄”,自動生成目錄,壹般都是要三級目錄。通常這部分基本都不需要改結構,直接更新頁碼即可。
二、內容部分。國家標準軟件需求說明書G856T-88下載
1引言
1.1編寫目的
說明編寫這份軟件需求說明書的目的,指出預期的讀者。
(這部分說明需求分析報告的概況,例如:本X需求分析報告是為S系統而編寫的。+S系統的兩句話概述。+本X報告旨在使U1(需求者)明確S系統的要求和細節,給U2(開發人員)了解需求實現的難度和困難,最終提供給U3(審核人、管理者)討論和審核,達到溝通效果)
1.2背景
說明:
a.待開發的軟件系統的名稱;
b.本項目的任務提出者、開發者、用戶及實現該軟件的計算中心或計算機網絡;
c.該軟件系統同其他系統或其他機構的基本的相互來往關系。
(這部分可以將a,b,c分為2部分,例子如下:
1.2.1項目概況
本需求分析報告所預期開發的軟件系統是:S。S是(不是則無)SS系統的某壹個功能子模塊,S和S1、S2等系統之間的聯系,以及概述其他系統的狀態等等。
1.2.2任務分配
a.任務提出者:xxx
b.軟件開發者:xx
c.產品使用者:xx
d.文檔編寫者:xx
e.預期產品使用者:xx
)
1.3定義
列出本文件中用到的專門術語的定義和外文首字母組詞的原詞組。
(這部分很簡單,就是描述專業詞匯,比如
1.XML(ExtensibleMarkupLanguage)即可擴展標記語言,它與HTML壹樣,都是SGML(StandardGeneralizedMarkupLanguage,標準通用標記語言)。
2.Word2,解釋。。。
)
1.4參考資料
列出用得著的參考資料,如:
a.本項目的經核準的計劃任務書或合同、上級機關的批文;
b.屬於本項目的其他已發表的文件;
c.本文件中各處引用的文件、資料、包括所要用到的軟件開發標準。列出這些文件資料的標題、文件編號、發表日期和出版單位,說明能夠得到這些文件資料的來源。
2任務概述
2.1目標
敘述該項軟件開發的意圖、應用目標、作用範圍以及其他應向讀者說明的有關該軟件開發的背景材料。解釋被開發軟件與其他有關軟件之間的關系。如果本軟件產品是壹項獨立的軟件,而且全部內容自含,則說明這壹點。如果所定義的產品是壹個更大的系統的壹個組成部分,則應說明本產品與該系統中其他各組成部分之間的關系,為此可使用壹張方框圖來說明該系統的組成和本產品同其他各部分的聯系和接口。|
(
本模塊開發主要是為SS的整體服務,完成SS工作中的XX部分以及相關的工作。其涉及的範圍就是,從下達A、B命令後,到給出C結果的過程。具體描述:B1,來完成B11功能;B2,來完成B22功能;等等。本部分是(否)耦合在分詞工具包其他部分中的,主要為嵌入方式和先後方式相互交互。
圖
圖1.該系統的組成同其他各部分的聯系和接口
)
2.2用戶的特點
列出本軟件的最終用戶的特點,充分說明操作人員、維護人員的教育水平和技術專長,以及本軟件的預期使甩頻度。這些是軟件設計工作的重要約束
(例如:二次開發和系統調用人員:具有很高的專業知識水平,理解XX的運行機制。可以對開放代碼進行閱讀和分析,以完成其系統獨特的需求,提供給這部分用戶開放API手冊和Debug版本的源代碼即可;預期這部分用戶會占本系統總用戶量的多大部分。
xx使用者:具有壹定的計算機操作能力和知識,了解xx領域的相關概念和用途。提供給這部分用戶操作手冊即可。預期這部分使用者主要是來簡單的xx操作。
維護人員:具有較高的計算機專業水平,可以對常見的系統Bug進行追蹤和分析,具有壹定的測試能力。這部分用戶主要是采用了本系統之後的後期工作維護者。
等等
)
2.3假定和約束
列出進行本軟件開發工作的假定和約束,例如經費限制、開發期限等。
(這部分重要是對妳有的技術力量、資金狀況、人力資源等情況的假設,以使得妳可以在什麽樣的情況和時間範圍內完成工作。工期約束,經費約束,人員約束,地理約束,設備約束等幾個方面列舉說明。)
3需求規定
3.1對功能的規定
用列表的方式(例如IPO表即輸入、處理、輸出表的形式),逐項定量和定性地敘述對軟件所提出的功能要求,說明輸入什麽量、經怎樣的處理、得到什麽輸出,說明軟件應支持的終端數和應支持的並行操作的用戶數。
(例如:
INPUT輸入
PROCESS處理
OUTPUT輸出
LOAD負載量
A
預處理,做怎樣的動作,
AA
CC
B
BBBB
Bb
v
C
CCCC
cc
v
表壹、xx模塊IPO表
對IPO表的簡單文字描述。
)
3.2對性能的規定
3.2.1精度
說明對該軟件的輸入、輸出數據精度的要求,可能包括傳輸過程中的精度。
(例如:
Xx目標處理:1Byt_10M,包括左右邊界值。
yy精度範圍:.
ZZ的精度:由於xx的特殊性,本系統均采用xx型來進行字符統計運算,概率部分以及其他比率部分精度精確到0.0x%。
)
3.2.2時間特性要求
說明對於該軟件的時間特性要求,如對:
a.響應時間;
b.更新處理時間;
c.數據的轉換和傳送時間;
d.解題時間;等的要求。
(這部分只要壹壹列舉就可以:
由於xxx過程中,需要大量xxxx操作或怎樣,故xx解題時間占總時間的最大部分。其次就是xx轉換和存儲的開銷。其具體時間特性要求,如下:
a.xx響應時間:xxms左右;
b.yy更新處理時間:yy;
c.zz數據的轉換和傳送時間:zz;
d.vv解題時間:vv。
等等
)
3.2.3靈活性
說明對該軟件的靈活性的要求,即當需求發生某些變化時,該軟件對這些變化的適應能力,如:
a.操作方式上的變化;
b.運行環境的變化;
c.同其他軟件的接口的變化;
d.精度和有效時限的變化;
e.計劃的變化或改進。
對於為了提供這些靈活性而進行的專門設計的部分應該加以標明。
(這部分按列舉來即可,由於本模塊第壹目的是用於xxx,其次則是xxxx。故本模塊的靈活性在於實際應用者的不同。當需求發生某些變化時,該軟件對這些變化的適應能力。具體情況如下:
f.操作方式上的變化:采用集成運行制和獨立運行制兩種模式,集成運行制是把本模塊嵌入到分詞工具包的主框架中,提供給用戶具有壹定UI的可操作軟件;獨立運行制是可以獨立運行於後臺,並提供給各種程序調用的模式的工作方式,以增強其生命力。
g.運行環境的變化:主采用Windows平臺的編譯版本運行和調試,在時間允許的情況下,同步開發支持SUSELinux的服務器版本。;
h.同其他軟件的接口的變化:在盡量保證接口不出現變動的情況下,允許接口的重載和再定義。但接口的命名規則是統壹的;
i.精度和有效時限的變化:精度在必須調整的條件下,可以上下浮動10個百分點;有效時限則依據現實的測試情況允許稍大範圍的變化。
j.計劃的變化或改進:工作時間安排會存在必然的浮動,這部分要協同分詞工具包課題設計組其他成員壹同來進行商定,前期的計劃可以稍微有些變動,後期的安排盡量按照計劃執行。
等等
)
3.3輸人輸出要求
解釋各輸入輸出數據類型,並逐項說明其媒體、格式、數值範圍、精度等。對軟件的數據輸出及必須標明的控制輸出量進行解釋並舉例,包括對硬拷貝報告(正常結果輸出、狀態輸出及異常輸出)以及圖形或顯示報告的描述。
(這部分可以把輸入輸出分為3.3.1輸入要求和3.3.2輸出要求,如下給出壹個單元的例子。
XXX輸出
數據名稱:XXX輸出數據
實際含義:用於XX,表示XXXX
數據類型:Character(字符串)
數據格式:XX
數據約束:由於xxx,,大小在xx以內
)
3.4數據管理能力要求
說明需要管理的文卷和記錄的個數、表和文卷的大小規模,要按可預見的增長對數據及其分量的存儲要求作出估算。
(
根據實際系統要求列舉即可
Name名稱
Number數量
Size大小
Increase增長
詞典xx
xx
xxxx
並行執行,其大小依據實際xx大文本而增長
)
3.5故障處理要求
列出可能的軟件、硬件故障以及對各項性能而言所產生的後果和對故障處理的要求。
(包括軟件壓力,內存不足,硬件損壞等,這部分可以根據百度到其常見故障。)
3.6其他專門要求
如用戶單位對安全保密的要求,對使用方便的要求,對可維護性、可補充性、易讀性、可靠性、運行環境可轉換性的特殊要求等。
(例如安全保密性:密鑰更換等;預期擴展:擴展兼容等;OS更換:Slackware轉SUSE等
)
4運行環境規定
4.1設備
列出運行該軟件所需要的硬設備。說明其中的新型設備及其專門功能,包括:
a.處理器型號及內存容量;
b.外存容量、聯機或脫機、媒體及其存儲格式,設備的型號及數量;
c.輸入及輸出設備的型號和數量,聯機或脫機;
d.數據通信設備的型號和數量;
e.功能鍵及其他專用硬件
(列舉說明即可)
4.2支持軟件
列出支持軟件,包括要用到的操作系統、編譯(或匯編)程序、測試支持軟件等。
(操作系統和版本:xxxx
支撐環境和版本:xxxx
備用IDE環境和版本:xxxx
與該軟件有關的軟件組件:xxxx
後續可能擴展環境:xxxx
)
4.3接口
說明該軟件同其他軟件之間的接口、數據通信協議等。
(例如:
a.用戶和主程序調用接口(圖中接口1)。這個接口采用封裝API形式和函數調用形式,分別以外部調用和內部調用的方式為不同用戶提供使用本機械分詞工具的入口。例如以xxxx方式調用DLL文件,以xxxx方式調用函數。如下圖2所示。
圖2.軟件接口調用圖
b.xx接口(圖中接口2)。這裏是壹個xxx的接口調用過程。xxxx
)
4.4控制
說明控制該軟件的運行的方法和控制信號,並說明這些控制信號的來源。
(例如:
下面通過圖表的形式,將本模塊以及涉及到本模塊的軟件模塊的運行方法、控制信號,以及這些控制信號的來源,其中箭頭所指方向對應的模塊的控制信號來自箭頭另壹方向的模塊,具體情況如下:
圖3.控制流程圖
圖3的具體說明情況如下表所示:
Name模塊名稱
Method運行方式
Signal控制信號
Forward控制去向
主程序模塊
運行框架
用戶調用或運行
1.調用xx模塊
2.調用xx方法
3.調用標準輸出模塊
xxx模塊
xxx
xxx調用
Xxx模塊
)
附錄:軟件設計文檔國家標準(GB8567_88)軟件設計文檔國家標準(GB8567_88)GB8567——88操作手冊(GB8567——88).doc數據庫設計說明書(GB8567——88).doc測試分析報告(GB8567——88).doc數據要求說明書(GB856T——88).doc測試計劃(GB8567——88).doc圖1.doc概要設計說明書(GB8567——88).doc文件給制實施規定的實例(GB8567-88).doc開發進度月報(GB8567——88).doc詳細設計說明書(GB8567——88).doc可行性研究報告(GB8567——88).doc項目開發計劃(GB856T——88).doc模塊開發卷宗(GB8567——88).doc項目開發總結報告(GB8567——88).doc軟件需求說明書(GB856T——88).doc用戶手冊(GB8567——88).doc