軟件設計的任務,就是把分析階段產生的需求說明轉換為用適當手段表示的軟件設計文檔。軟件設計通常分兩個階段完成。
英國論文代寫第一個階段是概要設計,用來確定軟件的結構,即軟件的組成,以及各組成成分(子係統或模塊)之間的相互關係。第二階段是詳細設計,其任務是確定模塊內部的算法和數據結構,產生描述各模塊程序過程的詳細設計文擋。
在設計階段,設計人員要完成兩種文檔:概要設計說明書和詳細設計說明書。前者主要規定軟件的結構,後者則著重描述程序的過程。
( 1)概要設計說明書包括·以圖表形式表示的軟件總體結構;·模塊的外部設計,包括關於各模塊功能、性能與接口的簡要描述:
.數據結構設計,包括數據模式、訪問方法和存儲要求等。
(2)詳細設計說明書包括·表示每一模塊軟件結構的圖表,確定每一模塊使用的數據結構;·對逐個模塊的程序描述,包括算法和邏輯流程,輸入/輸出項、外部接口等;·為每一個模塊設計出一組測試用例,以便在編碼階段對模塊代碼(即程序)進行預定的測試。
傳統的程序設計方法是結構化程序設計:自頂向下,逐步求精;其程序結構是按功能劃分若幹個基本模塊,這些模塊形成一個樹狀結構,各模塊之間的關係盡可能簡單,在功能上相對獨立,每一模塊內部均是由順序、選擇和循環三種基本結構組成,其模塊化實現的具體方法是使用子程序。結構化程序設計由於采用了模塊分解與功能抽象、自頂向下、分而治之的手段,從而有效地將一個較複雜程序係統的設計任務分成許多易控製和處理的子任務,這些任務都是可獨立編程的子程序模塊。每一個子程序都有一個清晰的界麵,使用起來非常方便。結構化程序設計方法雖然具有很多的優點,但它是一種麵向數據/過程的設計方法,它把數據和過程分離為相互獨立的實體,程序員在編碼時必須時刻考慮所需處理的數據的格式。對於不同的數據格式,即使要做同樣的處理或對相同的數據格式要做不同的處理,都需要編寫不同的程序,因此結構化程序的可重用性不好。另一方麵,當數據和過程相互獨立時,總存在著用錯誤的數據調用正確的程序模塊或用正確的數據調用了錯誤的程序模塊的可能性。因此,要使數據與程序保持相容,已經成為程序員的一個沉重負擔。上述這些問題,結構化程序設計方法本身是解決不了的,它需要借助麵向對象程序設計方法給予解決。
麵向對象程序設計既吸取了結構化程序設計的一切優點,又考慮了現實世界與麵向對象解空間的映射關係,它所追求的目標是將現實世界的問題求解盡可能簡單化。麵向對象程序設計將數據及對數據的操作放在一起,作為一個相互依存、不可分割的整體來處理,它采用數據抽象和信息隱藏技術,將對象及對對象的操作抽象成一種新的數據類型一一類,並且考慮不同對象之間的聯係和對象類的重用性。麵向對象程序設計優於傳統的結構化程序設計,其優越性表現在:它有希望解決軟件工程的兩個主要問題~一軟件複雜性控製和軟件生產率的提高,此外它還符合人類的思維習慣,能夠自然地表現現實世界的實體和問題,它對軟件開發過程具有重要意義。麵向對象程序設計能支持的軟件開發策略有:
①編寫可重用代碼;
②編寫可維護的代碼;
③共享代碼;
④精化已有的代碼。
有了高質量的可重用代碼就能有效地降低軟件的複雜度和提高開發效率。麵向對象方法,尤其是它的繼承性,是一種代碼重用的有效途徑。開發者在設計軟件時可以利用一些已經被精心設計好並且經過測試的代碼,這些可重用的代碼被組織和存放在程序設計環境的類庫中。由於類庫中這些類的存在,使以後的程序設計過程變得簡單,程序的複雜性不斷降低,正確性不斷加強,也越來越易於理解、修改和擴充。