軟件需求說明書
1 引言
1.1 編寫目的:闡明編寫需求說明書的目的,,指明讀者對(duì)象。
1.2 項(xiàng)目背景:應(yīng)包括
● 項(xiàng)目的委托單位,、開心單位和主管部門,;
● 該軟件系統(tǒng)與其他系統(tǒng)的關(guān)系。
1.3 定義:列出文檔中所用到的專門術(shù)語的定義和縮寫詞的愿文,。
1.4 參考資料:可包括
● 項(xiàng)目經(jīng)核準(zhǔn)的計(jì)劃任務(wù)書,、合同或上級(jí)機(jī)關(guān)的批文
● 文檔所引用的資料、規(guī)范等
● 列出這些資料的作者,、標(biāo)題,、編號(hào)、發(fā)表日期,、出版單位或資料來源
2 任務(wù)概述
2.1 目標(biāo)
2.2 運(yùn)行環(huán)境
2.3 條件與限制
3 數(shù)據(jù)描述
3.1 表態(tài)數(shù)據(jù)
3.2 動(dòng)態(tài)數(shù)據(jù):包括輸入數(shù)據(jù)和輸出數(shù)據(jù),。
3.3 數(shù)據(jù)庫(kù)描述:給出使用數(shù)據(jù)庫(kù)的名稱和類型。
3.4 數(shù)據(jù)詞典
3.5 數(shù)據(jù)采集
4 功能需求
4.1功能劃分
4.2功能描述
5 性能需求
5.1 數(shù)據(jù)精確度
5.2 時(shí)間特性:如響應(yīng)時(shí)間,、更新處理時(shí)間,、數(shù)據(jù)轉(zhuǎn)換與傳輸時(shí)間、運(yùn)行時(shí)間等,。
5.3 適應(yīng)性:在操作方式,、運(yùn)行環(huán)境、與其他軟件的接口以及開發(fā)計(jì)劃等發(fā)生變化時(shí),,應(yīng)具有的適應(yīng)能力,。
6 運(yùn)行需求
6.1 用戶界面:如屏幕格式、報(bào)表格式、菜單格式,、輸入輸出時(shí)間等,。
6.2 硬件接口
6.3 軟件接口
6.4 故障處理
7 其他需求
如可使用性、安全保密,、可維護(hù)性,、可移植性等。
需求分析的格式
需求分析要對(duì)目標(biāo)系統(tǒng)提出完整的,、準(zhǔn)確的,、清晰的和具體的要求。
1.綜合需求: 項(xiàng)目
說明
備注
1)功能要求
描述軟件用來做什么
能夠進(jìn)行度量衡的相互轉(zhuǎn)換,,如:長(zhǎng)度公制之間的轉(zhuǎn)換,,公制和英制的轉(zhuǎn)換等。能夠添加或創(chuàng)建新的度量衡,。能夠按照用戶自己的需要進(jìn)行排序,。能夠作為其他軟件的插件或輔助工具使用。能夠知道度量衡所應(yīng)用的范圍,,如:國(guó)家,,行業(yè)等。
2)性能要求
軟件能達(dá)到什么性能
數(shù)據(jù)的最大存儲(chǔ)量,,數(shù)據(jù)的轉(zhuǎn)換要有連續(xù)性,,軟件對(duì)每項(xiàng)操作的響應(yīng)時(shí)間,更新處理時(shí)間,,數(shù)據(jù)轉(zhuǎn)換和傳送時(shí)間,,軟件的輸入輸出數(shù)據(jù)精度,軟件失敗和成功的定義,。
3)運(yùn)行要求
軟件能正常運(yùn)行在微軟中文版WINDOWS系列的可以獨(dú)立運(yùn)行的安裝包或可執(zhí)行文件
開發(fā)軟件的開發(fā)工具清單,。是否需要外部存儲(chǔ)器和數(shù)據(jù)通信接口。
4)升級(jí)要求
是否可以升級(jí),,是否可以進(jìn)行擴(kuò)充,。是否容易進(jìn)行維護(hù)。
能夠作為什么軟件的插件或輔助工具使用,。如何添加新的公式
5)對(duì)應(yīng)關(guān)系
用戶需求和軟件功能的對(duì)應(yīng)關(guān)系
說明每一個(gè)模塊對(duì)應(yīng)實(shí)現(xiàn)什么功能,。
2.?dāng)?shù)據(jù)要求: 項(xiàng)目
說明
備注
1)數(shù)據(jù)輸入
來源、準(zhǔn)確性,、取值范圍,、格式、非法值的處理,、出錯(cuò)信息
2)數(shù)據(jù)輸出
目的地,、準(zhǔn)確性、數(shù)值范圍,、格式,、非法值的處理、出錯(cuò)信息
輸出的數(shù)據(jù)可以修改,,如:1米=100厘米=1000毫米,,將100厘米改為90厘米時(shí),相應(yīng)的1米就自動(dòng)改為0.9米,,1000毫米變?yōu)?00毫米,。
3)數(shù)據(jù)存儲(chǔ)
最大存儲(chǔ)量
4)數(shù)據(jù)的安全性
訪問的權(quán)限
5)數(shù)據(jù)備份
能否導(dǎo)入和導(dǎo)出
可以將輸出的數(shù)據(jù)保存為文本格式
6)數(shù)據(jù)流圖
在分析過程中得出的數(shù)據(jù)流圖
7)數(shù)據(jù)篩選
能夠?qū)⑦x擇的幾個(gè)度量單位進(jìn)行匯總
8)主要算法
簡(jiǎn)要描述軟件的主要算法
3.界面要求:請(qǐng)參照“界面樣式圖” 項(xiàng)目
說明
備注
1)軟件名稱
為軟件起一個(gè)名字
可以發(fā)揮自己的想象力
2)功能模塊
有幾個(gè)功能模塊,分別是什么
3)顏色
采用什么底色,,窗口是什么顏色
4)字體
字型,、大小,字間距,,顏色
5)按鈕
顏色,、字型、大小,、樣式
4.軟件描述:從用戶的角度來描述軟件,,相當(dāng)于一份初步的用戶手冊(cè)。 項(xiàng)目
說明
備注
1)功能描述
能實(shí)現(xiàn),,不能實(shí)現(xiàn)什么需求
應(yīng)用范圍,。什么人員可以使用
2)性能描述
最低配置,操作系統(tǒng),,需要安裝什么輔助軟件
3)操作步驟
如何使用軟件
主要步驟和方法
4)用戶責(zé)任
用戶在操作過程中的注意事項(xiàng)
出現(xiàn)問題時(shí)如何解決
如何寫需求分析報(bào)告
近來學(xué)校的一些科研項(xiàng)目又在申報(bào)了,,一些學(xué)弟開始Q我一些軟件工程上書面的問題。大概的總結(jié)了下,,寫到這里,。本文涉及到的是需求分析部分的書寫,主要是根據(jù)國(guó)家標(biāo)準(zhǔn)文檔中的要求來的,。
在互聯(lián)網(wǎng)公司或者一些敏捷開發(fā)的公司里,,其實(shí)大家都是秉承著重開發(fā),重討論,,而輕文檔的態(tài)度,。這個(gè)輕文檔并不是指沒有文檔或者幾乎不做文檔,而是在嚴(yán)格的文檔流程中解脫出來,,只把最最實(shí)際的部分寫出來,。這個(gè)特征是有互聯(lián)網(wǎng)本身迭代周期短,版本發(fā)布快等特點(diǎn)決定的,。而在實(shí)際的兼職項(xiàng)目的時(shí)候,,同學(xué)們就要注意了,,最重要的應(yīng)該就是在簽合同的時(shí)候一定要附上最清楚的一份需求分析,雖然這份需求說明可能不是按照某些標(biāo)準(zhǔn)文檔而來的,,描述清楚每個(gè)功能達(dá)到的效果,,而這個(gè)效果一定要讓客戶點(diǎn)頭確認(rèn),而不能出現(xiàn)“應(yīng)該是”,、“可能是”,、“也許是”這樣的模糊回答。否則在項(xiàng)目后期就會(huì)比較難過了,。在學(xué)校申請(qǐng)的項(xiàng)目和大型公司項(xiàng)目開發(fā)中,,是重視文檔流程的,一部一部來,。所以還是看情況來對(duì)待文檔的深度和標(biāo)準(zhǔn),。
一、目錄: 目錄要用word的 “引用”—>”目錄”,,自動(dòng)生成目錄,,一般都是要三級(jí)目錄。通常這部分基本都不需要改結(jié)構(gòu),,直接更新頁(yè)碼即可,。
二、內(nèi)容部分,。 國(guó)家標(biāo)準(zhǔn)軟件需求說明書G856T-88下載
1引言
1.1編寫目的
說明編寫這份軟件需求說明書的目的,,指出預(yù)期的讀者。
(這部分說明需求分析報(bào)告的概況,,例如:本X需求分析報(bào)告是為S系統(tǒng)而編寫的,。+S系統(tǒng)的兩句話概述。+本X報(bào)告旨在使U1(需求者)明確S系統(tǒng)的要求和細(xì)節(jié),,給U2(開發(fā)人員)了解需求實(shí)現(xiàn)的難度和困難,,最終提供給U3(審核人、管理者)討論和審核,,達(dá)到溝通效果)
1.2背景
說明:
a. 待開發(fā)的軟件系統(tǒng)的名稱,;
b. 本項(xiàng)目的任務(wù)提出者、開發(fā)者,、用戶及實(shí)現(xiàn)該軟件的計(jì)算中心或計(jì)算機(jī)網(wǎng)絡(luò),;
c. 該軟件系統(tǒng)同其他系統(tǒng)或其他機(jī)構(gòu)的基本的相互來往關(guān)系。
(這部分可以將a,b,c分為2部分,,例子如下:
1.2.1項(xiàng)目概況
本需求分析報(bào)告所預(yù)期開發(fā)的軟件系統(tǒng)是:S,。S是(不是則無)SS系統(tǒng)的某一個(gè)功能子模塊,S和S1,、S2等系統(tǒng)之間的聯(lián)系,,以及概述其他系統(tǒng)的狀態(tài)等等,。
1.2.2任務(wù)分配
a. 任務(wù)提出者:xxx
b. 軟件開發(fā)者:xx
c. 產(chǎn)品使用者:xx
d. 文檔編寫者:xx
e. 預(yù)期產(chǎn)品使用者:xx
)
1.3定義
列出本文件中用到的專門術(shù)語的定義和外文首字母組詞的原詞組。
(這部分很簡(jiǎn)單,,就是描述專業(yè)詞匯,,比如
1. XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。
2. Word2, 解釋,。。,。
)
1.4參考資料
列出用得著的參考資料,,如:
a. 本項(xiàng)目的經(jīng)核準(zhǔn)的計(jì)劃任務(wù)書或合同、上級(jí)機(jī)關(guān)的批文,;
b. 屬于本項(xiàng)目的其他已發(fā)表的文件,;
c. 本文件中各處引用的文件、資料,、包括所要用到的軟件開發(fā)標(biāo)準(zhǔn),。 列出這些文件資料的標(biāo)題、文件編號(hào),、發(fā)表日期和出版單位,,說明能夠得到這些文件資料的來源。
2任務(wù)概述
2.1目標(biāo)
敘述該項(xiàng)軟件開發(fā)的意圖,、應(yīng)用目標(biāo),、作用范圍以及其他應(yīng)向讀者說明的有關(guān)該軟件開發(fā)的背景材料。解釋被開發(fā)軟件與其他有關(guān)軟件之間的關(guān)系,。如果本軟件產(chǎn)品是一項(xiàng)獨(dú)立的軟件,,而且全部?jī)?nèi)容自含,則說明這一點(diǎn),。如果所定義的產(chǎn)品是一個(gè)更大的系統(tǒng)的一個(gè)組成部分,,則應(yīng)說明本產(chǎn)品與該系統(tǒng)中其他各組成部分之間的關(guān)系,為此可使用一張方框圖來說明該系統(tǒng)的組成和本產(chǎn)品同其他各部分的聯(lián)系和接口,。|
(
本模塊開發(fā)主要是為SS的整體服務(wù),,完成SS工作中的XX部分以及相關(guān)的工作。其涉及的范圍就是,,從下達(dá)A,、B命令后,到給出C結(jié)果的過程,。具體描述:B1,,來完成B11功能;B2,,來完成B22功能,; 等等,。本部分是(否)耦合在分詞工具包其他部分中的,主要為嵌入方式和先后方式相互交互,。
圖
圖1. 該系統(tǒng)的組成同其他各部分的聯(lián)系和接口
)
2.2用戶的特點(diǎn)
列出本軟件的最終用戶的特點(diǎn),,充分說明操作人員、維護(hù)人員的教育水平和技術(shù)專長(zhǎng),,以及本軟件的預(yù)期使甩頻度,。這些是軟件設(shè)計(jì)工作的重要約束
(例如:二次開發(fā)和系統(tǒng)調(diào)用人員:具有很高的專業(yè)知識(shí)水平,理解XX的運(yùn)行機(jī)制,??梢詫?duì)開放代碼進(jìn)行閱讀和分析,以完成其系統(tǒng)獨(dú)特的需求,,提供給這部分用戶開放API手冊(cè)和Debug版本的源代碼即可,;預(yù)期這部分用戶會(huì)占本系統(tǒng)總用戶量的多大部分。
xx使用者:具有一定的計(jì)算機(jī)操作能力和知識(shí),,了解xx領(lǐng)域的相關(guān)概念和用途,。提供給這部分用戶操作手冊(cè)即可。預(yù)期這部分使用者主要是來簡(jiǎn)單的xx操作,。
維護(hù)人員:具有較高的計(jì)算機(jī)專業(yè)水平,,可以對(duì)常見的系統(tǒng)Bug進(jìn)行追蹤和分析,具有一定的測(cè)試能力,。 這部分用戶主要是采用了本系統(tǒng)之后的后期工作維護(hù)者,。
等等
)
2.3假定和約束
列出進(jìn)行本軟件開發(fā)工作的假定和約束,例如經(jīng)費(fèi)限制,、開發(fā)期限等,。
(這部分重要是對(duì)你有的技術(shù)力量、資金狀況,、人力資源等情況的假設(shè),,以使得你可以在什么樣的情況和時(shí)間范圍內(nèi)完成工作。工期約束,,經(jīng)費(fèi)約束,,人員約束,地理約束,,設(shè)備約束等幾個(gè)方面列舉說明,。)
3需求規(guī)定
3.1對(duì)功能的規(guī)定
用列表的方式(例如IPO表即輸入、處理,、輸出表的形式),,逐項(xiàng)定量和定性地?cái)⑹鰧?duì)軟件所提出的功能要求,說明輸入什么量,、經(jīng)怎樣的處理,、得到什么輸出,,說明軟件應(yīng)支持的終端數(shù)和應(yīng)支持的并行操作的用戶數(shù)。
(例如:
INPUT輸入
PROCESS處理
OUTPUT輸出
LOAD負(fù)載量
A
預(yù)處理,做怎樣的動(dòng)作,,
AA
CC
B
BBBB
Bb
v
C
CCCC
cc
v
表一,、xx模塊IPO表
對(duì)IPO表的簡(jiǎn)單文字描述。
)
3.2對(duì)性能的規(guī)定
3.2.1精度
說明對(duì)該軟件的輸入,、輸出數(shù)據(jù)精度的要求,,可能包括傳輸過程中的精度。
(例如:
Xx目標(biāo)處理:1Byt–10M,,包括左右邊界值,。
yy精度范圍:….
ZZ的精度:由于xx的特殊性,本系統(tǒng)均采用xx型來進(jìn)行字符統(tǒng)計(jì)運(yùn)算,,概率部分以及其他比率部分精度精確到0.0x%。
)
3.2.2時(shí)間特性要求
說明對(duì)于該軟件的時(shí)間特性要求,,如對(duì):
a. 響應(yīng)時(shí)間,;
b. 更新處理時(shí)間;
c. 數(shù)據(jù)的轉(zhuǎn)換和傳送時(shí)間,;
d. 解題時(shí)間,;等的要求。
(這部分只要一一列舉就可以:
由于xxx過程中,,需要大量xxxx操作或怎樣,,故xx解題時(shí)間占總時(shí)間的最大部分。其次就是xx轉(zhuǎn)換和存儲(chǔ)的開銷,。其具體時(shí)間特性要求,,如下:
a. xx響應(yīng)時(shí)間:xxms左右;
b. yy更新處理時(shí)間:yy,;
c. zz數(shù)據(jù)的轉(zhuǎn)換和傳送時(shí)間:zz,;
d. vv解題時(shí)間:vv。
等等
)
3.2.3靈活性
說明對(duì)該軟件的靈活性的要求,,即當(dāng)需求發(fā)生某些變化時(shí),,該軟件對(duì)這些變化的適應(yīng)能力,如:
a. 操作方式上的變化,;
b. 運(yùn)行環(huán)境的變化,;
c. 同其他軟件的接口的變化;
d. 精度和有效時(shí)限的變化,;
e. 計(jì)劃的變化或改進(jìn),。
對(duì)于為了提供這些靈活性而進(jìn)行的專門設(shè)計(jì)的部分應(yīng)該加以標(biāo)明。
(這部分按列舉來即可,, 由于本模塊第一目的是用于xxx,,其次則是xxxx,。故本模塊的靈活性在于實(shí)際應(yīng)用者的不同。當(dāng)需求發(fā)生某些變化時(shí),,該軟件對(duì)這些變化的適應(yīng)能力,。具體情況如下:
f. 操作方式上的變化:采用集成運(yùn)行制和獨(dú)立運(yùn)行制兩種模式,集成運(yùn)行制是把本模塊嵌入到分詞工具包的主框架中,,提供給用戶具有一定UI的可操作軟件,;獨(dú)立運(yùn)行制是可以獨(dú)立運(yùn)行于后臺(tái),并提供給各種程序調(diào)用的模式的工作方式,,以增強(qiáng)其生命力,。
g. 運(yùn)行環(huán)境的變化:主采用Windows平臺(tái)的編譯版本運(yùn)行和調(diào)試,在時(shí)間允許的情況下,,同步開發(fā)支持SUSE Linux的服務(wù)器版本,。;
h. 同其他軟件的接口的變化:在盡量保證接口不出現(xiàn)變動(dòng)的情況下,,允許接口的重載和再定義,。但接口的命名規(guī)則是統(tǒng)一的;
i. 精度和有效時(shí)限的變化:精度在必須調(diào)整的條件下,,可以上下浮動(dòng)10個(gè)百分點(diǎn),;有效時(shí)限則依據(jù)現(xiàn)實(shí)的測(cè)試情況允許稍大范圍的變化。
j. 計(jì)劃的變化或改進(jìn):工作時(shí)間安排會(huì)存在必然的浮動(dòng),,這部分要協(xié)同分詞工具包課題設(shè)計(jì)組其他成員一同來進(jìn)行商定,,前期的計(jì)劃可以稍微有些變動(dòng),后期的安排盡量按照計(jì)劃執(zhí)行,。
等等
)
3.3輸人輸出要求
解釋各輸入輸出數(shù)據(jù)類型,,并逐項(xiàng)說明其媒體、格式,、數(shù)值范圍,、精度等。對(duì)軟件的數(shù)據(jù)輸出及必須標(biāo)明的控制輸出量進(jìn)行解釋并舉例,,包括對(duì)硬拷貝報(bào)告(正常結(jié)果輸出,、狀態(tài)輸出及異常輸出)以及圖形或顯示報(bào)告的描述。
(這部分可以把輸入輸出分為 3.3.1輸入要求和3.3.2輸出要求,,如下給出一個(gè)單元的例子,。
XXX輸出
數(shù)據(jù)名稱:XXX輸出數(shù)據(jù)
實(shí)際含義:用于XX,表示XXXX
數(shù)據(jù)類型:Character(字符串)
數(shù)據(jù)格式:XX
數(shù)據(jù)約束:由于xxx,,大小在xx以內(nèi)
)
3.4數(shù)據(jù)管理能力要求
說明需要管理的文卷和記錄的個(gè)數(shù),、表和文卷的大小規(guī)模,,要按可預(yù)見的增長(zhǎng)對(duì)數(shù)據(jù)及其分量的存儲(chǔ)要求作出估算。
(
根據(jù)實(shí)際系統(tǒng)要求列舉即可
Name名稱
Number數(shù)量
Size大小
Increase增長(zhǎng)
詞典xx
xx
xxxx
并行執(zhí)行,其大小依據(jù)實(shí)際xx大文本而增長(zhǎng)
)
3.5故障處理要求
列出可能的軟件,、硬件故障以及對(duì)各項(xiàng)性能而言所產(chǎn)生的后果和對(duì)故障處理的要求,。
(包括軟件壓力,內(nèi)存不足,,硬件損壞等,,這部分可以根據(jù)百度到其常見故障。)
3.6其他專門要求
如用戶單位對(duì)安全保密的要求,,對(duì)使用方便的要求,,對(duì)可維護(hù)性、可補(bǔ)充性,、易讀性,、可靠性、運(yùn)行環(huán)境可轉(zhuǎn)換性的特殊要求等,。
(例如安全保密性:密鑰更換等,; 預(yù)期擴(kuò)展:擴(kuò)展兼容等;OS更換:Slackware轉(zhuǎn)SUSE等
)
4運(yùn)行環(huán)境規(guī)定
4.1設(shè)備
列出運(yùn)行該軟件所需要的硬設(shè)備,。說明其中的新型設(shè)備及其專門功能,,包括:
a. 處理器型號(hào)及內(nèi)存容量;
b. 外存容量,、聯(lián)機(jī)或脫機(jī),、媒體及其存儲(chǔ)格式,,設(shè)備的型號(hào)及數(shù)量,;
c. 輸入及輸出設(shè)備的型號(hào)和數(shù)量,聯(lián)機(jī)或脫機(jī),;
d. 數(shù)據(jù)通信設(shè)備的型號(hào)和數(shù)量,;
e. 功能鍵及其他專用硬件
(列舉說明即可)
4.2支持軟件
列出支持軟件,包括要用到的操作系統(tǒng)、編譯(或匯編)程序,、測(cè)試支持軟件等,。
(操作系統(tǒng)和版本:xxxx
支撐環(huán)境和版本:xxxx
備用IDE環(huán)境和版本:xxxx
與該軟件有關(guān)的軟件組件:xxxx
后續(xù)可能擴(kuò)展環(huán)境:xxxx
)
4.3接口
說明該軟件同其他軟件之間的接口、數(shù)據(jù)通信協(xié)議等,。
(例如:
a.用戶和主程序調(diào)用接口(圖中接口1),。這個(gè)接口采用封裝API形式和函數(shù)調(diào)用形式,分別以外部調(diào)用和內(nèi)部調(diào)用的方式為不同用戶提供使用本機(jī)械分詞工具的入口,。例如以xxxx方式調(diào)用DLL文件,,以xxxx方式調(diào)用函數(shù)。如下圖2所示,。
圖2.軟件接口調(diào)用圖
b.xx接口(圖中接口2),。這里是一個(gè)xxx的接口調(diào)用過程。xxxx
)
4.4控制
說明控制該軟件的運(yùn)行的方法和控制信號(hào),并說明這些控制信號(hào)的來源,。
(例如:
下面通過圖表的形式,,將本模塊以及涉及到本模塊的軟件模塊的運(yùn)行方法、控制信號(hào),,以及這些控制信號(hào)的來源,,其中箭頭所指方向?qū)?yīng)的模塊的控制信號(hào)來自箭頭另一方向的模塊,具體情況如下:
圖3 .控制流程圖
圖3的具體說明情況如下表所示:
Name模塊名稱
Method運(yùn)行方式
Signal控制信號(hào)
Forward控制去向
主程序模塊
運(yùn)行框架
用戶調(diào)用或運(yùn)行
1. 調(diào)用xx模塊
2. 調(diào)用xx方法
3. 調(diào)用標(biāo)準(zhǔn)輸出模塊
xxx模塊
xxx
xxx調(diào)用
Xxx模塊
)