結構化設計

結構化設計,亦稱SD(Structured Design),是一種面向數據流的設計方法,目的在於確定軟體的結構。 結構化分析 是一種面向功能或面向數據流的需求分析方法,採用自頂向下、逐層分解的方法,建立系統的處理流程。

軟體設計

軟體設計過程對程式結構、數據結構、過程細節和接口細節逐步細化、評審和編寫文檔的過程。從技術角度上,軟體設計分成體系結構設計、數據設計、過程設計、接口設計4個方面的工作。從管理角度上講,軟體設計分為概要設計和詳細設計兩個階段。

軟體設計目標

設計必須實現分析模型中描述的所有顯示需求,必須滿足用戶希望的所有隱式需求;設計必須是可讀、可理解的,使得將來易於編程、易於測試、易於維護;設計應從實現角度出發,給出數據、功能、行為相關的軟體全貌。

基本思想與目的

基本思想是:根據SA方法中的數據流圖建立一個良好的模組結構圖(例如SC圖或軟體層次方框圖);運用模組化的設計原理控制系統的複雜性,即設計出模組相對獨立的,模組結構圖深度,寬度都適當的,單入口單出口的,單一功能的模組結構的軟體結構圖或軟體層次方框圖。此方法提供了描述軟體系統的工具,提出了評價模組結構圖質量的標準,即模組之間的聯繫越鬆散越好,而模組內各成分之間的聯繫越緊湊越好。

結構化設計的目的:使程式的結構儘可能反映要解決的問題的結構。

結構化設計的任務:把需求分析得到的數據流圖DFD等變換為系統結構圖(SC)。

基本原理和相關概念

⑴抽象化:常用的抽象化手段有過程抽象、數據抽象和控制抽象

● 過程抽象:任何一個完成明確功能的操作都可被使用者當做單位的實體看待,儘管這個操作時機上可能由一系列更低級的操作來完成。

● 數據抽象:與過程抽象一樣,允許設計人員在不同層次上描述數據對象的細節。

● 與過程抽象和數據抽象一樣,控制抽象可以包含一個程式控制機制而無須規定其內部細節。

⑵自頂向下,逐步細化:將軟體的體系結構按自頂向下方式,對各個層次的過程細節和數據細節逐層細化,直到用程式設計語言的語句能夠實現為止,從而最後確立整個的體系結構。

⑶模組化:將一個待開發的軟體分解成若干個小的簡單的部分——模組,每個模組可獨立地開發、測試,最後組裝成完整的程式。這是一種複雜問題的“分而治之”的原則。模組化的目的是使程式結構清晰,容易閱讀,容易理解,容易測試,容易修改。

⑷控制層次:表明了程式構件(模組)的組織情況。控制層次往往用程式的層次結構(樹形或網型)來表示。

● 深度:程式結構的層次數,可以反映程式機構的規模和複雜程度。

● 寬度:同一層模組的最大模組個數

● 模組的扇出:一個模組調用(或控制)的其他模組數

● 模組的扇入:調用(或控制)一個給定模組的模組個數

⑸信息禁止:將每個程式的成分隱蔽或封裝在一個單一的設計模組中,定義每一個模組時儘可能少的顯露其內部的處理,可以提高軟體的可修改性,可測試性和可移植性。

⑹模組獨立:每個模組完成一個相對特定獨立的子功能,並且與其他模組之間的聯繫簡單。衡量度量標準有兩個:模組間的耦合和模組的內聚。模組獨立性強必須做到高內聚低耦合。

● 耦合:模組之間聯繫的緊密程度,耦合度越高模組的獨立性越差。耦合度從低到高的次序為:非直接耦合、數據耦合、標記耦合、控制耦合、外部耦合、公共耦合、內容耦合。

● 內聚是指內部各元素之間聯繫的緊密程度,內聚度越低模組的獨立性越差。內聚度從低到高依次是:偶然內聚、邏輯內聚、瞬時內聚、過程內聚、通信內聚、順序內聚、功能內聚。

基本步驟

分為概要設計和詳細設計兩個階段。

概要設計

概要設計也稱為結構設計或總體設計,主要任務是把系統的功能需求分配給軟體結構,形成軟體的模組結構圖。

概要設計的基本任務:設計軟體系統結構:劃分功能模組,確定模組間調用關係;數據結構及資料庫設計:實現需求定義和規格說明過程中提出的數據對象的邏輯表示;編寫概要設計文檔: 包括概要設計說明書、資料庫設計說明書,集成測試計畫等;概要設計文檔評審:對設計方案是否完整實現需求分析中規定的功能、性能的要求,設計方案的可行性等進行評審。

概要設計工具:結構圖(SC: Structure Chart ),反映系統的功能實現以及模組與模組之間的聯繫與通信,即反映了系統的總體結構。注意:數據流DFD是軟體生命周期的定義階段中的需求分析方法中結構化分析方法的一種,此外還有數據字典(DD)、判定樹和判定表,而SC是開發階段中概要設計使用的方法。

詳細設計

詳細設計的目的:為軟體結構圖(SC)中的每 一個模組確定採用的算法,模組內數據結構,用某種選定的表達工具(如N-S圖等)給出清晰的描述。

相關詞條

相關搜尋

熱門詞條

聯絡我們