軟件設計是把許多事物和問題抽象起來,并且抽象它們不同的層次和角度。建議用數(shù)學語言來抽象事務和問題,因為數(shù)學是最好的抽象語言,并且它的本質(zhì)就是抽象。將復雜的問題分解成可以管理的片斷會更容易。將問題或事物分解并模塊化這使得解決問題變得容易,分解的越細模塊數(shù)量也就越多,它的副作用就是使得設計者考慮更多的模塊之間耦合度的情況。
設計要素
軟件設計包括軟件的結構設計,數(shù)據(jù)設計,接口設軟件設計和過程設計。
結構設計是指:定義軟件系統(tǒng)各主要部件之間的關系。
數(shù)據(jù)設計是指:將模型轉換成數(shù)據(jù)結構的定義。
接口設計是指:軟件內(nèi)部,軟件和操作系統(tǒng)間以及軟件和人之間如何通信。
過程設計是指:系統(tǒng)結構部件轉換成軟件的過程描述。
設計原則
一、設計對于分析模型應該是可跟蹤的:軟件的模塊可能被映射到多個需求上。
二、設計結構應該盡可能的模擬實際問題。
三、設計應該表現(xiàn)出一致性。
四、不要把設計當成編寫代碼。
五、在創(chuàng)建設計時就應該能夠評估質(zhì)量。
六、評審設計以減少語義性的錯誤。