結構化設計

結構化設計

結構化設計是運用一組標準的準則和工具幫助系統設計員確定軟體系統是由哪些模塊組成的,這些模塊用什麼方法聯結在一起,才能構成一個最優的軟體系統結構。

軟體設計過程


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

軟體設計目標


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

軟體設計概念


⑴抽象化:常用的抽象化手段有過程抽象、數據抽象和控制抽象
● 過程抽象:任何一個完成明確動能的操作都可被使用者當做單位的實體看待,儘管這個操作時機上可能由一系列更低級的操作來完成。
● 數據抽象:與過程抽象一樣,允許設計人員在不同層次上描述數據對象的細節。
● 與過程抽象和數據抽象一樣,控制抽象可以包含一個程序控制機制而無須規定其內部細節。
⑵自頂向下,逐步細化:將軟體的體系結構按自頂向下方式,對各個層次的過程細節和數據細節逐層細化,知道用程序設計語言的語句能夠實現為止,從而最後確立整個的體系結構。
⑶模塊化:將一個待開發的軟體分解成若干個小的簡單的部分——模塊,每個模塊可獨立地開發、測試,最後組裝成完整的程序。這是一種複雜問題的“分而治之”的原則。模塊化的目的是使程序結構清晰,容易閱讀,容易理解,容易測試,容易修改。
⑷控制層次:表明了程序構件(模塊)的組織情況。控制層次往往用程序的層次結構(樹形或網型)來表示。
● 深度:程序結構的層次數,可以反映程序機構的規模和複雜程度。
● 寬度:同一層模塊的最大模塊個數
● 模塊的扇出:一個模塊調用(或控制)的其他模塊數
● 模塊的扇入:調用(或控制)一個給定模塊的模塊個數
⑸信息屏蔽:將每個程序的成分隱蔽或封裝在一個單一的設計模塊中,定義每一個模塊時儘可能少的顯露其內部的處理,可以提高軟體的可修改性,可測試性和可移植性。
模塊獨立:每個模塊完成一個相對特定獨立的子功能,並且與其他模塊之間的聯繫簡單。衡量度量標準有兩個:模塊間的耦合和模塊的內聚。模塊獨立性強必須做到高內聚低耦合。
● 耦合:模塊之間聯繫的緊密程度,耦合度越高模塊的獨立性越差。耦合度從低到高的次序為:非直接耦合、數據耦合、標記耦合、控制耦合、外部耦合、公共耦合、內容耦合
內聚是指內部各元素之間聯繫的緊密程度,內聚度越低模塊的獨立性越差。內聚度從低到高依次是:偶然內聚、邏輯內聚、瞬時內聚、過程內聚、通信內聚、順序內聚、功能內聚。