複製鏈接
請複製以下鏈接發送給好友

結構化設計

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

結構化設計軟件設計

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

結構化設計軟件設計目標

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

結構化設計基本思想與目的

基本思想是:根據SA方法中的數據流圖建立一個良好的模塊結構圖(例如SC圖或軟件層次方框圖);運用模塊化的設計原理控制系統的複雜性,即設計出模塊相對獨立的,模塊結構圖深度,寬度都適當的,單入口單出口的,單一功能的模塊結構的軟件結構圖或軟件層次方框圖。此方法提供了描述軟件系統的工具,提出了評價模塊結構圖質量的標準,即模塊之間的聯繫越鬆散越好,而模塊內各成分之間的聯繫越緊湊越好。
結構化設計的目的:使程序的結構儘可能反映要解決的問題的結構。
結構化設計的任務:把需求分析得到的數據流圖DFD等變換為系統結構圖(SC)。

結構化設計基本原理和相關概念

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

結構化設計基本步驟

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

結構化設計概要設計

概要設計也稱為結構設計或總體設計,主要任務是把系統的功能需求分配給軟件結構,形成軟件的模塊結構圖。
概要設計的基本任務:設計軟件系統結構:劃分功能模塊,確定模塊間調用關係;數據結構及數據庫設計:實現需求定義和規格説明過程中提出的數據對象的邏輯表示;編寫概要設計文檔: 包括概要設計説明書、數據庫設計説明書,集成測試計劃等;概要設計文檔評審:對設計方案是否完整實現需求分析中規定的功能、性能的要求,設計方案的可行性等進行評審。
概要設計工具:結構圖(SC: Structure Chart ),反映系統的功能實現以及模塊與模塊之間的聯繫與通信,即反映了系統的總體結構。注意:數據流DFD是軟件生命週期的定義階段中的需求分析方法中結構化分析方法的一種,此外還有數據字典(DD)、判定樹和判定表,而SC是開發階段中概要設計使用的方法。

結構化設計詳細設計

詳細設計的目的:為軟件結構圖(SC)中的每 一個模塊確定採用的算法,模塊內數據結構,用某種選定的表達工具(如N-S圖等)給出清晰的描述。
參考資料
  • 1.    普雷斯曼.軟件工程實踐者的研究方法:機械工業出版社,2011-5-1
  • 2.    倪寧,張海藩.軟件工程第3版:人民郵電出版社,2010年02月