
有關軟件需求分析的步驟以及所需文檔
、需求分析的幾個方面
需求分析可分為問題識別、分析與綜合、編制需求分析文檔、需求評審等四個階段,包括以下幾個方面:
1、 確定軟件所期望的用戶類;獲取每個用戶的需求
2、 了解實際用戶任務和目標以及這些任務所支持的業務需求
3、 分析員與用戶的信息以區別用戶任務需求、功能需求、業務規則、質量屬性、建議解決方法和附加信息
4、 將系統級的需求分為幾個子系統,并將需求中的一部分分配給軟件組件
5、 了解相關質量屬性的重要性
6、 討論得出實施優先級
7、 將所收集的用戶需求編寫成需求規格說明和模型
8、 評審需求規格說明,確保與用戶達成共識
、需求分析的任務與過程
需求分析的任務是借助于當前系統的物理模型(待開發系統的系統元素)導出目標系統的邏輯模型(只描述系統要完成的功能和要處理的數據),解決目標系統“做什么”的問題。
所要做的工作是深入描述軟件的功能和性能,確定軟件設計的限制和軟件同其他系統元素的接口細節,定義軟件的其他有效性需求,通過逐步細化對軟件的要求描述軟件要處理的數據,并給軟件開發提供一種可以轉化為數據設計、結構設計和過程設計的數據與功能表示。
必須全面理解用戶的各項要求,但不能全盤接受,只能接受合理的要求;對其中模糊的要求要進一步澄清,然后決定是否采納;對于無法實現的要求要向用戶作充分的解釋。
最后將軟件的需求準確地表達出來,形成軟件需求說明書SRS。
實現步驟:
(1)獲得當前系統的物理模型
首先分析、理解當前系統是如何運行的,了解當前系統的組織機構、輸入輸出、資源利用情況和日常數據處理過程,并用一個具體的模型來反映自己對當前系統的理解。此步驟也可以稱為“業務建模”,其主要任務是對用戶的組織機構或企業進行評估理解他們的需要及未來系統要解決的問題,然后建立一個業務USECASE模型和業務對象模型。當然如果系統相對簡單,也沒必要大動干戈區進行業務建模,只要做一些簡單的業務分析即可。
(2)抽象出當前系統的邏輯模型
在理解當前系統“怎樣做”的基礎上,取出非本質因素,抽取出“做什么”的本質。
(3)建立目標系統的邏輯模型
明確目標系統要“做什么”
(4)對邏輯模型的補充
如用戶界面、啟動和結束、出錯處理、系統輸入輸出、系統性能、其他限制等等。
、需求分析各過程:
(1)問題識別:解決目標系統做什么,做到什么程度。需求包括:功能、性能、環境、可靠性、安全性、保密性、用戶界面、資源使用、成本、進度。同時建立需求調查分析所需的通信途徑。
(2)分析與綜合:從數據流和數據結構出發,逐步細化所有的軟件功能,找出各元素之間的聯系、接口特性和設計上的限制,分析它們是否滿足功能要求并剔除不合理部分,綜合成系統解決方案,給出目標系統的詳細邏輯模型。常用的分析方法有面向數據流的結構化分析方法SA(數據流圖DFD、數據詞典DD、加工邏輯說明)、描繪系統數據關系的實體關系圖ERD、面向數據結構的Jackson方法JSD、面向對象分析方法OOA(主要用UML)、對于有動態時序問題的軟件可以用形式化技術,包括有窮狀態機FSM的狀態遷移(轉換)圖STD、時序圖、Petri網或Z。每一種分析建模方法都有其優勢和局限性,可以兼而有之以不同角度分析,應該避免陷入在軟件需求方法和模型中發生教條的思維模式和派系斗爭,一般來說結構化方法用于中小規模軟件、面向對象方法用于大型軟件。
(3)編制需求分析文檔
(4)需求評審
、結構化方法分析步驟
1)繪制關聯圖:繪制系統關聯圖是用于定義系統與系統外部實體間的界限和接口的簡單模型。同時它也明確了通過接口的信息流和物質流。
2)創建開發原型:創建用戶接口原型當開發人員或用戶不能確定需求時,開發一個用戶接口原型,這樣使得許多概念和可能發生的事更為直觀明了。用戶通過評價原型將使項目參與者能更好地相互理解所要解決的問題。注意要找出需求文檔與原型之間所有的沖突之處。
3)分析可行性:分析需求可行性在允許的成本、性能要求下,分析每項需求實施的可行性,明確與每項需求實現相聯系的風險,包括與其它需求的沖突,對外界因素的依賴和技術障礙。
4)確定需求優先級:確定軟件工程需求的優先級別應用分析方法來確定使用實例、產品特性或單項需求實現的優先級別。以優先級為基礎確定產品版本將包括哪些特性或哪類需求。當允許需求變更時,在特定的版本中加入每一項變更,并在那個版本計劃中作出需要的變更。
5)為需求建立模型:為需求建立模型需求的圖形分析模型是軟件需求規格說明極好的補充說明。它們能提供不同的信息與關系以有助于找到不正確的、不一致的、遺漏的和冗余的需求。這樣的模型包括數據流圖、實體關系圖、狀態變換圖、對話框圖、對象類及交互作用圖。
6)編寫數據字典:創建數據字典數據字典是對系統用到的所有數據項和結構的定義,以確保開發人員使用統一的數據定義。在需求階段,數據字典至少應定義客戶數據項以確保客戶與開發小組是使用一致的定義和術語。分析和設計工具通常包括數據字典組件。
7)應用質量功能調配:使用質量功能調配質量功能調配是一種高級系統技術,它將產品特性、屬性與對客戶的重要性聯系起來。該技術提供了一種分析方法以明確那些是客戶最為關注的特性。它將需求分為三類:期望需求,即客戶或許并未提及,但如若缺少會讓他
們感到不滿意;普通需求;興奮需求,即實現了會給客戶帶去驚喜,但若未實現也不會受到責備。
、需求文檔規范
A、三種編寫方法
1、用好的結構化和自然語言編寫文本型文檔;
2、建立圖形化模型,這些模型可以描繪轉換過程、系統狀態、和它們之間的變化、數據關系、邏輯流或對象類和他們的關系;
3、編寫形式化規格說明,這可以通過使用數學上精確的形式化邏輯語言來定義需求。
4、多種編寫方法可在同一個文檔使用,根據需要選擇,或互為補充,以能夠把需求說明白為目的。
B、應有成果
1、各業務手工辦理流程文字說明;
2、各業務手工辦理流程圖;
3、各業務手工辦理各環節輸入輸出表單、數據來源;
4、目標軟件系統功能劃分(示意圖及文字說明);
5、目標軟件系統中各業務辦理流程文字說明;
6、目標軟件系統中各業務辦理流程圖(模型);
7、目標軟件系統中各業務辦理各環節數據、數據采集方式、數據間的內在聯系分析。
8、目標軟件系統用戶界面圖、各式系統邏輯模型圖及說明
C、文檔工具推薦
1、調研結果《需求分析說明書》格式參照開發文檔模板;
2、單位組織結構圖、功能模塊分解圖用VISIO繪制,或直接用WORD中的畫圖工具;
3、業務流程圖用VISIO中的FLOWCHART模板繪制;
4、系統邏輯模型使用ROSE繪制活用VISIO中的UML模板繪制;
5、軟件用戶界面用VISIO中的WIN95USERINTERFACE模板繪制;
6、數據物理模型用POWERDESINER繪制;
D、需求文檔編寫原則
1、句子簡短完整,具有正確的語法、拼寫和標點;
2、使用的術語與詞匯表中所定義的一致;
3、需求陳述應該有一致的樣式,例如“系統必須..”或者“用戶必須..”,并緊跟一個行為動作和可觀察的結果。;
4、避免使用模糊、主觀的術語,減少不確定性,如“界面友好、操作方便”;
5、避免使用比較性詞語,如“提高”,應定量說明提高程度。
、編制軟件需求規格說明書的內容要求如下:
一、引言
(1) 編寫目的
說明編寫這份軟件需求說明書的目的,指出預期的讀者。
(2)項目背景
應包括:待開發的軟件系統的名稱;本項目的任務提出者、開發者、用戶及實現該軟件的計算中心或計算機網絡;該軟件系統與其他系統的關系
(3) 定義
列出本文件中用到的專門術語的定義和外文首字母組詞的原詞組。
(4)參考資料
應包括:本項目的經核準的計劃任務書或合同、上級機關的批文;項目開發計劃;屬于本
項目的其他已發表的文件;本文件中各處引用的文件、資料、包括所要用到的軟件開發標準(列出這些文件資料的標題、文件編號、發表日期和出版單位,說明能夠得到這些文件資料的來源)。