軟體需求分析是軟體生存期非常重要的一部分。它是介於軟體計畫和軟體設計之間的橋梁。一方面,需求分析以系統規格說明和專案規劃為分析活動的出發點,並從軟體角度對它們進行檢查與調整:另一方面,需求規格說明又是軟體設計、編碼、測試、乃至維護的重要基礎。良好的分析有助於避免或儘量減少早期錯誤。從而提高軟體生產率,降低軟體的開發成本,改進軟體的質量。
需求分析的過程:
需求分析的過程包括以下四個部分,分別為問題定義、分析與綜合、編寫需求分析階段文件、需求分析評審。下面分別從上述四部分進行闡述。
問題定義:即明確對目標系統的綜合要求和需求應該達到什麼樣的標準。
分析與綜合:則要求總資訊流和資訊結構出發,逐步細化軟體功能,找出系統內部每個元素之間的聯絡,介面特徵和設計上的約束條件。根據上述方法最終確定採用哪種需求分析方法。
編寫需求分析階段文件:此階段需要編寫四個文件,軟體需求說明書、資料要求說明書、初步的使用者手冊、修改完善與確定軟體開發實施計畫。
需求分析評審:是要對需求階段所做的工作進行評估。檢測需求分析階段所做的工作是否符合要求。
首先要在建立分析模組之前明確「問題是什麼」,能夠清楚地表達問題的資訊域和功能域。然後還要能以層次化的方法對問題進行分解和不斷細化。最後要能分析系統的邏輯檢視和物理檢視。
導圖如下
不同的需求分析方法適用於不同的型別。具體開發過程中採用什麼樣的需求分析方法還要靈活使用。下面以面向資料流的結構化分析方法(sa)為例,它適用於資料處理型別軟體的需求分析。具體來說,結構化分析方法就是用抽象模型的概念,按照軟體內部資料傳遞變換的關係,自行向下,逐層分解,直至找到滿足功能要求的所有可實現軟體的軟體為止。
下面重點講解資料流圖,下圖中是資料流圖中圖形元素所代表的含義。以及資料流與資料加工兩者之間的關係。
分層資料流圖的設計方法:
把整個系統看成乙個大的加工,然後根據資料實體從哪些外部實體接收資料流,以及系統傳送哪些資料流到外部實體,就可以畫出輸入輸出圖。這張圖稱為頂層圖
把頂層圖的加工分解成若干個加工,並用資料流將這些加工連線起來,使得頂層圖的輸入資料經過加工處理後,變成頂層圖的輸出資料流。這張圖稱為0層圖。(從乙個加工畫出一張資料流圖的過程就是對加工的分解。)
把每個加工看成乙個小系統,把加工的輸入輸出資料流看成小系統的輸入輸出流。向0層圖那樣畫出每個小系統的加工dfd圖。
對dfd圖中的每個加工,重複第三步的分解過程。直到不可再分解。現在得到一套分層資料流圖。
對於乙個軟體系統,其資料流圖可能有許多曾,每一層又有許多張圖。為了區分不同的加工和不同的dfd子圖,應該對每張圖進行編號,以便於管理。
資料流圖上所有圖形符號只限於以上四種基本圖形元素
資料流圖的主圖必須包括上述四種基本元素,缺一不可
每個加工至少有乙個輸入資料流和乙個輸出資料流
在資料流圖中,按層給加工框編號。編號表明該加工所處層次,以及上下層的親子關係
對頂任何乙個資料流子圖必須與它上一層的乙個加工對應,兩者的輸入資料流和輸出資料流必須一致。
圖上每個元素都必須有名字
資料流圖中不可夾帶控制流
初畫時可以忽略瑣碎的細節,以集中精力於主要資料流。
在很長的一段時間裡大家一致認為需求分析是整個軟體工程中最簡單的一步。但是最近十年大家發現需求分析是整個軟體工程中最關鍵的乙個環節。假如在需求分析時,沒有能夠正確認識到顧客需求的話,那麼最後的軟體實際上不可能達到顧客的要求,或者在規定時間內不能按時完成專案。
軟體工程之需求分析
可行性分析的基本目的就是用較小的成本在較短的時間內確定軟體是否有可行的解決方案,即軟體值不值得開發的問題。一旦確定要開發軟體,開發人員首要的任務是要搞清楚使用者的需求。對軟體需求的深入理解是軟體開發工作獲得成功的前提條件,需求分析是軟體定義的最後乙個階段,它的基本任務是準確的回答 系統必須做什麼 的...
軟體工程之需求分析
分析建模有兩種方法結構化分析和物件導向的分析。結構化分析 考慮資料和處理。物件導向分析 關注定義類和影響客戶需求的類之間的協作方式。1 資料建模 定義在系統內部處理的所有資料物件 資料物件間的關係以及其他與這些關係相關的資訊 基數,1 1或1 n等 形態 0關係可有可無,1關係必須出現1次 這裡的資...
軟體工程之需求定義
學習 需求獲取 剪枝 需求優選 文件化 撰寫需求規格說明書 需求的定義涵蓋如下內容 將問題與解決方案分開 建立單獨的問題描述文件 什麼是需求?jackson,1995 例項一 需求r 當飛機在跑道上移動時,反推器應處於工 作狀態領域性質d 規格說明s 當且僅當有輪脈衝產生時,反推器工作。s d r?...