【世博IT魔方】世博會方案建設需求分析
需求分析可分為問題識別、分析與綜合、編制需求分析文檔、需求評審等四個階段,包括以下幾個方面:確定軟件所期望的用戶類;獲取每個用戶的需求;了解實際用戶任務和目標以及這些任務所支持的業(yè)務需求;分析員與用戶的信息以區(qū)別用戶任務需求、功能需求、業(yè)務規(guī)則、質量屬性、建議解決方法和附加信息;將系統(tǒng)級的需求分為幾個子系統(tǒng),并將需求中的一部分分配給軟件組件;了解相關質量屬性的重要性;討論得出實施優(yōu)先級;將所收集的用戶需求編寫成需求規(guī)格說明和模型;評審需求規(guī)格說明,確保與用戶達成共識。
軟件需求的各組成部分如下圖所示:
三、需求文檔規(guī)范
A、三種編寫方法
1、 用好的結構化和自然語言編寫文本型文檔;
2、 建立圖形化模型,這些模型可以描繪轉換過程、系統(tǒng)狀態(tài)、和它們之間的變化、數據關系、邏輯流或對象類和他們的關系;
3、 編寫形式化規(guī)格說明,這可以通過使用數學上精確的形式化邏輯語言來定義需求。
多種編寫方法可在同一個文檔使用,根據需要選擇,或互為補充,以能夠把需求說明白為目的。
B、應有成果
1、 各業(yè)務手工辦理流程文字說明;
2、 各業(yè)務手工辦理流程圖;
3、 各業(yè)務手工辦理各環(huán)節(jié)輸入輸出表單、數據來源;
4、 目標軟件系統(tǒng)功能劃分(示意圖及文字說明);
5、 目標軟件系統(tǒng)中各業(yè)務辦理流程文字說明;
6、 目標軟件系統(tǒng)中各業(yè)務辦理流程圖(模型);
7、 目標軟件系統(tǒng)中各業(yè)務辦理各環(huán)節(jié)數據、數據采集方式、數據間的內在聯(lián)系分析。
8、 目標軟件系統(tǒng)用戶界面圖、各式系統(tǒng)邏輯模型圖及說明
C、文檔工具推薦
1、 調研結果《需求分析說明書》格式參照開發(fā)文檔模板;
2、 單位組織結構圖、功能模塊分解圖用VISIO繪制,或直接用WORD中的畫圖工具;
3、 業(yè)務流程圖用VISIO中的FLOWCHART模板繪制;
4、 系統(tǒng)邏輯模型使用ROSE繪制活用VISIO中的UML模板繪制;
5、 軟件用戶界面用VISIO中的WIN95 USER INTERFACE模板繪制;
6、 數據物理模型用POWERDESINER繪制;
D、需求文檔編寫原則
1、 句子簡短完整,具有正確的語法、拼寫和標點;
2、 使用的術語與詞匯表中所定義的一致;
3、 需求陳述應該有一致的樣式,例如“系統(tǒng)必須..”或者“用戶必須..”,并緊跟一個行為動作和可觀察的結果。;
4、 避免使用模糊、主觀的術語,減少不確定性,如“界面友好、操作方便”;
5、 避免使用比較性詞語,如“提高”,應定量說明提高程度?!∷?、需求分析的任務與過程
需求分析的任務是借助于當前系統(tǒng)的物理模型(待開發(fā)系統(tǒng)的系統(tǒng)元素)導出目標系統(tǒng)的邏輯模型(只描述系統(tǒng)要完成的功能和要處理的數據),解決目標系統(tǒng)“做什么”的問題,所要做的工作是深入描述軟件的功能和性能,確定軟件設計的限制和軟件同其他系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求,通過逐步細化對軟件的要求描述軟件要處理的數據,并給軟件開發(fā)提供一種可以轉化為數據設計、結構設計和過程設計的數據與功能表示。必須全面理解用戶的各項要求,但不能全盤接受,只能接受合理的要求;對其中模糊的要求要進一步澄清,然后決定是否采納;對于無法實現(xiàn)的要求要向用戶作充分的解釋。***將軟件的需求準確地表達出來,形成軟件需求說明書SRS。其實現(xiàn)步驟如圖:
(1) 獲得當前系統(tǒng)的物理模型:首先分析、理解當前系統(tǒng)是如何運行的,了解當前系統(tǒng)的組織機構、輸入輸出、資源利用情況和日常數據處理過程,并用一個具體的模型來反映自己對當前系統(tǒng)的理解。此步驟也可以稱為“業(yè)務建模”,其主要任務是對用戶的組織機構或企業(yè)進行評估理解他們的需要及未來系統(tǒng)要解決的問題,然后建立一個業(yè)務USECASE模型和業(yè)務對象模型。當然如果系統(tǒng)相對簡單,也沒必要大動干戈區(qū)進行業(yè)務建模,只要做一些簡單的業(yè)務分析即可。
(2) 抽象出當前系統(tǒng)的邏輯模型:在理解當前系統(tǒng)“怎樣做”的基礎上,取出非本質因素,抽取出“做什么”的本質。
(3) 建立目標系統(tǒng)的邏輯模型:明確目標系統(tǒng)要“做什么”
(4) 對邏輯模型的補充,如用戶界面、啟動和結束、出錯處理、系統(tǒng)輸入輸出、系統(tǒng)性能、其他限制等等。
需求分析各過程如下:
(1) 問題識別:解決目標系統(tǒng)做什么,做到什么程度。需求包括:功能、性能、環(huán)境、可靠性、安全性、保密性、用戶界面、資源使用、成本、進度。同時建立需求調查分析所需的通信途徑。
(2) 分析與綜合:從數據流和數據結構出發(fā),逐步細化所有的軟件功能,找出各元素之間的聯(lián)系、接口特性和設計上的限制,分析它們是否滿足功能要求并剔除不合理部分,綜合成系統(tǒng)解決方案,給出目標系統(tǒng)的詳細邏輯模型。
常用的分析方法有面向數據流的結構化分析方法SA(數據流圖DFD、數據詞典DD、加工邏輯說明)、描繪系統(tǒng)數據關系的實體關系圖ERD、面向數據結構的Jackson方法JSD、面向對象分析方法OOA(主要用UML)、對于有動態(tài)時序問題的軟件可以用形式化技術,包括有窮狀態(tài)機FSM的狀態(tài)遷移(轉換)圖STD、時序圖、Petri網或Z。每一種分析建模方法都有其優(yōu)勢和局限性,可以兼而有之以不同角度分析,應該避免陷入在軟件需求方法和模型中發(fā)生教條的思維模式和派系斗爭,一般來說結構化方法用于中小規(guī)模軟件、面向對象方法用于大型軟件。
(3) 編制需求分析文檔
(4) 需求評審
五、需求分析的要求
1、 必須能夠表達和理解問題的數據域和功能域:系統(tǒng)的目的都是為了解決數據處理問題,就是將一種形式的數據轉換(輸入、處理、輸出)為另一種形式的數據。數據域應包括數據流、數據內容和數據結構。數據流式數據通過系統(tǒng)時的變化方式。對數據進行轉換就是程序的功能或子功能,兩個轉換之間的數據傳遞確定了功能間的接口。數據內容就是數據項,如人的數據項包括姓名、性別、出生日期等等。數據結構即各種數據項的邏輯組織,如是表格結構還是樹形結構、數據項間的相互關系
2、 必須按自頂向下、逐層分解的方式對問題進行分解和不斷細化:軟件的功能域和信息與都能做進一步的分解,可以是同一層次上的橫向分解,也可以是多層次上的縱向分解。
3、 給出系統(tǒng)的邏輯模型和物理模型:邏輯模型給出軟件要達到的功能和要處理的數據之間的關系;物理模型給出處理功能和數據結構的實際表示形式
六、需求調研方法
1、 會談、詢問:圍繞軟件目標提出具體問題;
2、 調查表:經過仔細考慮的書面回答可能比會談中的回答更加準確;
3、 收集分析客戶使用的各種表格、有關工作責任、工作流程、工作規(guī)范、相關數據標準、業(yè)務標準的各種文字資料;
4、 收集同類相關產品的宣傳資料、技術資料、演示程序或軟件程序;
5、 情景分析:利用情景分析誘導用戶能夠把它們的需求告知分析員(可以描述當前一項業(yè)務怎么做、也可以描述設想的系統(tǒng)中此項業(yè)務怎么做);
6、 可視化方法:結和情景分析,利用畫用戶界面圖、業(yè)務流程圖、功能結構圖、時序圖等圖形與客戶進行討論;
七、調研基本策略
1、 首先確定用戶的軟件開發(fā)目標,確定系統(tǒng)基本范圍,然后圍繞這一目標,確定要訪問的部門和人員,要了解的業(yè)務,在基本范圍內展開調研;
2、 以部門職責為基礎搞清各種現(xiàn)有業(yè)務、要填寫的表簿冊文檔報表等,其數據來源及去向;
3、 以業(yè)務為主線,搞清每個業(yè)務的每個環(huán)節(jié)的流程關系、涉及部門、輸入輸出項;
4、 以數據為主線,搞清數據采集方式、數據流向、數據之間的內在聯(lián)系;
5、 搞清哪些業(yè)務或數據是已建系統(tǒng)的,它們和新系統(tǒng)的關系是銜接還是替換;
6、 應思考是否有新技術可以改進現(xiàn)有工作,用戶提出的需求用現(xiàn)有技術能否實現(xiàn)。