1. 程式人生 > >軟體工程小記——需求分析

軟體工程小記——需求分析

第三章 需求分析

1.需求:需求是指目標軟體的需求,即軟體包含的功能、效能、安全、執行維護等方面的要求。
    功能需求是最重要的需求。
2.需求分析的最終成果:軟體需求規格說明書。
3.需求分析的基本任務:準確地回答“系統必須做什麼?”的問題。
4.需求分析的基本任務的描述:
    獲得當前系統的物理模型;
    抽象出當前系統的邏輯模型;
    建立目標系統的邏輯模型;
    對目標系統邏輯模型進行補充。
    
5.物理模型:可執行的應用系統
  邏輯模型:不可執行的應用系統;
  目標系統:待開發的軟體系統;
  當前系統:當前正在執行的系統軟體;
  
6.需求的種類:
    功能需求:目標軟體系統必須完成的全部功能;
    效能需求:目標軟體系統必須滿足的定時約束或容量約束;
    可靠性和可用性需求:目標軟體系統在給定的時間間隔內可以成功執行的概率的度量;
    出錯處理的需求:目標軟體系統對環境錯誤應該怎樣響應;
    各種藉口需求:目標系統與他的執行環境進行通訊的格式;
    安裝執行需求:目標系統在安裝、正常執行過程中所需要的基本軟硬體環境;
    未來可能提出來的需求:不屬於當前系統開發範疇,但根據分析將來很有可能會提出的相關要求考慮到當前系統的開發過程中。
    逆向需求:軟體系統不應該做什麼;
    約束:軟體系統應該遵守的限制條件;
    
7.需求分析的步驟:
    7.1 分析系統的資料要求;
        a.軟體系統的本質是處理資料的過程。
        b.軟體需求分析的起點是對目標軟體的資料要求展開分析。
        c.結構化分析方法就是以分析資料為核心的軟體工程方法學。
    7.2 分析系統的邏輯,建立系統邏輯模型;
        a.最終結果是以形式化的方式形成描述目標軟體系統的邏輯模型。
        b.需求分析過程中主要的邏輯模型有:
            資料流圖、資料字典、加工處理和資料儲存、E-R模型等。
    7.3 修訂開發計劃;
    7.4 構造原型;
        原型就是一個小軟體,它是最終開發出來的目標軟體系統的子集。
    7.5 驗證軟體的需求:
        a.軟體開發的巨大風險是:
            在軟體測試階段發現軟體的需求不準確、不完整,甚至是根本不能滿足使用者的需求。
        b.衡量軟體需求的標準:
            正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性、可追蹤性。
            可驗證性:即在經濟、技術、法律均可性的條件下,每一條需求都能得到驗證和確認。
            一致性:需求描述的需求規格說明書中前後保持一致,各種命名應該統一。
    7.6 編寫軟體需求規格說明書;
    
8.需求分析的方法:
    8.1 訪談及實地調研;
    8.2 結構化分析方法 SA:
        a.結構化分析方法就是面向資料流的自頂向下求精法。
        b.分析物件時可行性分析階段已經得到的描述目標軟體的高層邏輯模型,即高層的資料流圖和資料字典。
        c.結構化分析方法的核心思想是:自頂向下、逐步細化。
        d.結構化分析方法的核心是:
            採用資料流圖分層地來描述軟體在不同抽象層次的邏輯表示,然後在軟體設計中
            將軟體劃分為若干程式模組,並相互組織在一起完成所需要的軟體功能。
        e.結構化分析方法的主要工具:資料流圖、資料字典、E-R模型,他們一起構成系統的分析模型。
            這三個工具達成的主要目標:
                描述使用者的需求;
                建立結構化設計的基礎;
                定義在軟體完成後可以被確認的一組需求;
                
    8.3 面向物件分析方法:
        a.面向物件分析方法的出發點是儘可能模擬人類習慣的思維方式,即客觀世界是由各種物件組成,
            任何事物都可以被視為物件,複雜物件由多個簡單物件所構成。
        b.面向物件方法學的核心是:
            靜態模型:即類模型。
            動態模型:時序圖、活動圖、狀態轉換圖、協作圖等。
            功能模型:用例模型、資料流圖模型。
            
9.結構化分析
    a.結構化分析方法就是一種自頂向下、逐步細化的方法。
    b.結構化分析方法就是一種面向資料流的分析方法。
    c.結構化分析的工具:資料流圖、資料字典、IPO圖等。
    d.結構化分析的核心是資料流圖。
    e.結構化分析的思想是分解和抽象,即自頂向下、逐步細化,細化和求精的物件是資料流圖和資料字典。
    f.結構化分析方法的種類:
        正向需求分析方法:
            從資料流的輸入端到資料流輸出端。
        逆向需求分析方法:
            從資料流的輸出端回溯到資料流的輸入端。
            
    h.結構化分析方法的步驟概括:建立——抽象——建立——改進
10.結構化分層的思想:
  
11.結構化分析的步驟:自外向內、自頂向下、逐層細化、完善求精。
    a.尋找軟體的資料來源點和資料終點,得到資料流圖的外部實體;
    b.根據系統需求,逐個分析出細化的資料處理;
    c.分析聯絡資料處理的中間資料流和資料儲存檔案,完成本層次的資料流圖設計;
    d.對有資料中心特點的資料處理進行柱層析華,得出它的資料流圖子圖,重複此步,直到所有複雜處理均細化到最底層。
  
12.資料流圖可能出現的問題:
    a.資料流圖僅由資料處理、外部實體、資料流、資料儲存四大元素構成。
    b.任何資料流必須封裝在外部實體之間。
    c.每個處理至少有一條輸入資料流和輸出資料流。
    d.任何資料流圖子圖必須與他的上一層的父處理對應,即兩者的輸入資料流和資料輸出流必須在數量和內容上保持一致。
    e.資料流圖僅描述做什麼,不描述怎麼做和做的順序。
    
13.需求分析的其他工具:
    a.分析資料模型的工具:E-R圖;
    b.分析行為模型的工具:狀態轉換圖;
    c.分析資料加工的工具:IPO圖;
        即input proces output, IPO圖描述了資料、輸出資料和資料處理之間的關係。