国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

談程序設(shè)計(jì)思想的變遷

2009-05-12 02:34張傳智
科教導(dǎo)刊 2009年31期

張傳智

摘要本文在介紹程序設(shè)計(jì)發(fā)展歷程的基礎(chǔ)上,分別對面向計(jì)算機(jī)、面向過程和面向?qū)ο?個(gè)階段的程序設(shè)計(jì)思想進(jìn)行了分析、比較,最后總結(jié)得出程序設(shè)計(jì)思想變遷所帶來的啟示。

關(guān)鍵詞程序設(shè)計(jì)思想 面向計(jì)算機(jī) 面向過程

中圖分類號:TP31文獻(xiàn)標(biāo)識碼:A

上個(gè)世紀(jì)中葉,隨著第一臺電子計(jì)算機(jī)的問世,人類開始致力于計(jì)算機(jī)方面的研究。經(jīng)過短短50多年的迅猛發(fā)展,其體積越來越小,功能越來越強(qiáng),應(yīng)用領(lǐng)域也越來越廣泛,可以說,計(jì)算機(jī)已經(jīng)成為當(dāng)今世界人類進(jìn)行信息處理的一種不可或缺的工具。

我們知道,計(jì)算機(jī)是一種借助程序來控制操作過程的電子設(shè)備。因此,計(jì)算機(jī)的發(fā)展和程序的開發(fā)息息相關(guān),而程序開發(fā)的優(yōu)劣又受到了不同時(shí)期程序設(shè)計(jì)思想發(fā)展的制約。

1 程序設(shè)計(jì)思想的發(fā)展歷程

長期以來,程序設(shè)計(jì)思想一直隨著人類認(rèn)識的進(jìn)步而發(fā)生著改變。最初,由于受到計(jì)算機(jī)硬件的局限,程序設(shè)計(jì)人員在進(jìn)行編程時(shí),往往會為節(jié)省一個(gè)存儲字節(jié)而煞費(fèi)苦心。后來,由于計(jì)算機(jī)存儲能力的提高,人們逐步開始關(guān)注程序的清晰框架結(jié)構(gòu)。1969年,有學(xué)者提出了結(jié)構(gòu)化程序設(shè)計(jì)思想,其著眼點(diǎn)是“面向過程”,強(qiáng)調(diào) “算法設(shè)計(jì)”,編寫出來的程序在可調(diào)試性、可讀性及可維護(hù)性等方面都比早期的程序設(shè)計(jì)方法有了很大的改進(jìn)。1970年,第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語言--Pascal語言出現(xiàn),標(biāo)志著結(jié)構(gòu)化程序設(shè)計(jì)(也稱為面向過程的程序設(shè)計(jì))時(shí)期的真正開始。

到了70年代末期,由于C++,JAVA等眾多面向?qū)ο蟮某绦蛟O(shè)計(jì)語言的出現(xiàn),以及結(jié)構(gòu)化程序設(shè)計(jì)方法逐步暴露出來的一系列弊端,隨之形成了一種全新的程序設(shè)計(jì)思想——面向?qū)ο?此時(shí)的程序設(shè)計(jì)更加接近人類的自然邏輯,并開始大量運(yùn)用抽象的概念進(jìn)行編程。時(shí)至今日,面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)日益成熟,已被越來越多的程序開發(fā)人員所接受。

2 面向計(jì)算機(jī)的程序設(shè)計(jì)思想介紹

在出現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)思想之前,由于程序設(shè)計(jì)人員編程時(shí)需要過多的考慮機(jī)器的性能,故將這一時(shí)期統(tǒng)稱為面向計(jì)算機(jī)的程序設(shè)計(jì)。起初,程序設(shè)計(jì)完全手工化,采用的語言也僅僅是機(jī)器語言,這類語言可以直接被計(jì)算機(jī)識別,但對人類來說卻是難以掌握。設(shè)計(jì)人員關(guān)注的重心是使程序盡可能地被計(jì)算機(jī)接受并按指令正確地執(zhí)行,至于計(jì)算機(jī)的程序能否讓人理解并不重要。軟件開發(fā)工作只能由極少數(shù)的軟件工程師完成,這無疑造成了軟件開發(fā)的難度大,周期長,功能簡單,界面不友好等缺陷。隨后出現(xiàn)的匯編語言,雖然將機(jī)器指令映射為一些能讀懂的助記符,如ADD、SUB等,在一定程度上縮小了程序語言與人類的自然語言之間的鴻溝,但與人類的思想仍然相差甚遠(yuǎn)。同時(shí),由于匯編語言的抽象層次太低,此時(shí)的程序設(shè)計(jì)仍需注重計(jì)算機(jī)的硬件系統(tǒng),程序員編程時(shí)不得不考慮大量的機(jī)器細(xì)節(jié)。

簡而言之,面向計(jì)算機(jī)的程序設(shè)計(jì)的基本思想就是:注重機(jī)器、逐一執(zhí)行。

3 面向過程和面向?qū)ο蟪绦蛟O(shè)計(jì)思想的比較

3.1 設(shè)計(jì)方法的比較

面向過程在解決問題時(shí)采用功能分解方法,即將一個(gè)系統(tǒng)看作一些功能塊的組合,這些功能塊可以被進(jìn)一步分解,直到參與設(shè)計(jì)和編程的人員可以理解的步驟和過程為止。

面向?qū)ο蟛捎脼閿?shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,從而實(shí)現(xiàn)對程序模塊化的方法。

3.2 特點(diǎn)的比較

面向過程是一種追求結(jié)構(gòu)良好的程序設(shè)計(jì)方法,其設(shè)計(jì)開發(fā)的程序特點(diǎn)是:(1)具有單入口,單出口的性質(zhì);(2)不包含不會停止執(zhí)行的語句,即執(zhí)行時(shí)間是有限的: (3)沒有無用語句,即程序中所有語句都有被執(zhí)行的機(jī)會。

面向?qū)ο蟮闹饕攸c(diǎn)是:借助類的封裝以及模塊化技術(shù),有效地控制了程序的復(fù)雜性;提高程序的重用性及其可維護(hù)性;同時(shí),抽象化概念的引入大大擴(kuò)展了計(jì)算機(jī)系統(tǒng)的描述和處理范圍,更加符合人們習(xí)慣的思維方法,便于分解大型的復(fù)雜多變的問題。

3.3 局限性比較

面向過程的局限性主要表現(xiàn)以下三個(gè)方面:

(1)程序的可重用性差,不能直接繼承和引用巳經(jīng)編好的應(yīng)用程序的某些部分,程序設(shè)計(jì)人員每進(jìn)行一項(xiàng)新系統(tǒng)的開發(fā),幾乎都要從零開始,并且要針對具體問題做大量重復(fù)而繁瑣的工作。(2)由于程序的數(shù)據(jù)與有關(guān)操作相分離,致使程序的修改和維護(hù)較為復(fù)雜。(3)數(shù)據(jù)處理范圍較小,無法準(zhǔn)確描述文本、圖形、圖像、影像、聲音等多種數(shù)據(jù)類型,從而難以適應(yīng)大型軟件的設(shè)計(jì)。

面向?qū)ο蟮木窒扌灾饕憩F(xiàn)在兩個(gè)方面:

(1)由于程序設(shè)計(jì)者的設(shè)計(jì)思想和方法、策略大多分布于眾多不連續(xù)的程序段中,嚴(yán)重影響了維護(hù)人員對于程序的理解。(2)繼承機(jī)制的廣泛使用,大大增加了程序依賴性分析的難度。

3.4 基本思想的比較

面向過程采用的是自頂向下設(shè)計(jì)過程庫,逐步加以細(xì)化程序設(shè)計(jì)思想。

面向?qū)ο蟮幕驹O(shè)計(jì)思想則是自底向上設(shè)計(jì)庫類,并把組件的實(shí)現(xiàn)和接口分開。

3.5 可擴(kuò)展性比較

面向過程技術(shù)設(shè)計(jì)開發(fā)的程序一旦功能變化,就會危及整個(gè)系統(tǒng),擴(kuò)展性差。

面向?qū)ο蟮某绦蚩梢酝ㄟ^修改或增加操作進(jìn)行功能的重建,而基本對象結(jié)構(gòu)不變,擴(kuò)展性好。

3.6 控制程序方式的比較

面向過程是通過設(shè)計(jì)程序以調(diào)用或返回程序。

面向?qū)ο髣t通過“事件驅(qū)動”來激活和運(yùn)行程序。

3.7 處理問題時(shí)的出發(fā)點(diǎn)比較

面向過程處理問題時(shí)強(qiáng)調(diào)將過程抽象化和模塊化,以過程為中心構(gòu)造或處理客觀世界問題的。

面向?qū)ο筇幚韱栴}時(shí)強(qiáng)調(diào)把問題域的要領(lǐng)直接映射到對象及對象之間的接口上,是用符合人們通常的思維方式來處理客觀世界的問題。

3.8 學(xué)習(xí)者的接受程度的比較

面向過程的程序設(shè)計(jì)知識內(nèi)容相對少,對于初學(xué)者而言易于掌握。

面向?qū)ο蟮某绦蛟O(shè)計(jì)知識內(nèi)容廣,概念多,很多知識又比較抽象,初學(xué)者難于理解。

3.9 編程語言的比較

面向過程的程序設(shè)計(jì)語言主要發(fā)展于70年代之前,如:C、BASIC、FORTRAN等。

面向?qū)ο蟮某绦蛟O(shè)計(jì)語言主要形成于70年代以后,如:C++、VB、JAVA等。

3.10 常用概念或術(shù)語的比較

面向過程多借助過程、函數(shù)、數(shù)據(jù)等概念描述程序設(shè)計(jì)。

面向?qū)ο蟛捎脤ο?、類、消息、繼承等術(shù)語描述程序設(shè)計(jì)。

3.11 要素的對應(yīng)關(guān)系比較

面向過程以算法為中心,由算法完成對數(shù)據(jù)的操作,

面向?qū)ο蠹夹g(shù)是以屬性為中心,以消息和方法機(jī)制完成對對象的操作,對象作為數(shù)據(jù),而不是作為過程被描述。

3.12 程序執(zhí)行機(jī)制的比較

面向過程采用單線程體系結(jié)構(gòu),每個(gè)進(jìn)程都有一段專用內(nèi)存區(qū)域 ,程序在某一時(shí)刻只執(zhí)行一條語句。

面向?qū)ο蠹夹g(shù)多采用多線程體系結(jié)構(gòu),允許線程間共享相同的內(nèi)存單元,并利用這些共享單元來實(shí)現(xiàn)數(shù)據(jù)交換,實(shí)時(shí)通信及必要的同步操作,在程序執(zhí)行過程 中為每個(gè)線程部分分配代碼,讓其分別動態(tài)執(zhí)行。多線程的實(shí)現(xiàn),可以有效地改善與用戶的交互,使系統(tǒng)得以同時(shí)處理多個(gè)請求。

4 軟件設(shè)計(jì)思想變遷帶來的啟示

由于軟件設(shè)計(jì)思想的變遷,程序開發(fā)理念也在不斷得以發(fā)展、進(jìn)化,面向?qū)ο蠹夹g(shù)對數(shù)據(jù)和算法的封裝,以及繼承多態(tài)機(jī)制可實(shí)現(xiàn)世界的任何對象,使原本在面向過程中難以實(shí)現(xiàn)的問題變得既規(guī)范又容易,特別為大型軟件團(tuán)體多人同時(shí)開發(fā)提供了條件。由于具有更好的可靠性、實(shí)用性、可修改性、可維護(hù)性、可重用性及易讀易管理等優(yōu)點(diǎn),面向?qū)ο蠹夹g(shù)已經(jīng)發(fā)展成為當(dāng)今軟件開發(fā)主流。但同時(shí)我們也應(yīng)該記住,面向?qū)ο蟠嬖谠S多不足,如何在實(shí)際應(yīng)用中彌補(bǔ)這些不足,值得每個(gè)程序設(shè)計(jì)人員進(jìn)行深入研究。我們希望計(jì)算機(jī)編程思路盡可能地與人類的思維靠近,計(jì)算機(jī)的編程能夠?yàn)楦嗟娜怂莆蘸屠谩?/p>

參考文獻(xiàn)

[1]柳青.計(jì)算機(jī)應(yīng)用基礎(chǔ)[M].北京:高等教育出版社.2008.

[2]丁益民.程序設(shè)計(jì)方法發(fā)展的幾個(gè)階段.武漢工程職韭技術(shù)學(xué)院學(xué)報(bào),2001.6.

[3]張嵐.淺談面向?qū)ο蟮某绦蛟O(shè)計(jì).內(nèi)蒙古科技與經(jīng)濟(jì),2009.3.

[4]喻梅.結(jié)構(gòu)化程序設(shè)計(jì)方法與面向?qū)ο蟪绦蛟O(shè)計(jì)方法之比較.科技信息,2009.14.

武平县| 巴东县| 九寨沟县| 龙胜| 和平县| 昌江| 镇江市| 益阳市| 鲁甸县| 东辽县| 巢湖市| 平原县| 武城县| 孟州市| 洛宁县| 鄂托克前旗| 英山县| 民县| 胶州市| 沭阳县| 孝义市| 剑河县| 静安区| 曲周县| 安化县| 阿图什市| 民勤县| 阜阳市| 蒲江县| 延吉市| 平乐县| 家居| 长葛市| 三原县| 杭锦后旗| 大冶市| 镇康县| 泽库县| 大渡口区| 澄迈县| 柳江县|