




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
面向對象程序設計的歷史發(fā)展學院:班級:姓名:學號:面向對象程序設計技術被認為是程序設計方法學的一場實質性的革命,是程序設計方法學得一個里程碑,以上說法是毋庸置疑的。為了可以更好的理解和應用面向對象的方法進行程序的開發(fā)和設計,我們有必要一方面來了解一下面向對象程序設計的歷史和發(fā)展。在20世紀60年代,軟件曾出現(xiàn)過嚴重危機,由軟件錯誤而引起的信息對視、系統(tǒng)報廢事件屢有發(fā)生。為此,1968年,荷蘭學者E.W.Dijkstra提出了程序設計中常用的GOTO語句的三大危害:破壞了程序的京東一致性,程序不易測試,限制了代碼優(yōu)化,此舉引起了軟件界長達數(shù)年的論戰(zhàn),并由此產生了結構化程序設計方法,同時誕生了基于這一設計方法的程序設計語言Pascal。由瑞士計算機學家開發(fā)的Pascal,一經推出,它的簡介明了以及豐富的數(shù)據(jù)結構和控制結構,為程序員提供了極大地方便性與靈活性,同時它特別適合微計算機系統(tǒng),因此大受歡迎。它采用結構化程序設計思想。因此,結構化方法迅速走紅,并在整個20世紀70年代的軟件開發(fā)中占絕對統(tǒng)治地位。但是,到了70年代末期,隨著計算機科學的發(fā)展和應用領域不斷擴大,對計算機技術的規(guī)定越來越高。結構化程序設計語言和結構化分析與設計已經無法滿足用戶需求的變化,于是人們開始尋找更先進的軟件開發(fā)方法和技術,OPP由此應運而生。OPP即面向對象的程序設計,OPP技術被認為是程序設計方法學的一場實質性的革命,是程序設計方法學的一個里程碑。OPP大大替考了軟件的開發(fā)效率,減少了軟件開發(fā)的復雜性,提高了軟件系統(tǒng)的可維護性、可擴展性。事實上,“對象”和“對象的屬性”這樣的概念可以追溯到20世紀50年代初,它們一方面出現(xiàn)于關于人工智能的初期著作中。但是出現(xiàn)了面向對象語言之后,面向對象思想才得到了迅速的發(fā)展。過去的幾十年中,程序設計語言對抽象機制的支持限度不斷提高:從機器語言到匯編語言,到高級語言,直到面向對象語言。匯編語言出現(xiàn)后,程序員就避免了直接使用0-1,而是運用符號來表達機器指令,從而更方便地編寫程序;當程序規(guī)模繼續(xù)增長的時候,出現(xiàn)了Fortran、C、Pascal等高級語言,這些高級語言使得編寫復雜的程序變得容易,程序員們可以更好地對付日益增長的復雜性。但是,假如軟件系統(tǒng)達成一定規(guī)模,即使應用結構化程序設計方法,局勢仍將變得不可控制。作為一種減少復雜性的工具,面向對象語言產生了,面向對象程序設計也隨之產生。面向對象出現(xiàn)以前,結構化程序設計是程序設計的主流,結構化程序設計又稱為面向過程的程序設計。在面向過程程序設計中,問題被看作一系列需要完畢的任務,函數(shù)(在此泛指例程、函數(shù)、過程)用于完畢這些任務,解決問題的焦點集中于函數(shù)。其中函數(shù)是面向過程的,即它關注如何根據(jù)規(guī)定的條件完畢指定的任務。在多函數(shù)程序中,許多重要的數(shù)據(jù)被放置在全局數(shù)據(jù)區(qū),這樣它們可以被所有的函數(shù)訪問。每個函數(shù)都可以具有它們自己的局部數(shù)據(jù)。?但這種結構很容易導致全局數(shù)據(jù)在無意中被其他函數(shù)改動,因而程序的對的性不易保證。面向對象程序設計的出發(fā)點之一就是填補面向過程程序設計中的一些缺陷:對象是程序的基本元素,它將數(shù)據(jù)和操作緊密地連結在一起,并保護數(shù)據(jù)不會被外界的函數(shù)意外地改變。面向對象設計方法以對象為基礎,運用特定的軟件工具直接完畢從對象客體的描述到軟件結構之間的轉換。這是面向對象設計方法最重要的特點和成就。面向對象設計方法的應用解決了傳統(tǒng)結構化開發(fā)方法中客觀世界描述工具與軟件結構的不一致性問題,縮短了開發(fā)周期,解決了從分析和設計到軟件模塊結構之間多次轉換映射的繁雜過程,是一種很有發(fā)展前程的系統(tǒng)開發(fā)方法。面向對象設計方法以對象為基礎,運用特定的軟件工具直接完畢從對象客體的描述到軟件結構之間的轉換。這是面向對象設計方法最重要的特點和成就。面向對象設計方法的應用解決了傳統(tǒng)結構化開發(fā)方法中客觀世界描述工具與軟件結構的不一致性問題,縮短了開發(fā)周期,解決了從分析和設計到軟件模塊結構之間多次轉換映射的繁雜過程,是一種很有發(fā)展前程的系統(tǒng)開發(fā)方法。1967年,挪威計算中心的KistenNygaard和OleJohanDahl開發(fā)了Simula67語言被認為是最早的面向對象程序設計語言。它引入了所有后來面向對象程序設計語言所遵循的基礎概念:對象、類和繼承。正是由于他們對類、對象、繼承和動態(tài)綁定等重要概念的一方面引入,為面向對象這一當前最流行、最重要的程序設計技術奠定了基礎。20世界60年代下半期市程序設計語言發(fā)展史上的重要時期,在這個時間區(qū)間內,有3中重要的程序設計語言相繼推出,除了Simula67外,尚有Algol68和PL/I。這三個語言各有特色,均有創(chuàng)新,都對后來的程序設計語言產生了重大影響。但客觀地說,Simula67的面向對象概念的影響是巨大而深遠的。它自身雖然未能廣泛流行,但在它的影響下產生的面向對象技術卻迅速傳播開來。70年代,Smalltalk的問世又給面向對象的語言注入了新的血液。而在實踐中。人們開始漸漸發(fā)現(xiàn),由于C語言是如此進一步人心,以至于當前最佳的解決軟件設計危機的方法并不是此外發(fā)明一種新語言去代替C,而是在它的原有基礎上加以發(fā)展,使之可以擴展到面向對象的領域。在這種形勢下,C++于20世紀80年代初面世。C++保存了C語言原有的有點,同時增長了面向對象的機制。由于C++對C語言的改善重要體增長了類,因此它最初被設計者稱為“帶類的C”,后來為了強調它是C的增強版,就采用C語言中的自加運算符號“++”,改稱它為“C++”。從C++的名字中可以看出,C++是C的超集,因此C++既可以用于面向過程的結構化程序設計,又可以用于面向對象的程序設計,是一種功能強大的混合型的程序設計語言。在C++之后,影響巨大的就是Java和C#語言了。這兩個語言都引入了虛擬機的概念,從另一個角度分析,它們也是更純粹的面向對象語言。由于C++在可以用于面向過程的結構化程序設計,而Java和C#則沒有這個功能。但是,Java和C#也有自己的特點,它們都支持豐富的MetaClasses,這使得一切皆對象的概念支持的越發(fā)深刻。但是Java中的基礎類型在這方面的并沒有得到完善,這也可以說是一個遺憾吧。雖然如此,Java仍然是一個一直在學習的語言,相信Java可以憑此越走越遠。在面向對象發(fā)展到現(xiàn)今,又出現(xiàn)了一些重大的變革。這就是動態(tài)語言的出現(xiàn)。他們也都是支持面向對象技術的。最典型的動態(tài)語言有JavaScript,Python,Ruby等等。它們一個重大的變化就是將類的信息改變?yōu)閯討B(tài)的,并提出了DuckingType的概念。這在很大限度上提高了編程的生產力。其實,不僅僅在程序設計方面,面向對象也在不斷向其他階段滲透。1980年GradyBooch提出了面向對象設計的概念,面向對象分析由此開始。1985年,第一個商用面向對象數(shù)據(jù)庫問世。1990年以來,面向對象分析、測試、度量和管理等研究都得到長足發(fā)展。從此,全世界掀起了一股面向對象的熱潮,至今盛行不衰,面向對象也逐漸成為了程序設計的主流。但是同原型方法同樣,面向對象設計方法需要一定的軟件基礎支持才可以應用,此外在大型的MIS開發(fā)中假如不經自頂向下的整體劃分,而是一開始就自底向上的采用面向對象設計方法開發(fā)系統(tǒng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國離婚制研究二零二五年
- 2024國家能源集團紀律檢查中心系統(tǒng)內招聘筆試筆試參考題庫附帶答案詳解
- 二零二五運輸司機勞動合同書
- 政府采購招標代理協(xié)議二零二五年
- 中醫(yī)師承合同范例
- 二零二五版食堂勞務派遣用工合同范例
- 二零二五版全新家政保姆家政合同
- 七下期末試卷及答案
- 樹洞修復施工方案
- 低齡口腔正畸培訓課件
- 《實施方法論》課件
- 《中醫(yī)骨傷科學》課件- 外治法
- 統(tǒng)編版小學語文六年級下冊第二單元快樂讀書吧:《昆蟲記》讀中推進課課件(共19張)
- 醫(yī)學會議準備流程
- 藥劑學練習試卷24(題后含答案及解析)
- 2025年上海新徐匯集團有限公司招聘筆試參考題庫含答案解析
- 生物技術測試題+參考答案
- 大學英語(西安石油大學)知到智慧樹章節(jié)測試課后答案2024年秋西安石油大學
- 《市域智慧共享中藥房建設指南》
- 不穩(wěn)定型心絞痛和非ST段抬高心肌梗死治療指南解讀
- 民宿的經營成本分析報告
評論
0/150
提交評論