淺談結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計_第1頁
淺談結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計_第2頁
淺談結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計_第3頁
淺談結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、淺談結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計姓名:學(xué)號:專業(yè):學(xué)院:淺談結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計摘要程序設(shè)計可分為結(jié)構(gòu)化程序設(shè)計和面向?qū)ο蟪绦蛟O(shè)計兩種方法。本文梳理了兩種程序設(shè)計方法的內(nèi)容及特性,分析比較了它們之間的優(yōu)缺點,并總結(jié)了在軟件開發(fā)時要根據(jù)問題實際出發(fā),根據(jù)二者的優(yōu)缺點選取合適的開發(fā)方法,以達(dá)到最佳的開發(fā)效益這一設(shè)計原則。一、引言 程序設(shè)計方法學(xué)主要討論程序的性質(zhì)以及程序設(shè)計的理論和方法。它起源于20世紀(jì)70年代的軟件危機,在Dijkstra提出結(jié)構(gòu)化程序設(shè)計的思想和概念后快速發(fā)展1。程序設(shè)計方法學(xué)的基本研究目標(biāo)是通過對程序本質(zhì)屬性的研究來提高程序的效率,保證程序的正確性。程序設(shè)計的

2、基本方法包括結(jié)構(gòu)化方法和面向?qū)ο蠓椒?。兩種方法在軟件開發(fā)中采用不同的思維模式,但是面向?qū)ο蠓椒ǖ幕A(chǔ)仍是結(jié)構(gòu)化方法。本文第二節(jié)簡要介紹結(jié)構(gòu)化程序設(shè)計方法的內(nèi)容;第三節(jié)列舉面向?qū)ο蟪绦蛟O(shè)計方法的特性;第四節(jié)總結(jié)并探討兩種方法的優(yōu)缺點;第五節(jié)闡述了實際開發(fā)實踐中兩種方法適用的場景。二、結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計方法, 實質(zhì)上是自頂向下的功能分解法, 通過逐步求精的設(shè)計過程把程序分解成單一處理功能的模塊, 進而通過參數(shù)傳遞調(diào)用相應(yīng)模塊以實現(xiàn)程序的功能2。模塊之間通過“順序”、“選擇”、“循環(huán)”的控制結(jié)構(gòu)進行連接,并且只有一個入口、一個出口。2.1 設(shè)計方法 對于要解決的問題,首先必須分析清楚問題的

3、需求,對問題進行總體設(shè)計。在這兩個步驟中都要采用自頂向下逐步求精的方法。對問題、模塊、數(shù)據(jù)進行抽象,并對問題進一步分解。2.2 基本控制結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計把復(fù)雜的流程圖轉(zhuǎn)變?yōu)闃?biāo)準(zhǔn)形式,以便用迭代表示,并嵌套少數(shù)基本而標(biāo)準(zhǔn)的控制邏輯結(jié)構(gòu)順序、選擇、循環(huán)1。其中,順序決定執(zhí)行順序,選擇決定執(zhí)行條件,循環(huán)決定復(fù)執(zhí)行條件。2.3 程序設(shè)計原則結(jié)構(gòu)化程序設(shè)計的原則可表示為:程序=算法+數(shù)據(jù)結(jié)構(gòu)3。算法和數(shù)據(jù)結(jié)構(gòu)分別是一個獨立的整體,二者分開設(shè)計。三、面向?qū)ο蟪绦蛟O(shè)計 面向?qū)ο蟪绦蛟O(shè)計起源于信息隱藏和抽象數(shù)據(jù)類型的概念。數(shù)據(jù)抽象指的是一個數(shù)據(jù)結(jié)構(gòu)以及作用在該結(jié)構(gòu)上的操作所組成的一個實體,數(shù)據(jù)結(jié)構(gòu)的表示被隱

4、藏在操作接口的后面。3.1 面向?qū)ο蟪橄笤?.1.1 數(shù)據(jù)抽象數(shù)據(jù)抽象的核心在于模塊化與信息隱蔽,是面向?qū)ο蠓椒▽W(xué)的基礎(chǔ)。3.1.2 行為共享行為共享指許多實體具有相同的接口,主要以分類和層細(xì)分類兩種方式實現(xiàn)。3.1.3 進化進化是指系統(tǒng)隨需求變化而修改和增加的情況以及對復(fù)雜問題的增量式的求解過程。進化建議面向?qū)ο髮π薷姆忾],對增加開放。3.1.4 正確性 正確性由行為共享導(dǎo)致,是指當(dāng)一個實體請求其他實體的行為時系統(tǒng)必須確保能夠在共享的行為組中找到正確的行為實現(xiàn)并運行它。3.2 面向?qū)ο蠓椒ǖ囊c軟件系統(tǒng)由對象組成,通過采用對象分解法取代之前的功能分解法,所有的對象都劃分成各種對象類,每個類

5、都包含一組數(shù)據(jù)和一組方法。通過子父類之間的關(guān)系,把若干對象類組成一個具有層次結(jié)構(gòu)的系統(tǒng)。各對象彼此之間僅能通過傳遞消息互相聯(lián)系。四、結(jié)構(gòu)化方法與面向?qū)ο蠓椒ńY(jié)構(gòu)化方法和面向?qū)ο蠓椒ǖ囊粋€重要區(qū)別在于分解問題的出發(fā)點不同,考慮的思維模式不同4。在計算機中,數(shù)據(jù)結(jié)構(gòu)和過程密切相關(guān),結(jié)構(gòu)化方法將數(shù)據(jù)結(jié)構(gòu)和過程分開考慮,面向?qū)ο蠓椒ńM合數(shù)據(jù)和過程于對象之上5。下面我們探究一下兩種方法的優(yōu)缺點。4.1 執(zhí)行效率相比較面向?qū)ο蠓椒?,結(jié)構(gòu)化方法產(chǎn)生的可執(zhí)行代碼更直接,對于一些嵌入式系統(tǒng),結(jié)構(gòu)化方法運行效率更高。4.2 重用性結(jié)構(gòu)化方法將數(shù)據(jù)和算法分離,降低了軟件的可重用性。面向?qū)ο蠓椒ň哂懈玫哪K內(nèi)聚和耦

6、合特性,使得軟件可以更好的重用與維護。4.3 開發(fā)難度 整體而言,面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法復(fù)雜。面向?qū)ο蠓椒▋?nèi)容廣、概念多,邏輯縝密。相比之下,結(jié)構(gòu)化方法流程簡單,上手難度低。五、總結(jié)在開發(fā)實踐中,軟件開發(fā)的目標(biāo)是以最小的代價開發(fā)出滿足用戶需求的軟件。故而開發(fā)時需要根據(jù)系統(tǒng)的實際需求,考慮執(zhí)行效率、重用性等因素,盡量利用結(jié)構(gòu)化方法和面向?qū)ο蠓椒ǖ膬?yōu)點來選擇不同的方法。例如,對于一些小型嵌入式實時監(jiān)測系統(tǒng),采用結(jié)構(gòu)化方法比較好。對于大型系統(tǒng)或需求易變系統(tǒng),采用面向?qū)ο蠓椒ㄝ^好??傊?,開發(fā)時要根據(jù)問題實際出發(fā),選取合適的軟件開發(fā)方法,以達(dá)到最佳的開發(fā)效益。參考文獻(xiàn):1陳海波,王申康.新編程序設(shè)計方法學(xué)M.浙江大學(xué)出版社, 2004.2馬金霞,宋傳磊.面向過程和面向?qū)ο蟪绦蛟O(shè)計分析J.中國新通信,2016,18(11):160.3徐德啟,趙煒,楊小元.面向?qū)ο蟮某绦蛟O(shè)計方法初探J.蘭州大學(xué)學(xué)報,1992(S1):17-20.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論