看了上邊的這張圖,相比大家都會明白這張講的大概內容,下邊我按這張圖的分類進行總結。
一,先看需求分析的任務:
通俗一點講就是藉助當前系統的邏輯模型匯出目標系統的邏輯模型,也就是解決“做什麼”的問題。大家看這張圖理解一下:
詳細一點說就是:1,深入描述軟體的功能和效能; 2,確定軟體設計的約束和軟體同其它系統元素的介面細節; 3,定義軟體的其它有效性需求。 總而言之,需求分析就是針對使用者的要求,來確定被開發軟體系統的系統元素,構造出我們想要達到的模型!
二,需求分析的過程:
(1)首先就是問題識別:我們要明白我們針對的問題,這裡我舉幾個:1,功能需求;2,效能需求;3,環境需求;4,可靠性需求;5,安全保密要求;6,使用者介面需求;7,資源使用需求;8,成本消耗需求;9,預先估計以後系統可能達到的目標等, 這些都是我們需要識別的問題;當然問題識別的另一項任務是建立分析需要的通訊途徑,方便我們能夠順利的對這些問題進行分析。
(2)其次,就是分析與綜合:從資訊流和資訊結構出發,逐步細化所有的軟體功能,找出系統各元素之間的聯絡,介面特性和設計上的約束,分析它們是否滿足功能要求,是否合理。其實就是根基使用者的要求,來分析這款系統中對應的需求。 (3),編製需求分析階段的文檔:這裡包括四個方面,有軟體需求說明書;資料要求說明書;初步的使用者手冊;和修改,完善與確定軟體開發實施計劃。 (4),最後就是需求分析評審:這裡我提幾個標準:
1,系統定義的目標是否與使用者的要求一致; 2,系統需求分析階段提供的文檔資料是否齊全; 3,文檔中的所有描述是否完整,清晰,準確反映使用者要求; 4,與所有其它系統成分的重要介面是否都已經描述。這是需求分析的四個階段。
三,需求分析的原則:
這裡我給大家提出6條:1,開始建立模型前,先理解問題;2,開發原型,使得使用者能夠瞭解將如何發生人機互動;3,記錄每個需求的起源和原因;4,使用多個需求視圖;5,給需求附於優先順序;6,努力刪除含糊性。
四,軟體需求分析的方法:
1,結構化分析方法,就是用抽象模型的概念,按照軟體內部資料傳遞,變換的關係,自頂向下逐層分解,直到找到滿足功能要求的軟體為之!這裡有四種工具,大家來看:資料流圖,資料詞典,結構化英語,判定表與判定樹;這裡我重點總結一下資料流圖,因為它用的最多。資料流圖的一些相關圖,大家看一下:
根基上邊的三幅圖,我在這裡提出畫資料流程圖的幾個原則: 1,資料流圖上所有圖形符號只限於前述的四種基本圖形元素; 2,主圖中必須包括前述的四種基本元素,缺一不可; 3,每個加工至少有一個輸入資料流和一個輸出資料流; 4,在資料流圖中,需按層給加工框編號,編號表明該加工所處層次及上下層的親子關係;
5,規定任何一個資料流圖子圖必須與它上一層的一個加工對應,兩者的輸入資料流與輸出資料流必須一致。 6,圖上每個元素都必須有名字; 7,資料流圖中不可夾帶控制流程; 8,初畫時可以忽略瑣碎的細節,以集中精力於主要的資料流。
2,原型型方法:開發初期我們構造一個原型,它可以和目標系統有差距,需要我們做的就是通過不斷的運行,評價,將此原型慢慢向目標軟體系統靠攏。它的優點就是設計人員能夠和使用者一直在一起。大家看這張圖:
3,動態分析方法:這裡也有三種圖供我們選用: 狀態遷移圖, 時序圖, Petri網。
狀態遷移圖:是描述系統的狀態如何相應外部的訊號進行推移的一種圖形表示。大家看這張圖就會明白:
Petri(petri Net Graph)網:適用於描述與分析相互獨立,協同操作的處理系統,也就是並發執行的處理系統。大家看這兩張圖,就會非常清楚:
綜上,是我們需求分析的幾種方法,我們可以根基我們的需要,選擇適當的圖進行研究,當然互動使用效果會更好!
五,最後我們說一下軟體需求規格說明:每一階段都需要有報告,有相同的部分,也有各自的特點,需要我們做的尋同存異,不斷研究,寫出符合實際的報告文檔:
軟體需求,總而言之,就是做這款軟體需要什麼東西,拿這些東西做什麼,有什麼樣的標準與要求等,也就是弄明白要做什麼。想到上一篇中的蓋房子,其實軟體需求,就是針對要蓋的房子,去分析研究一下需要的東西,需要東西的多少,蓋成什麼樣的房子,達到什麼樣的標準等等。