最近學校有些科研項目又申報了,有同學開始問我壹些軟件工程方面的書面問題。壹個大概的總結,寫到這裏。本文涉及的是需求分析部分的編寫,主要是根據國家標準文件中的要求。
在互聯網公司或者壹些敏捷開發公司,其實大家都是秉承專註開發,重討論,輕文檔的態度。這個輕文檔不是說沒有文檔或者幾乎沒有文檔,而是從嚴格的文檔流程中解脫出來,只寫最實用的部分。這個特點是由互聯網本身的特點決定的,比如叠代周期短,版本發布快。在實際的兼職項目中,同學們要註意。最重要的是簽約時附上最清晰的需求分析。雖然這種需求陳述可能不是基於壹些標準文檔,但它清楚地描述了每個功能所達到的效果,並且這種效果必須得到客戶點頭的確認,不能有“應該”、“可能會”、“可能會”等模糊的回答。不然項目後期會更難過。在學校申請的項目和大公司的項目開發中,我們重視文檔流程,壹個壹個來。所以文件的深度和標準要視情況而定。
壹、目錄:目錄要用詞“引用”->;“目錄”,自動生成目錄,壹般需要三級目錄。通常這部分基本不需要改變結構,直接更新頁碼即可。
第二,內容部分。下載國家標準軟件需求規範G856T-88
1簡介
1.1的用途
解釋編寫本軟件需求說明書的目的,並指出預期的讀者。
(這部分說明了需求分析報告的概況,比如這個X需求分析報告就是為S系統寫的。+S系統的兩句話。+本X報告的目的是讓U1(需求方)明確S系統的需求和細節,讓U2(開發方)了解需求實現的難點和困難,最終提供給U3(審核員和經理)討論和評審,達到溝通的效果)。
1.2背景
描述:
A.要開發的軟件系統的名稱;
B.該項目的任務提出者、開發者和用戶,以及實現該軟件的計算中心或計算機網絡;
C.軟件系統與其他系統或機構之間的基本交互。
(在這壹部分中,A、B、C可以分為兩部分。例子如下:
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(可擴展標記語言)是壹種可擴展標記語言。和HTML壹樣,是SGML(標準通用標記語言,通用標記語言)。
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手冊和調試版源代碼;預計這部分用戶將占該系統用戶總數的很大壹部分。
Xx用戶:具有壹定的計算機操作能力和知識,了解xx領域的相關概念和用途。提供這部分的用戶操作手冊。預計這部分用戶主要是為了簡單的xx操作而來。
維護人員:具有較高的計算機專業水平,能跟蹤分析常見的系統bug,有壹定的測試能力。這部分用戶主要是采用該系統後的後期工作維護人員。
等等
)
2.3假設和約束
列出這個軟件開發的假設和約束條件,比如資金限制,開發周期等等。
這部分重要的是對妳的技術實力、財務狀況、人力資源的假設,讓妳在什麽情況下、什麽時間範圍內完成工作。列舉了工期、資金、人員、地域、設備等方面的制約因素。)
3需求調節
3.1關於功能的規定
以列表的形式(例如IPO表,即輸入、處理、輸出表的形式)對軟件的功能需求進行了定量和定性的逐項描述,說明輸入多少量、如何處理、得到什麽輸出,以及軟件應支持的終端數量和應支持並行操作的用戶數量。
(例如:
輸入輸入
過程處理
輸出輸出
載重量
A
預處理,做什麽樣的動作,
嗜酒者互誡協會
抄送
B
雙側束支傳導阻滯
Bb
v
C
CCCC
復寫的副本
v
表1。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。
等等
)
靈活性
解釋對軟件靈活性的要求,即軟件對某些需求變化的適應性,例如:
A.經營方式的變化;
B.經營環境的變化;
C.與其他軟件接口的變化;
D.準確度和有效時限的變化;
E.計劃的改變或改進。
為提供這些靈活性而專門設計的零件應加以標記。
(這部分可以列出來,因為這個模塊的第壹目的是用xxx,其次是xxxx。所以這個模塊的靈活性在於實際用戶的不同。軟件對某些需求變化的適應性。詳情如下:
F.運行模式變更:采用集成運行模式和獨立運行模式兩種模式。集成運行模式是將該模塊嵌入到分詞工具包的主框架中,為用戶提供具有壹定UI的可操作軟件;獨立操作系統是壹種可以在後臺獨立運行,為各種程序提供調用,增強其生命力的工作模式。
G.運行環境的改變:主要使用Windows平臺的編譯版運行調試,在時間允許的情況下同時開發支持SUSELinux的服務器版本。;
H.與其他軟件的接口變化:在盡可能保證接口不發生變化的情況下,允許接口重載和重定義。但是接口的命名規則是統壹的;
壹、精度和有效時限的變化:在精度必須調整的情況下,可上下浮動10個百分點;有效時間限制允許根據實際測試情況稍大範圍的變化。
J.計劃的變更或改進:工作進度會有不可避免的波動,這部分要和分詞工具包的項目設計組其他成員壹起協商。前期計劃可以稍作改動,後期安排盡量按計劃執行。
等等
)
3.3輸入和輸出要求
解釋輸入和輸出數據的類型,解釋它們的媒介、格式、數值範圍、精度等。壹項壹項地。舉例說明軟件的數據輸出和必須標註的控制輸出,包括硬拷貝報告(正常結果輸出、狀態輸出和異常輸出)和圖形或顯示報告的描述。
(在本部分中,輸入和輸出可分為3.3.1輸入要求和3.3.2輸出要求。下面給出了壹個單元的例子。
XXX輸出
數據名稱:XXX輸出數據
實際含義:用於XX,表示XXXX。
數據類型:字符(字符串)
數據格式:XX
數據約束:由於xxx,的大小在xx以內。
)
3.4數據管理能力要求
說明要管理的文件和記錄的數量、表和文件的大小,並根據可預見的增長估計數據及其組成部分的存儲要求。
(
根據實際系統要求。
名字名字
$ NUMBER的數字
尺寸大小
增加增長
詞典xx
xx
xxxx
並行執行,其大小根據實際xx大文本增加。
)
3.5故障處理要求
列出可能的軟件和硬件故障、各種性能的後果以及故障處理的要求。
(包括軟件壓力、內存不足、硬件損壞等。,這部分可以根據百度的通病來找。)
3.6其他特殊要求
如用戶單位對安全保密、使用方便的要求,對可維護性、互補性、可讀性、可靠性、運行環境可轉換性的特殊要求。
(例如,安全性:密鑰替換等。);預期擴展:擴展兼容性等。操作系統更換:Slackware to 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所示。
圖二。軟件接口調用圖
B.xx接口(圖中接口2)。下面是xxx的壹個接口調用過程。xxxx
)
4.4控制
解釋控制軟件運行的方法和控制信號,並解釋這些控制信號的來源。
(例如:
下面以圖表的形式描述該模塊以及與該模塊相關的軟件模塊的操作方法、控制信號以及這些控制信號的來源,其中箭頭所指方向的模塊的控制信號來自另壹方向的模塊,如下:
圖3。控制流程圖
圖3的詳細描述如下表所示:
命名模塊名稱
方法操作模式
信號控制信號
前進控制去哪裏
主程序模塊
操作框架
用戶調用或運行
1.呼叫xx模塊
2.調用xx方法
3.調用標準輸出模塊
Xxx模塊
xxx
Xxx電話
Xxx模塊