版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計的歷史發(fā)展學(xué)院:班級:姓名:學(xué)號:面向?qū)ο蟪绦蛟O(shè)計技術(shù)被認為是程序設(shè)計方法學(xué)的一場實質(zhì)性的革命,是程序設(shè)計方法學(xué)得一個里程碑,以上說法是毋庸置疑的。為了可以更好的理解和應(yīng)用面向?qū)ο蟮姆椒ㄟM行程序的開發(fā)和設(shè)計,我們有必要一方面來了解一下面向?qū)ο蟪绦蛟O(shè)計的歷史和發(fā)展。在20世紀60年代,軟件曾出現(xiàn)過嚴重危機,由軟件錯誤而引起的信息對視、系統(tǒng)報廢事件屢有發(fā)生。為此,1968年,荷蘭學(xué)者E.W.Dijkstra提出了程序設(shè)計中常用的GOTO語句的三大危害:破壞了程序的京東一致性,程序不易測試,限制了代碼優(yōu)化,此舉引起了軟件界長達數(shù)年的論戰(zhàn),并由此產(chǎn)生了結(jié)構(gòu)化程序設(shè)計方法,同時誕生了基于這一設(shè)計方法的程序設(shè)計語言Pascal。由瑞士計算機學(xué)家開發(fā)的Pascal,一經(jīng)推出,它的簡介明了以及豐富的數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu),為程序員提供了極大地方便性與靈活性,同時它特別適合微計算機系統(tǒng),因此大受歡迎。它采用結(jié)構(gòu)化程序設(shè)計思想。因此,結(jié)構(gòu)化方法迅速走紅,并在整個20世紀70年代的軟件開發(fā)中占絕對統(tǒng)治地位。但是,到了70年代末期,隨著計算機科學(xué)的發(fā)展和應(yīng)用領(lǐng)域不斷擴大,對計算機技術(shù)的規(guī)定越來越高。結(jié)構(gòu)化程序設(shè)計語言和結(jié)構(gòu)化分析與設(shè)計已經(jīng)無法滿足用戶需求的變化,于是人們開始尋找更先進的軟件開發(fā)方法和技術(shù),OPP由此應(yīng)運而生。OPP即面向?qū)ο蟮某绦蛟O(shè)計,OPP技術(shù)被認為是程序設(shè)計方法學(xué)的一場實質(zhì)性的革命,是程序設(shè)計方法學(xué)的一個里程碑。OPP大大替考了軟件的開發(fā)效率,減少了軟件開發(fā)的復(fù)雜性,提高了軟件系統(tǒng)的可維護性、可擴展性。事實上,“對象”和“對象的屬性”這樣的概念可以追溯到20世紀50年代初,它們一方面出現(xiàn)于關(guān)于人工智能的初期著作中。但是出現(xiàn)了面向?qū)ο笳Z言之后,面向?qū)ο笏枷氩诺玫搅搜杆俚陌l(fā)展。過去的幾十年中,程序設(shè)計語言對抽象機制的支持限度不斷提高:從機器語言到匯編語言,到高級語言,直到面向?qū)ο笳Z言。匯編語言出現(xiàn)后,程序員就避免了直接使用0-1,而是運用符號來表達機器指令,從而更方便地編寫程序;當(dāng)程序規(guī)模繼續(xù)增長的時候,出現(xiàn)了Fortran、C、Pascal等高級語言,這些高級語言使得編寫復(fù)雜的程序變得容易,程序員們可以更好地對付日益增長的復(fù)雜性。但是,假如軟件系統(tǒng)達成一定規(guī)模,即使應(yīng)用結(jié)構(gòu)化程序設(shè)計方法,局勢仍將變得不可控制。作為一種減少復(fù)雜性的工具,面向?qū)ο笳Z言產(chǎn)生了,面向?qū)ο蟪绦蛟O(shè)計也隨之產(chǎn)生。面向?qū)ο蟪霈F(xiàn)以前,結(jié)構(gòu)化程序設(shè)計是程序設(shè)計的主流,結(jié)構(gòu)化程序設(shè)計又稱為面向過程的程序設(shè)計。在面向過程程序設(shè)計中,問題被看作一系列需要完畢的任務(wù),函數(shù)(在此泛指例程、函數(shù)、過程)用于完畢這些任務(wù),解決問題的焦點集中于函數(shù)。其中函數(shù)是面向過程的,即它關(guān)注如何根據(jù)規(guī)定的條件完畢指定的任務(wù)。在多函數(shù)程序中,許多重要的數(shù)據(jù)被放置在全局數(shù)據(jù)區(qū),這樣它們可以被所有的函數(shù)訪問。每個函數(shù)都可以具有它們自己的局部數(shù)據(jù)。?但這種結(jié)構(gòu)很容易導(dǎo)致全局數(shù)據(jù)在無意中被其他函數(shù)改動,因而程序的對的性不易保證。面向?qū)ο蟪绦蛟O(shè)計的出發(fā)點之一就是填補面向過程程序設(shè)計中的一些缺陷:對象是程序的基本元素,它將數(shù)據(jù)和操作緊密地連結(jié)在一起,并保護數(shù)據(jù)不會被外界的函數(shù)意外地改變。面向?qū)ο笤O(shè)計方法以對象為基礎(chǔ),運用特定的軟件工具直接完畢從對象客體的描述到軟件結(jié)構(gòu)之間的轉(zhuǎn)換。這是面向?qū)ο笤O(shè)計方法最重要的特點和成就。面向?qū)ο笤O(shè)計方法的應(yīng)用解決了傳統(tǒng)結(jié)構(gòu)化開發(fā)方法中客觀世界描述工具與軟件結(jié)構(gòu)的不一致性問題,縮短了開發(fā)周期,解決了從分析和設(shè)計到軟件模塊結(jié)構(gòu)之間多次轉(zhuǎn)換映射的繁雜過程,是一種很有發(fā)展前程的系統(tǒng)開發(fā)方法。面向?qū)ο笤O(shè)計方法以對象為基礎(chǔ),運用特定的軟件工具直接完畢從對象客體的描述到軟件結(jié)構(gòu)之間的轉(zhuǎn)換。這是面向?qū)ο笤O(shè)計方法最重要的特點和成就。面向?qū)ο笤O(shè)計方法的應(yīng)用解決了傳統(tǒng)結(jié)構(gòu)化開發(fā)方法中客觀世界描述工具與軟件結(jié)構(gòu)的不一致性問題,縮短了開發(fā)周期,解決了從分析和設(shè)計到軟件模塊結(jié)構(gòu)之間多次轉(zhuǎn)換映射的繁雜過程,是一種很有發(fā)展前程的系統(tǒng)開發(fā)方法。1967年,挪威計算中心的KistenNygaard和OleJohanDahl開發(fā)了Simula67語言被認為是最早的面向?qū)ο蟪绦蛟O(shè)計語言。它引入了所有后來面向?qū)ο蟪绦蛟O(shè)計語言所遵循的基礎(chǔ)概念:對象、類和繼承。正是由于他們對類、對象、繼承和動態(tài)綁定等重要概念的一方面引入,為面向?qū)ο筮@一當(dāng)前最流行、最重要的程序設(shè)計技術(shù)奠定了基礎(chǔ)。20世界60年代下半期市程序設(shè)計語言發(fā)展史上的重要時期,在這個時間區(qū)間內(nèi),有3中重要的程序設(shè)計語言相繼推出,除了Simula67外,尚有Algol68和PL/I。這三個語言各有特色,均有創(chuàng)新,都對后來的程序設(shè)計語言產(chǎn)生了重大影響。但客觀地說,Simula67的面向?qū)ο蟾拍畹挠绊懯蔷薮蠖钸h的。它自身雖然未能廣泛流行,但在它的影響下產(chǎn)生的面向?qū)ο蠹夹g(shù)卻迅速傳播開來。70年代,Smalltalk的問世又給面向?qū)ο蟮恼Z言注入了新的血液。而在實踐中。人們開始漸漸發(fā)現(xiàn),由于C語言是如此進一步人心,以至于當(dāng)前最佳的解決軟件設(shè)計危機的方法并不是此外發(fā)明一種新語言去代替C,而是在它的原有基礎(chǔ)上加以發(fā)展,使之可以擴展到面向?qū)ο蟮念I(lǐng)域。在這種形勢下,C++于20世紀80年代初面世。C++保存了C語言原有的有點,同時增長了面向?qū)ο蟮臋C制。由于C++對C語言的改善重要體增長了類,因此它最初被設(shè)計者稱為“帶類的C”,后來為了強調(diào)它是C的增強版,就采用C語言中的自加運算符號“++”,改稱它為“C++”。從C++的名字中可以看出,C++是C的超集,因此C++既可以用于面向過程的結(jié)構(gòu)化程序設(shè)計,又可以用于面向?qū)ο蟮某绦蛟O(shè)計,是一種功能強大的混合型的程序設(shè)計語言。在C++之后,影響巨大的就是Java和C#語言了。這兩個語言都引入了虛擬機的概念,從另一個角度分析,它們也是更純粹的面向?qū)ο笳Z言。由于C++在可以用于面向過程的結(jié)構(gòu)化程序設(shè)計,而Java和C#則沒有這個功能。但是,Java和C#也有自己的特點,它們都支持豐富的MetaClasses,這使得一切皆對象的概念支持的越發(fā)深刻。但是Java中的基礎(chǔ)類型在這方面的并沒有得到完善,這也可以說是一個遺憾吧。雖然如此,Java仍然是一個一直在學(xué)習(xí)的語言,相信Java可以憑此越走越遠。在面向?qū)ο蟀l(fā)展到現(xiàn)今,又出現(xiàn)了一些重大的變革。這就是動態(tài)語言的出現(xiàn)。他們也都是支持面向?qū)ο蠹夹g(shù)的。最典型的動態(tài)語言有JavaScript,Python,Ruby等等。它們一個重大的變化就是將類的信息改變?yōu)閯討B(tài)的,并提出了DuckingType的概念。這在很大限度上提高了編程的生產(chǎn)力。其實,不僅僅在程序設(shè)計方面,面向?qū)ο笠苍诓粩嘞蚱渌A段滲透。1980年GradyBooch提出了面向?qū)ο笤O(shè)計的概念,面向?qū)ο蠓治鲇纱碎_始。1985年,第一個商用面向?qū)ο髷?shù)據(jù)庫問世。1990年以來,面向?qū)ο蠓治?、測試、度量和管理等研究都得到長足發(fā)展。從此,全世界掀起了一股面向?qū)ο蟮臒岢?至今盛行不衰,面向?qū)ο笠仓饾u成為了程序設(shè)計的主流。但是同原型方法同樣,面向?qū)ο笤O(shè)計方法需要一定的軟件基礎(chǔ)支持才可以應(yīng)用,此外在大型的MIS開發(fā)中假如不經(jīng)自頂向下的整體劃分,而是一開始就自底向上的采用面向?qū)ο笤O(shè)計方法開發(fā)系統(tǒng)
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版實習(xí)合同模板:實習(xí)期間實習(xí)成果轉(zhuǎn)化3篇
- 2025版木結(jié)構(gòu)景觀清包施工合同示范文本4篇
- 二零二五年度虛擬現(xiàn)實內(nèi)容創(chuàng)作者免責(zé)聲明合同范本4篇
- 2025版小型沼氣項目設(shè)備研發(fā)、生產(chǎn)、安裝及運營維護合同3篇
- 增值稅及其會計處理教學(xué)課件
- 2025版新能源汽車動力電池回收利用合同范本4篇
- 2025版小麥種子市場調(diào)研與風(fēng)險評估合同2篇
- 2025版學(xué)校臨時教師聘用合同實施細則3篇
- 二零二五版幕墻工程風(fēng)險管理與保險合同4篇
- 體育設(shè)施工程體育場地圍網(wǎng)施工考核試卷
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計)(人教版2024)八年級物理下冊
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試卷(含解析)
- 單位往個人轉(zhuǎn)賬的合同(2篇)
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國式摔跤課程學(xué)生運動能力測評規(guī)范
- 高危妊娠的評估和護理
- 2024年山東鐵投集團招聘筆試參考題庫含答案解析
- 兒童10歲生日-百日宴-滿月酒生日會成長相冊展示(共二篇)
- 2023年高考全國甲卷數(shù)學(xué)(理)試卷【含答案】
評論
0/150
提交評論