面向?qū)ο蟮恼軐W思考_第1頁
面向?qū)ο蟮恼軐W思考_第2頁
面向?qū)ο蟮恼軐W思考_第3頁
面向?qū)ο蟮恼軐W思考_第4頁
面向?qū)ο蟮恼軐W思考_第5頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

?妾:軟件開發(fā)技采的發(fā)黒經(jīng)歷了結(jié)構(gòu)化穆序設(shè)計到面向?qū)ο笾πg(shù)發(fā)展的過稔面向?qū)ο蠹夹g(shù)作為一種新的技木逐漸取代結(jié)構(gòu)化穆序設(shè)計方法具有其必魁生,其之所嘆能夠得到極大的發(fā)展與其深層的哲朵義瘤著天然的聯(lián)系;一個程序的好壞,它的容錯能力的強弱,嘆及蘇的可實現(xiàn)性也不酈度地依賴于穆序員的哲學觀。本文將介紹面向?qū)ο蠹夹g(shù)并探討其哲學意義?!啊⒚嫦?qū)ο蠹夹g(shù)3向?qū)ο蠹夹g(shù)的廣泛應(yīng)用,反映了計算機科學發(fā)展的趨勢和需要。的發(fā)展是相互促進的,計算機科學技術(shù)的發(fā)展推動了社會的現(xiàn)代泛,也艮±莉寸計算機科學提出了新的要求;人們越來越希望自殖關(guān)鍵字:面向?qū)ο筌浖_發(fā)哲學自然辯證法方法論3—、面向?qū)ο蠹夹g(shù)3向?qū)ο蠹夹g(shù)的廣泛應(yīng)用,反映了計算機科學發(fā)展的趨勢和需要。的發(fā)展是相互促進的,計算機科學技術(shù)的發(fā)展推動了社會的現(xiàn)代泛,也艮±莉寸計算機科學提出了新的要求;人們越來越希望自殖■1.1結(jié)構(gòu)化程序與面向?qū)ο蠹夹g(shù)卩在軟件開發(fā)過程中,計算機科學的發(fā)展與社化,計算機應(yīng)用的不斷接與計算機進行交互,而不再受專門訓練后才使它。對于這一要求的滿足,夠計算領(lǐng)域自身的技術(shù)發(fā)展提岀了更高的要求,于是當人們開始尋求一種萸能反映人類解決問題的自然方法時「面向?qū)ο蠹即灞惝a(chǎn)生了?!啊?.1結(jié)構(gòu)化程序與面向?qū)ο蠹夹g(shù)卩結(jié)構(gòu)化程序設(shè)計(StructurePrograming)方法的誕生,使得程序開發(fā)者能夠編寫出比較復雜的程序,但是即使結(jié)構(gòu)化編程方法、一旦某個應(yīng)用系統(tǒng)達^一定的大小,也對它無法控制程序員就陷入源程序的汪洋大海之中。調(diào)試、修改是非常令人頭痛的韻鬲這是因為這種程序設(shè)計方法把f程序看成函數(shù)和過程的集卷、其設(shè)計思路地自頂向下層次化,逐步求精棒田化:其程序結(jié)構(gòu)是按功能劃分基本模塊為樹型結(jié)構(gòu):使用局咅陵量程序,使模塊間的關(guān)系盡可自鋼單.獨立,從而可單獨驗證模塊的正確性,即所謂的模塊化。函數(shù)和進呈是程序的活動單元,數(shù)據(jù)用于傳輸。其特點是:按層次纟膨模塊」每一模塊只有一個入口一個出口,程序代碼和被處理數(shù)據(jù)分離,程序被動處理數(shù)據(jù),而不是由數(shù)據(jù)來主動地驅(qū)動程序的執(zhí)行,這就題典的“程序=數(shù)據(jù)結(jié)構(gòu)+算法”理傾點。a■1.2面向?qū)ο蠹夹g(shù)的作用卩面向歹嫌的程序設(shè)計(Object—OrierctedProgranoningt是一不慚的編程方法,它汲取了結(jié)構(gòu)化程序設(shè)計中的優(yōu)點和長處同時將一些強有力的;念“新椿性融舍在包括對象、類、方法s消息、多態(tài)、繼承、動態(tài)連接等。實際上,,現(xiàn)實世界就是由對象和動作纟賊的,在00中幾乎每一個名詞就表示一類對象,它具有屬性或持征。而語法的動詞就是動作,也可粹行為。從程序員的角度看,數(shù)據(jù)是對象的特征,而過程或函數(shù)是它的行為,所以,對象是數(shù)據(jù)和程序的組臺體。a■1.2面向?qū)ο蠹夹g(shù)的作用卩傳統(tǒng)設(shè)計方法以功能為主進行設(shè)計,結(jié)構(gòu)性強,便于設(shè)計,便于理解,?但軟件后期的修改、維護I#別是在大型軟件顯得萸為困難,而采用對象式設(shè)計有利于復甩肴利于擴充,有利于提高軟件質(zhì)量,有利于加速軟件開發(fā)過程。a使用00方法,渡計人員可以依照自己的意圖?薩自己的對象,并將問題映M至該對象頭使設(shè)計人員把主宴精為放在系統(tǒng)它上,而對^節(jié)問題可以較面向?qū)ο笤O(shè)計方法追求的是現(xiàn)實問題空間與軟件系統(tǒng)解穿間的近似或直接模擬。可以這樣看7現(xiàn)實世界包含兩大咅盼:物質(zhì)和意識,映K使用00方法,渡計人員可以依照自己的意圖?薩自己的對象,并將問題映M至該對象頭使設(shè)計人員把主宴精為放在系統(tǒng)它上,而對^節(jié)問題可以較面向歹嫌設(shè)計方法之所以受^當今各個方面的重視,是因為它具有許多良好的特點2模塊性:對象是一t自動機入互相之間能通過歹嫌認可的途徑進行通信廢送消息),相互沒有預料不到的影響,可以較肖自由地為各個不同的軟件系統(tǒng)所用;“封裝功為信息隱蔽提供具棟的菊貝手段,用戶不必清楚對象的內(nèi)部細節(jié),只要了解其功臺騎述就可以使麻a代碼共辜:繼承申攜供了一種扌鴻共辜的手段,可以避免重復的代碼設(shè)計,使得面向?qū)ο蟮姆椒ù_實有效;a靈活性:對象的功I緲行是在訃慮傳送時確定的,支持對象的主體將征,使得對象可以根據(jù)自身的特點進行功^痢b提鬲了程序設(shè)計的靈活性;a易維護性:對象實現(xiàn)了抽象和裝裝,使其中可能岀現(xiàn)的錯誤限第恠自身,不會向州專播,易檢錯和修改;斗増量型設(shè)計:面向?qū)ο笙到y(tǒng)可以迪過繼承機制不斷擴充功而不影響原有軟件的運行昇對象是具有封裝功能的獨立體購環(huán)境之間具有清晰的接口,它可以用干測試和存檔而脫離具體的應(yīng)用,從而形成軟件單元加庫存,通過使用這種單元軟件的生產(chǎn)效率可以得到較大的提高。a \,而且據(jù)濟方面也優(yōu)于傳統(tǒng)的分析可以說,面向?qū)ο蟪绦驈慕Y(jié)福和功上都勝過千傳統(tǒng)程序,從傳統(tǒng)程序設(shè)i慨程未看,在了解其程序設(shè)計語言的語法之后嵌可以把問題求解技巧從自然語言翻譯到該不榷序語言,而使用面向?qū)ο笳Z言系統(tǒng),所做的工祚則不同了,它是基于系纟諭程序員共辜f共同的環(huán)境,并且所有程序者礎(chǔ)對該環(huán)境的 因此,面向?qū)ο罂梢匝b旨斷有的程序,并建立,而且據(jù)濟方面也優(yōu)于傳統(tǒng)的分析程序單元之間的通訊。a麻設(shè)計費用宴比傳統(tǒng)的分析方■13面向?qū)ο蟪绦蛟O(shè)計語言(OOP)u面向歹嫌的分析方法不僅可以改善軟件系統(tǒng)方法,它的開發(fā)周期短、省工、省時、高質(zhì)、麻設(shè)計費用宴比傳統(tǒng)的分析方■13面向?qū)ο蟪绦蛟O(shè)計語言(OOP)u面向歹嫌的程序設(shè)計語言主要有:SmalltalkSOsEiffelsC++、Obje\tive-C等,它們除了具有計算機語言的F特征外,還具有其它語言所沒有的特征。這些椿征主要是數(shù)據(jù)封裝s繼承和多態(tài)性。a個能動的實體,數(shù)據(jù)封裝將一個數(shù)據(jù)和與這個數(shù)據(jù)有關(guān)的操作集舍封裝在一起。形成一個能動的實體,程師也可贈稱為歹嫌。用戶不必失瞳對象行為的實現(xiàn)細節(jié),只需根據(jù)對象提供的外咅胯卜畢口訪問對象。正由刊匕,數(shù)據(jù)封裝帶有類似硬件集成電路(瓦)的特征。硬件工程師在搭硬恥電路時,不必知道集成電路芯片的功^是^何實現(xiàn)的,只需了解管腳功臺瀉電I#性。軟件似地在軟件中力認封斯的對象,提高軟件生產(chǎn)率和増強軟件的重用性。a程師也可贈繼承是面向?qū)ο笳Z言的另一重要概念。在客觀世界中,普遍存在著一般和特殊的關(guān)系,繼承將其模型化。在面向?qū)ο蟮恼Z言中,類功臺枝持了一般與楙的層次機制J除了根節(jié)點外,每個類者陪自己的父類。除了葉節(jié)點外,每個類都有自己的手類。一個子類可以從它的父尖那里繼承所有的特性和行為,即對應(yīng)十語言中的數(shù)站和操作'這就擴充了它的特性和行為吃類抽象出共同特征>子類表達其差別>類的實例化就得到對象。有了類的層次結(jié)構(gòu)和継承性;毎個婁的共同性質(zhì)只需定義一次,用戶就可以充分利用已有的類J符合軟件重用的目標。所謂多態(tài)性,就是符號多種語義,或相同界面多種實現(xiàn)。讓我們考慮多態(tài)性問題的一個類比實倒:當汽車司班貓避免撞車時剎車,他關(guān)心的是快速剎車,即效果,而不關(guān)心剎車是鼓式剎車還是盤式剎車”即實現(xiàn)方法的細節(jié)。這里,剎車的使用與剎車的結(jié)構(gòu)是分離的慨念J可能有多種結(jié)構(gòu)的剎卡?它們的使用方法是相同的>相同的使用方法對應(yīng)于不同種類的剎車結(jié)構(gòu)。這形象地反映*多態(tài)性的思想,即相同界面對應(yīng)于多種實現(xiàn)。面向?qū)ο笳Z言中利用函數(shù)重載和虛函數(shù)機帯*奴擬實現(xiàn)了客觀世界中這種晉遍存在的多態(tài)性。1.4面向?qū)ο蟮?序設(shè)計面向?qū)ο蟮某绦蛟O(shè)討]呈要有以下三個步驟:首先是進行面向?qū)Φ诘姆治?00A-Object-orientedAnalysis),它的主要任務(wù)是了解同題域內(nèi)該同題所涉及的時象'對象間的關(guān)系和作用>即操作。然后構(gòu)造該問題的對象模型,力爭這個複型能真實地因映出所要解決的實質(zhì)問題。苴次是進行面向?qū)Σ硨O(shè)計(OOD-Object-OrientedDesign)?即設(shè)計軟件的對象模型。在分析的基礎(chǔ)上,根據(jù)所應(yīng)用的面向?qū)ο筌浖_發(fā)環(huán)境的功能強弱不等,對所構(gòu)造的問題的對象模型作必要的改造,以最少改變原同題域內(nèi)的對象模型為原則,以便在軟件系統(tǒng)內(nèi)設(shè)計各個對象'對象間的關(guān)系,如??層次關(guān)系継承關(guān)系等,對象問的通信方式,如消息模式等,總之是設(shè)計各個對象應(yīng)做些什玄進最后是面向?qū)ο蟮膶崿F(xiàn)(OOI-OKj-ectOrientedImplementation)o所謂實現(xiàn)即軟件功能的實現(xiàn),包括:毎個對象的內(nèi)功能的實或?:確-立對象哪一些處理能力應(yīng)在哪些類中進行描述;確定并實現(xiàn)系統(tǒng)的界面s輸岀的形式及其它魁制機.理等。1.5面向?qū)ο蟮姆椒▽W \面向?qū)ο蟮姆椒▽W認為: /Is客觀世界是由各種對象組成的?任何爭物都是一乍仝I象'毎個對象都有自己質(zhì)的規(guī)定性和運動變化的規(guī)律'毎個對象都屬于某個對象、類#細是該對象類的一個實例化元素。不同對象的組合及其相互作用就構(gòu)成了我們要研究、分赫和構(gòu)造的客觀系統(tǒng)2、通過分析和比較,可以發(fā)現(xiàn)對象間的相似性,甲掲示出不同對象的共同屬性。這就是構(gòu)成對象類的根據(jù)。在按類、子類“父類等慨念構(gòu)念對象類的層次關(guān)系時'如不加特殊說明'則低層對象可以自然地継承較高一層對象的屬性\3s對于已分成類的各個對象>可以通過定義一組方哇來.說明該對象的功能,也就是允許作用于該對象上的各種操作。對象間的相互聯(lián)系及其作用是遊過傳遞消息來完成的'消息就是通知對象去完成一個允許作用于該對象上的操作。至于該對象請如訶完成這個操作的細節(jié)>則是封裝在相應(yīng)的對象類的定義中的?對外是隱蔽的。

二、面向?qū)ο蠹夹g(shù)的哲學意義J面向?qū)ο蠹夹g(shù)比較冥實地複擬了客觀爭物的固有結(jié)構(gòu)和層次關(guān)系,符合人類認識爭物的L般規(guī)律.面向?qū)ο蠹夹g(shù)的初步成功給我們的啟示是多方面的和深刻的。首先,從哲學的角 '任何一個軟件作為智力產(chǎn)品,都是人們認識爭物的手段和工具,具有“方法”的性質(zhì)?對象化的過程.只有當人的認識方法正確表征和順應(yīng)了客觀爭物及苴過程。符合客觀世界的真實過程和規(guī)律時'這種方法的對象化“物質(zhì)化才是可行的。這和物?質(zhì)化的結(jié)果一一軟件,它的穩(wěn)定性、通用性、重用性才是有保陞的?否則,就是不可行的。孟冋對象技術(shù)通過軟件的自然化克服軟件危機的爭實向我們昭明:以往軟件不能大量生產(chǎn)、不傘通用、不能重用的本質(zhì)原因在于,作為方法的軟件系統(tǒng)中的主觀性因素太多?這就是軟件審機的深層實質(zhì)。由此可見'克服軟件危機的過程,其實就是改進人們認識爭物的方法的過悝,是人的認識方法不斷客觀化、自然化、系統(tǒng)化的過程。 !苴次,面向?qū)ο蠹夹g(shù)的發(fā)展深化了主客件之間的關(guān)系。豐富和發(fā)展了辯證唯物主義的認識論,軟件作為人類認識爭物的方法和工月;它無疑是人和自然之間、主體和客體之間的中介。一方面>它是自然爭物即客體的模喊物,是客觀爭物過程的一定程度上的形式化和對象化;另一方面J它又是主體認識方法和息維過程的形式化,是主體思維過程的一定程度的對象化。人們借助于它認識爭物、淫構(gòu)彎屣的過程,既是客觀爭物及苴過程不斷形式化的過程,也是人的認識方法不斷客觀化的過程。換句話說>就是客體通過形式化進入主體和主體通過對象化深入客體的兩個過程的交互杯一。面向?qū)ο蠹夹g(shù)由于實現(xiàn)了軟件ICs較好地克服了軟件危機,提高了軟件系統(tǒng)的功能.所以它加速了人們認識爭物的進程,深化了主客體之間的關(guān)系。面向?qū)ο蠹夹g(shù)向我們表明?深化主客體之間的關(guān)系?提高主體的認識能力J苴唯一正確的途徑就是不斷加速實現(xiàn)軟件葩自然化和系統(tǒng)化。這就是面向?qū)ο蠹夹g(shù)所啟示紿我們的客體走進主體、主體深入客體的方法'論結(jié)論,也是一條重要的認識論結(jié)論。面向?qū)ο蟪绦蛟O(shè)計方法解決了傳統(tǒng)結(jié)構(gòu)化方法中問題空間與解空間不一致的問題,避免從分析與設(shè)計到軟件模塊結(jié)構(gòu)問的多次轉(zhuǎn)換過程'便開長憑得簡單S高效、合理。從科學認識辯證法的角度來看J結(jié)構(gòu)化方法是還原主復克法在軟件系統(tǒng)設(shè)計方法的映射。必然帶有還原主文的局限性。運用結(jié)構(gòu)化方法為現(xiàn)實世界苗系.統(tǒng)淫模時,隨著分析越來越深入'功能模塊層次越來越多,也就越來越范以重現(xiàn)功能模塊問鋼機聯(lián)系。即容易篥只見樹木?不見森林"。利用面向?qū)ο蠓椒ㄔO(shè)計程序,實際上是利用抽象方法定義各種各樣命抽象“類S通過將類具體化為對象和通過在對象之間傳遞消息來完成。苴中'通過模塊和為裝將對象的定義和對象的實現(xiàn)分開。通過継承體現(xiàn)類與類之間的關(guān)系。以及由此帶來的動態(tài)*接性和并行性。從而構(gòu)成面向?qū)ο蟮幕咎卣鳌C嫦驅(qū)ο筌浖_發(fā)方法的出現(xiàn),是軟件開發(fā)方法

溫馨提示

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

評論

0/150

提交評論