軟件工程(六)第一代軟件工程(傳統軟件工程)—— 結構化分析與設計

結構化分析與設計的流程

瀑布模型由傳統的生存週期過程演變而來。作爲一種系統開發方法,結構化分析與設計是瀑布模型的首次實踐。根據瀑布模型的上述流程,需求分析與軟件設計是進入編碼階段前必須完成的任務。具體來說,系統開發從需求分析開始,首先建立系統的需求模型;接着通過 SD 方法提供的映射規則,把分析模型轉化爲初始設計模型;然後再優化爲系統最終設計模型

基本任務

  1. 結構化分析

    SA 有兩項基本任務,即建立系統分析模型和編寫軟件需求規格說明書,二者都是分析階段必須完成的文檔。分析模型​包含描述軟件需求的一組模型,是形成 SRS 文檔、完成軟件設計的基礎,其中包含功能模型,​待開發系統的功能需求;數據模型,表示待開發系統的數據需求;行爲模型,表示待開發系統的行爲需求結構化分析的主要指導思想是抽象與分解

  2. 結構化設計

    SD 階段把分析模型中的 DFD 圖轉換爲最終 SC 圖,這僅僅是完成了軟件設計的第一步。在隨後的詳細設計中,還需用適當工具對各個模塊採用的算法和數據結構進行足夠細緻的描述。SC 圖需分兩步完成,即首先通過 “映射” 獲得初始 SC 圖;然後通過 “優化” 獲得最終 SC 圖。結構化設計的主要指導思想是分解與細化


SA 模型

組成


上圖顯示了 SA 模型的組成,由此可見,數據字典(DD)處於模型模型的核心,它是系統設計的各種數據對象總和,從 DD 出發可構建三種圖

  1. 實體聯繫圖(E-R 圖)

    描述數據對象間的關係,它代表軟件的數據模型。在實體聯繫圖中出現的每個數據對象的屬性,均可用數據對象說明來描述

  2. 數據流圖(DFD)

    指明系統中的數據是如何流動和變換的,以及描述使數據流進行變換的功能。加工規格說明,在 DFD 圖中出現的每個功能,可在加工規格說明中(PSPEC)進行描述,它們一起構成軟件的功能模型

  3. 狀態轉換圖(STD)

    指明系統在外部事件的作用下將如何動作,表明系統的各種狀態以及狀態間的變換,從而構成行爲模型的基礎。關於軟件控制方面的附加信息,可用控制規格說明來描述

數據流圖

任何軟件系統從根本上來說,都是對數據進行加工或變換的工具。數據流圖只使用四種基本圖形符號:圓框代表加工;箭頭代表數據流向,數據名稱總是標在箭頭的邊上;方框表示數據的源點和終點;雙槓或單槓表示數據文件或數據庫。文件與加工之間用帶箭頭的直線連接,單向表示只讀或只寫,雙向表示又讀又寫

DFD 所表現的範圍,可大到整個系統,小到一個模塊。在需求分析中,常常用一組 DFD 圖由粗到精地表示同一軟件在不同抽象級別上的功能模型,並稱之爲分層數據流圖

數據字典

數據字典的作用就是對軟件中的每個數據規定一個定義條目

加工規格說明

通常用結構化語言、判定表或判定樹作爲描述工具。每個加工規格說明可用像字典中的條目一樣記在卡片上

SD 模型

組成

SD 模型由 SA 模型映射而來。SA 模型的數據字典可轉換爲待開發系統的數據設計;數據流圖可轉換爲體系結構設計(SC 圖)與接口設計;加工規格說明可轉換爲模塊內部的詳細過程設計等等


在圖中,由下至上包含了數據設計、體系結構設計、接口設計與過程設計。體系結構設計是用來確定軟件結構的,其描述工具爲結構圖,簡稱 SC 圖。過程設計主要指模塊內部的詳細設計

SC 圖

在 SC 圖中,用矩形框表示模塊,帶箭頭的連線表示模塊間調用,並在調用線的兩旁標出傳入和傳出模塊的數據流。SC 圖允許使用的六種模塊分別爲傳入模塊、傳出模塊、變換模塊、漏模塊、源模塊與控制模塊。模塊調用關係分別有簡單調用、選擇調用和循環調用


結構化系統分析

結構化分析就是使用 DFD、DD、結構化英語、判定表和判定樹等工具,來建立一種新的、稱爲結構化說明書的目標文檔。這裏的結構化說明書就是 SRS

基本步驟

自頂向下對系統進行功能分解,畫出分層 DFD 圖;向後向前定義系統的數據和加工,編制 DD 和 PSPEC;最終寫出 SRS

  1. 畫分層數據流圖

    從系統的基本功能模型開始,逐層對系統進行分解,每分解一次,系統的加工數量就增加一次,繼續重複分解,直到所有加工都足夠簡單爲止。分層 DFD 圖爲整個系統勾畫了一個概貌

  2. 確定數據定義和加工策略

    定義系統的數據、確定加工的策略等問題。一般從數據的終點開始,沿着 DFD 圖一步步向數據源點回溯,最終產生 SRS 文檔​

  3. 需求分析的複審

    需求分析的文檔完成後,應用用戶和系統分析員共同進行復審,並吸收設計人員參加


結構化系統設計

按照出發點的不同,傳統的軟件設計又可細分爲面向數據流的設計和麪向數據(數據結構)的設計兩大類。前者以 SD 方法爲主要代表,後者以 Jackson 方法爲主要代表,本文僅討論 SD 方法

從 DFD 圖到 SC 圖

從 SA 獲得的 DFD 圖中,所有系統可歸結爲變換型結構和事務型結構兩種類型。按照 SD 方法規定的一組規則,採用變換映射與事務映射,將變換型 DFD 圖和事務型 DFD 圖事務映射爲初始 SC 圖

優化初始 SC 圖

SD 方法中常用於優化軟件初始 SC 圖的兩條指導規則

  1. 對模塊劃分的原則

    過長的模塊往往是分解不充分的表現,會增加閱讀理解的難度;但小模塊太多也會塊間聯繫變得複雜,增大系統在模塊調用時傳遞信息所花費的開銷

  2. 高扇入/低扇出的原則

    扇入高則上級模塊多,能夠增加模塊利用率;扇出低則表示下級模塊少,可以減少模塊調用和控制的複雜度。設計良好的軟件具有甕形結構,兩頭小,中間大,這類軟件在下部收攏,表明它在低層模塊中使用了較多高扇入的共享模塊

模塊設計

傳統軟件工程將軟件設計分兩步走:總體(結構)設計 —— 用最終 SC 圖表示;模塊設計 —— 逐步細化的方法實現

  1. 目的

    爲 SC 圖中的每個模塊確定採用的算法和塊內數據結構,用選定的表達工具給出清晰的描述

  2. 任務

    編寫軟件的模塊設計說明書,爲此設計人員應:確定每一模塊採用的算法、確定每一模塊使用的數據結構、確定模塊接口的細節​

  3. 原則與方法

    清晰第一的設計風格
    結構化的控制結構
    逐步細化的實現方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章