官术网_书友最值得收藏!

1.1.3 程序設(shè)計方法

程序設(shè)計技術(shù)的發(fā)展,是一個逐步提高的過程,是一個與實際應(yīng)用需要互相制約和促進(jìn)的螺旋式的發(fā)展進(jìn)程。程序設(shè)計技術(shù)的不斷進(jìn)步,導(dǎo)致了計算機應(yīng)用水平的飛躍;反之,計算機應(yīng)用領(lǐng)域的擴展、軟件規(guī)模和復(fù)雜度的提高又促進(jìn)了程序設(shè)計技術(shù)的升級。在這個過程中,主要出現(xiàn)了結(jié)構(gòu)化程序設(shè)計(SP,Structured Programming)方法和面向?qū)ο蟪绦蛟O(shè)計(OOP,Object-Oriented Programming)方法。

1.結(jié)構(gòu)化程序設(shè)計

高級語言的開發(fā)和使用,使計算機的應(yīng)用進(jìn)入了一個新時期。20世紀(jì)60年代出現(xiàn)的“軟件危機”和關(guān)于“goto語句應(yīng)從高級語言中去掉”的討論,促使人們重視對程序設(shè)計方法學(xué)的研究。隨著一些規(guī)模大、復(fù)雜度高、使用周期長,以及投入人力、物力較多的大型程序設(shè)計任務(wù)的提出,程序設(shè)計的目標(biāo)把可靠性、可維護(hù)性的要求放在了比高效率更重要的位置上,并促使人們研究程序設(shè)計的方法和風(fēng)格,最終形成了結(jié)構(gòu)化程序設(shè)計的基本思想。

結(jié)構(gòu)化程序設(shè)計是一種設(shè)計程序的技術(shù),主要采用自頂向下、逐步求精的設(shè)計方法和單入口、單出口的控制結(jié)構(gòu)。自頂向下、逐步求精的設(shè)計方法符合人們解決復(fù)雜問題的普遍規(guī)則,可以提高軟件開發(fā)的成功率。由此開發(fā)出的程序具有清晰的層次結(jié)構(gòu),易于閱讀理解和修改調(diào)試擴充。結(jié)構(gòu)化程序設(shè)計只包括順序、選擇和循環(huán)3種基本控制結(jié)構(gòu),并建議程序員不用或少用goto語句。

2.面向?qū)ο蟪绦蛟O(shè)計

結(jié)構(gòu)化程序設(shè)計對于確定的問題來說,無疑是一種很好的方法,但對于千變?nèi)f化的世界,特別是當(dāng)今信息化的世界,一個成為產(chǎn)品的程序很難適應(yīng)形勢的變化,因為在程序的設(shè)計階段問題是確定的,其數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)模型也可以確定,所以設(shè)計出的程序使用、操作沒有問題,但當(dāng)表示問題的數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時,程序就可能會出現(xiàn)問題,而維護(hù)起來也相當(dāng)困難。原因就是當(dāng)初的設(shè)計是面向數(shù)據(jù)進(jìn)行自頂向下設(shè)計的,要修改就需要全部修改。本來客觀世界就是由許許多多、各種各樣的對象組成的,每個對象都有各自的內(nèi)部狀態(tài)(屬性)和運動規(guī)律(行為方式),不同對象的相互作用和聯(lián)系構(gòu)成了各種各樣不同的系統(tǒng),構(gòu)成了我們所面對的客觀世界。如果按照客觀世界對象的特點進(jìn)行程序設(shè)計,就會適應(yīng)形勢的發(fā)展,這就是自20世紀(jì)80年代開始流行,現(xiàn)已廣泛應(yīng)用的面向?qū)ο蟮某绦蛟O(shè)計方法。

面向?qū)ο蟮某绦蛟O(shè)計方法吸取了結(jié)構(gòu)化程序設(shè)計的基本思想和主要優(yōu)點,將數(shù)據(jù)與對數(shù)據(jù)的操作放在一起作為一個相互依存、不可分割的整體來處理,這個整體稱為對象。對象的內(nèi)部狀態(tài)(屬性)用數(shù)據(jù)表示,運動規(guī)律用所謂的方法(也稱成員函數(shù))表示。對象是一個整體,所以我們說把數(shù)據(jù)隱藏在這個整體中了。對象之間的相互作用通過所謂的消息與對象的對外接口(成員函數(shù)的調(diào)用形式)實現(xiàn)。這個系統(tǒng)通過不斷地向?qū)ο蟀l(fā)送消息而使對象從初始狀態(tài)到達(dá)終止?fàn)顟B(tài),從而實現(xiàn)了問題的求解。

如果問題的數(shù)據(jù)結(jié)構(gòu)發(fā)生了變化,只要描述問題的對象的對外接口不變,所有涉及這些數(shù)據(jù)結(jié)構(gòu)的地方都不需要修改,而只需修改對象中的方法就行了。

對象是各種各樣的,但總有相似性。例如,一匹白馬和一匹黑馬是兩個對象,但它們都具有馬的特性,只是顏色有差異而已。將對象進(jìn)行抽象、劃分便得到了類。類描述了屬于該類型的所有對象的性質(zhì),包括外部特征和內(nèi)部實現(xiàn),實際上是抽象數(shù)據(jù)類型的具體實現(xiàn)。反之,對象是類的具體實例。

20世紀(jì)90年代的程序設(shè)計方式,由于有了面向?qū)ο蟪绦蛟O(shè)計技術(shù)的支持,發(fā)生了質(zhì)的變化,未來的軟件開發(fā)將向著可重用部件的組裝方式發(fā)展,而可重用部件的存在形式就是類及其派生系統(tǒng)。

主站蜘蛛池模板: 饶河县| 邵武市| 忻城县| 三原县| 华阴市| 淮南市| 东乡族自治县| 东乡县| 象山县| 孝义市| 隆化县| 舟曲县| 寿阳县| 桦南县| 庆城县| 托克托县| 安阳市| 子洲县| 都昌县| 荣昌县| 江安县| 临颍县| 芦溪县| 丽江市| 佛坪县| 金坛市| 白河县| 宜丰县| 将乐县| 松潘县| 衡山县| 双鸭山市| 宁都县| 苏尼特左旗| 新和县| 休宁县| 家居| 临湘市| 五原县| 什邡市| 大港区|