軟件設(shè)計(jì)
1.什么是軟件設(shè)計(jì)
軟件設(shè)計(jì)是指利用成熟的技術(shù)和產(chǎn)品,完成工程技術(shù)要求的設(shè)計(jì)。
2.軟件設(shè)計(jì)的內(nèi)容
軟件設(shè)計(jì)是從軟件需求規(guī)格說明書出發(fā),根據(jù)需求分析階段確定的功能設(shè)計(jì)軟件系統(tǒng)的整體結(jié)構(gòu)、劃分功能模塊、確定每個(gè)模塊的實(shí)現(xiàn)算法以及編寫具體的代碼,形成軟件的具體設(shè)計(jì)方案。軟件設(shè)計(jì)是把許多事物和問題抽象起來,并且抽象它們不同的層次和角度。將問題或事物分解并模塊化使得解決問題變得容易,分解的越細(xì)模塊數(shù)量也就越多,它的副作用就是使得設(shè)計(jì)者考慮更多的模塊之間耦合度的情況。而軟件設(shè)計(jì)模式作為當(dāng)代計(jì)算機(jī)軟件開發(fā)而形成的一種全新的設(shè)計(jì)理念,軟件設(shè)計(jì)模式在計(jì)算機(jī)的應(yīng)用中顯得越來越重要了。
軟件設(shè)計(jì)是把許多事物和問題抽象起來,應(yīng)用各種各樣的技術(shù)和原理,并用它們足夠詳細(xì)的定義一個(gè)設(shè)備、一個(gè)程序或系統(tǒng)的物理實(shí)現(xiàn)的過程。這個(gè)步驟是由多方面的直覺與判斷力來共同決定的。一個(gè)對(duì)軟件的全局觀點(diǎn)。系統(tǒng)通過逐步求精使得設(shè)計(jì)陳述逐漸接近源代碼。這里有兩個(gè)基本步驟,第一步是初步設(shè)計(jì)(Preliminary design) ,關(guān)注于如何將需求轉(zhuǎn)換成數(shù)據(jù)和軟件框架。
第二步是詳細(xì)設(shè)計(jì)(Detail design),關(guān)注于將框架逐步求精細(xì)化為具體的數(shù)據(jù)結(jié)構(gòu)和軟件的算法表達(dá)。發(fā)生中的設(shè)計(jì)行為、數(shù)據(jù)、算法和程序設(shè)計(jì)都需要由現(xiàn)代程序所需的界面設(shè)計(jì)這一清晰的行為來結(jié)合起來。界面設(shè)計(jì)(Interface design) 建立程序布局和人機(jī)交互機(jī)制。貫穿設(shè)計(jì)過程的質(zhì)量由一系列的正式技術(shù)評(píng)定(formal technical reviews)或設(shè)計(jì)排演(design walkthroughs)來評(píng)價(jià)。
3.軟件設(shè)計(jì)的要素
- 軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)設(shè)計(jì),接口設(shè)計(jì)和過程設(shè)計(jì)。
- 結(jié)構(gòu)設(shè)計(jì):定義軟件系統(tǒng)各主要部件之間的關(guān)系。
- 數(shù)據(jù)設(shè)計(jì):將模型轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu)的定義。
- 接口設(shè)計(jì):軟件內(nèi)部,軟件和操作系統(tǒng)間以及軟件和人之間如何通信。
- 過程設(shè)計(jì):系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
4.軟件設(shè)計(jì)的原則
- 設(shè)計(jì)對(duì)于分析模型應(yīng)該是可跟蹤的:軟件的模塊可能被映射到多個(gè)需求上。
- 設(shè)計(jì)結(jié)構(gòu)應(yīng)該盡可能的模擬實(shí)際問題。
- 設(shè)計(jì)應(yīng)該表現(xiàn)出一致性。
- 不要把設(shè)計(jì)當(dāng)成編寫代碼。
- 在創(chuàng)建設(shè)計(jì)時(shí)就應(yīng)該能夠評(píng)估質(zhì)量。
- 評(píng)審設(shè)計(jì)以減少語義性的錯(cuò)誤。
- 設(shè)計(jì)應(yīng)該模塊化,將軟件邏輯地劃分為元素或子系統(tǒng),并包含數(shù)據(jù)、體系結(jié)構(gòu)、接口和構(gòu)件的清晰表示。
5.軟件設(shè)計(jì)的意義
軟件設(shè)計(jì)的任務(wù)是從軟件需求規(guī)格說明書出發(fā),根據(jù)需求分析階段確定的功能設(shè)計(jì)軟件系統(tǒng)的整體結(jié)構(gòu)、劃分功能模塊、確定每個(gè)模塊的實(shí)現(xiàn)算法以及編寫具體的代碼,形成軟件的具體設(shè)計(jì)方案。軟件設(shè)計(jì)是一種在設(shè)計(jì)者計(jì)劃中通過諸如軟件如何滿足客戶的需要,如何才能容易地實(shí)現(xiàn)和如何才能方便地?cái)U(kuò)展功能以適應(yīng)新的需求等不同的考慮的創(chuàng)造性活動(dòng)。軟件設(shè)計(jì)有很多設(shè)計(jì)方法或技巧,通過借鑒他人的經(jīng)驗(yàn)讓這件事完成得更好。同時(shí),設(shè)計(jì)者們也可以利用成熟的標(biāo)記法將他們的想法和計(jì)劃傳達(dá)給開發(fā)者以及其他相關(guān)人員,使他們更好地了解這個(gè)系統(tǒng)。