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

下載本文檔

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

文檔簡(jiǎn)介

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論