軟件工程總結筆記——軟件結構設計(四)

第四章 軟件結構設計

軟件設計從概念上分爲結構設計和詳細設計兩個階段。

結構設計又稱總體設計,主要任務是制訂系統實施方案和設計規範併合理確定軟件系統的整體模塊結構及接口關係。

詳細設計又稱模塊設計,主要任務是詳細規定每個模塊功能的具體實現算法。

4.1 概述

軟件設計的主要過程:將軟件需求階段產生的系統模型轉化爲軟件設計模型。

4.1.1 軟件設計的過程

(1)從工程管理角度劃分:
①總體設計:即概要設計,將軟件需求轉化爲數據結構和軟件的系統結構;確定系統接口、全局數據結構和數據庫模式。
②詳細設計:即過程設計,通過對結構表示進行細化,得到軟件的詳細的數據結構和算法;並用適當方式表示算法和數據結構的細節。

2)從技術角度劃分:
①數據設計:將信息域分析模型變換成軟件實現所需要的數據結構。
②體系結構設計:體系結構設計定義了軟件的整體結構。
③接口設計:接口設計描述了軟件內部、軟件和寫作系統之間以及軟件同人之間如何通信。
④部件級設計:部件級設計將軟件體系結構的結構性元素變換爲對軟件部件的過程性描述。

4.1.2 軟件結構設計的目標

目標:綜合採用各種技術手段,將系統需求轉換爲數據結構、模塊結構(或對象/類結構)的表達形式,並實現系統的性能、安全性、可靠性要求,取得最佳方案。

結構設計的結果通常用模塊結構圖表達:
在這裏插入圖片描述

4.1.3 軟件結構設計的任務

系統應該如何實現

(1)最佳的方案設計
(2)制訂設計規範、標準及約定原則
(3)軟件結構設計
(4)數據結構及數據庫設計
(5)網絡系統設計
(6)系統安全性設計
(7)系統性能、可靠性設計
(8)設計文檔編寫
(9)評審

4.1.4 軟件結構設計的方法

(1)結構化設計方法
與結構化分析方法相配合的設計方法

內容:根據系統的數據流進行設計,稱爲面向數據流的設計或者過程驅動的設計,遵循自頂向下的系統化分解的思想,應用一組轉換規則講軟件的數據流圖逐步轉換爲功能相對獨立、執行相互協調、數據相互交換的一組模塊的層次結構,並綜合質量評價因素進行結構優化。

(2)數據結構驅動的設計方法
根據系統的數據結構進行設計,稱爲面向數據結構的設計或者數據驅動設計。
內容:首先用表達工具描述數據結構的格式,然後應用一組規則將數據結構格式轉換爲程序的控制結構格式,最後在細化定義。

(3)面向對象的設計方法
與面向對象分析方法相匹配的設計方法。

內容:依據面向對象分析建立的對象/類的分析模型,進一步分解和改進這個對象的層次模型,再通過確定對象的構造以及對象之間的動態關係,最後實現對象中提供的方法的過程設計。

4.2 結構化設計的概念和原理

結構化設計的核心思想:如何應用抽象的原則,將系統功能逐層分解爲層次化的模塊結構。

4.2.1抽象和細化

(1)抽象手段
① 過程抽象
② 數據抽象

(2)細化
在原始說明的基礎上進行詳細說明,隨着不斷細化給出更多的細節。

4.2.2 自頂向下,逐步求精
4.2.3 信息隱藏和局部化
4.2.4 模塊化

(1)模塊
概念:指具有相對獨立性的,由數據說明、執行語句等程序對象構成的集合。模塊可以被單獨命名,而且可通過名字來訪問,例如,過程、函數、子程序、宏等都可以作爲模塊。

屬性:
① 接口:指模塊的輸入與輸出
② 功能:指模塊實現什麼功能
③ 邏輯:描述內部如何實現要求的功能及所需的數據,即描述模塊內部該怎麼做。
④ 狀態:指該模塊的運行環境和條件,即模塊的調用與被調用關係。

(2)模塊化
概念:按照規定原則,把軟件劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集中起來組成一個整體,可以完成指定的功能,實現問題的求解,實際上是系統分解和抽象的過程。

4.2.5 模塊獨立性

(1)耦合
概念:指模塊間互相連接的緊密程度的度量。

劃分:
①非直接耦合
②數據耦合
③標記耦合
④控制耦合
⑤外部耦合
⑥公共耦合
⑦內容耦合

(2)內聚
內聚性:是對一個模塊內部各個組成元素之間相互結合的緊密程度的度量指標。

劃分:
①功能內聚
②順序內聚
③通信內聚
④過程內聚
⑤時間內聚
⑥邏輯內聚
⑦偶然內聚

4.3 結構設計的原則

(1)降低模塊的耦合性,提高模塊的內聚性
(2)模塊規模應該適中
(3)選擇適當的深度、寬度、扇出和扇入
(4)模塊的作用域應處於其控制域範圍之內
(5)儘量降低模塊的接口複雜度
(6)設計單入口單出口的模塊
(7)模塊功能應該可以預測

4.4 結構設計的圖形工具

4.4.1 層次圖和HIPO圖

在這裏插入圖片描述

4.4.2 結構圖

在這裏插入圖片描述

4.5 面向數據流的設計方法

4.5.1 數據流圖的類型

(1)變換型數據流圖
(2)事務型數據流圖

4.5.2 結構設計過程

(1)分析並進一步精化系統的數據流圖
(2)確定數據流的結構特徵
(3)採用變換型設計方法或者事務型設計方法將數據流圖逐步地轉換爲系統的模塊結構
(4)根據模塊獨立性原則和設計質量評價標準,進一步精化模塊結構。

4.5.3 變換分析

(1)確定輸入、輸出、變換的加工集合
(2)完成第一級分解,確定系統頂層模塊
(3)繼續下層分解
(4)事務分析

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