日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

面向?qū)ο蠓椒?/span>

 digman2005 2008-01-29

面向?qū)ο蠓椒?/h2>

因業(yè)務(wù)需要,“中科永聯(lián)”正式更名為“中程在線”,歡迎大家瀏覽新網(wǎng)站“中程在線信息產(chǎn)業(yè)培訓(xùn)網(wǎng)

中科永聯(lián)高級(jí)技術(shù)培訓(xùn)中心(www.

      面向?qū)ο蠓椒?/a>(Object-Oriented Method)是一種把面向?qū)ο?/a>的思想應(yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方法,簡(jiǎn)稱OO (Object-Oriented)方法,是建立在“對(duì)象”概念基礎(chǔ)上的方法學(xué)。對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接對(duì)應(yīng)關(guān)系,一個(gè)對(duì)象定義了具有相似性質(zhì)的一組對(duì)象。而每繼承性是對(duì)具有層次關(guān)系的類的屬性和操作進(jìn)行共享的一種方式。所謂面向?qū)ο缶褪腔趯?duì)象概念,以對(duì)象為中心,以類和繼承為構(gòu)造機(jī)制,來認(rèn)識(shí)、理解、刻畫客觀世界和設(shè)計(jì)、構(gòu)建相應(yīng)的軟件系統(tǒng)。

      面向?qū)ο蠓椒ㄗ鳛橐环N新型的獨(dú)具優(yōu)越性的新方法正引起全世界越來越廣泛的關(guān)注和高度的重視,它被譽(yù)為"研究高技術(shù)的好方法",更是當(dāng)前計(jì)算機(jī)界關(guān)心的重點(diǎn)。十多年來,在對(duì)OO方法如火如荼的研究熱潮中,許多專家和學(xué)者預(yù)言:正象70年代結(jié)構(gòu)化方法對(duì)計(jì)算機(jī)技術(shù)應(yīng)用所產(chǎn)生的巨大影響和促進(jìn)那樣,90年代OO方法會(huì)強(qiáng)烈地影響、推動(dòng)和促進(jìn)一系列高技術(shù)的發(fā)展和多學(xué)科的綜合。

一、面向?qū)ο蠓椒ǖ挠蓙砼c發(fā)展

  回顧歷史可激勵(lì)現(xiàn)在,以規(guī)劃將來。

  OO方法起源于面向?qū)ο蟮木幊陶Z言(簡(jiǎn)稱為OOPL)。50年代后期,在用FORTRAN語言編寫大型程序時(shí), 常出現(xiàn)變量名在程序不同部分發(fā)生沖突的問題。鑒于此,ALGOL語言的設(shè)計(jì)者在ALGOL60中采用了以"Begin……End"為標(biāo)識(shí)的程序塊,使塊內(nèi) 變量名是局部的,以避免它們與程序中塊外的同名變量相沖突。這是編程語言中首次提供封裝(保護(hù))的嘗試。此后程序塊結(jié)構(gòu)廣泛用于高級(jí)語言如Pascal 、Ada、C之中。

  60年代中后期,Simula語言在ALGOL基礎(chǔ)上 研制開發(fā),它將ALGOL的塊結(jié)構(gòu)概念向前發(fā)展一步,提出了對(duì)象的概念,并使用了類,也支持類繼承。70年代,Smalltalk語言誕生,它取 Simula的類為核心概念,它的很多內(nèi)容借鑒于Lisp語言。由Xerox公司經(jīng)過對(duì)Smautalk72、76持續(xù)不斷的研究和改進(jìn)之后,于1980 年推出商品化的,它在系統(tǒng)設(shè)計(jì)中強(qiáng)調(diào)對(duì)象概念的統(tǒng)一,引入對(duì)象、對(duì)象類、方法、實(shí)例等概念和術(shù)語,采用動(dòng)態(tài)聯(lián)編和單繼承機(jī)制。

  從80年代起,人們基于以往巳提出的有關(guān)信息隱蔽和抽象數(shù)據(jù)類型等概念,以及由Modula2、Ada和Smalltalk和等語言所奠定的基礎(chǔ),再加上客觀需求的推動(dòng),進(jìn)行了大量的理論研究和實(shí)踐探索,不同類型的面向?qū)ο笳Z言(如:Object-c、Eiffel、c++、Java、Object-Pascal等)逐步地發(fā)展和建立起較完整的和雨后春筍般研制開發(fā)出來,OO方法的概念理論體系和實(shí)用的軟件系統(tǒng)。

  面向?qū)ο笤闯鲇赟imula,真正的OOP由Smalltalk奠基。Smalltalk現(xiàn)在被認(rèn)為是最純的OOPL。

      正是通過Smalltalk80的研制與推廣應(yīng)用,使人們注意到OO方法所具有的模塊化、信息封裝與隱蔽、抽象性、繼承性、多樣性等獨(dú)特之處,這些優(yōu)異特性為研制大型軟件、提高軟件可靠性、可重用性、可擴(kuò)充性和可維護(hù)性提供了有效的手段和途徑。

  80年代以來,人們將面向?qū)ο蟮幕靖拍詈瓦\(yùn)行機(jī)制運(yùn)用到其它領(lǐng)域,獲得了一系列相應(yīng)領(lǐng)域的面向?qū)ο蟮募夹g(shù)。面向?qū)ο蠓椒ㄒ驯粡V泛應(yīng)用于程序設(shè)計(jì)語言、形式定義、設(shè)計(jì)方法學(xué)、操作系統(tǒng)、分布式系統(tǒng)、人工智能、實(shí)時(shí)系統(tǒng)、數(shù)據(jù)庫(kù)、人機(jī)接口、計(jì)算機(jī)體系結(jié)構(gòu)以及并發(fā)工程、綜合集成工程等,在許多領(lǐng)域的應(yīng)用都得到了很大的發(fā)展。1986年在美國(guó)舉行了首屆"面向?qū)ο缶幊?/a>、系統(tǒng)、語言和應(yīng)用(OOPSLA‘86)"國(guó)際會(huì)議,使面向?qū)ο笫艿绞廊瞬毮?,其后每年都舉行一次,這進(jìn)一步標(biāo)志OO方法的研究已普及到全世界。

二、面向?qū)ο蟮幕靖拍钆c特征

  用計(jì)算機(jī)解決問題需要用程序設(shè)計(jì)語 言對(duì)問題求解加以描述(即編程),實(shí)質(zhì)上,軟件是問題求解的一種表述形式。顯然,假如軟件能直接表現(xiàn)人求解問題的思維路徑(即求解問題的方法),那么軟件 不僅容易被人理解,而且易于維護(hù)和修改,從而會(huì)保證軟件的可靠性和可維護(hù)性,并能提高公共問題域中的軟件模塊和模塊重用的可靠性。面向?qū)ο蟮臋C(jī)能念和機(jī)制 恰好可以使得按照人們通常的思維方式來建立問題域的模型,設(shè)計(jì)出盡可能自然地表現(xiàn)求解方法的軟件。

  面向?qū)ο蟮幕靖拍?br>  對(duì)象:對(duì)象是要研究的 任何事物。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐大的數(shù)據(jù)庫(kù)、極其復(fù)雜的自動(dòng)化工廠、航天飛機(jī)都可看作對(duì)象,它不僅能表示有形的實(shí)體,也能表示無形的 (抽象的)規(guī)則、計(jì)劃或事件。對(duì)象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)構(gòu)成一獨(dú)立整體。從程序設(shè)計(jì)者來看,對(duì)象是一個(gè)程序模 塊,從用戶來看,對(duì)象為他們提供所希望的行為。在對(duì)內(nèi)的操作通常稱為方法。

  類:類是對(duì)象的模板。即類是對(duì)一組有相同數(shù)據(jù)和相同操作的對(duì)象的定義,一個(gè)類所包含的方法和數(shù)據(jù)描述一組對(duì)象的共同屬性和行為。類是在對(duì)象之上的抽象,對(duì)象則是類的具體化,是類的實(shí)例。類可有其子類,也可有其它類,形成類層次結(jié)構(gòu)。

  消息:消息是對(duì)象之間進(jìn)行通信的一種規(guī)格說明。一般它由三部分組成:接收消息的對(duì)象、消息名及實(shí)際變?cè)?/font>

      面向?qū)ο笾饕卣鳎?br>  封裝性:封裝 是一種信息隱蔽技術(shù),它體現(xiàn)于類的說明,是對(duì)象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個(gè)整體,以實(shí)現(xiàn)獨(dú)立性很強(qiáng)的模塊,使得用戶只能 見到對(duì)象的外特性(對(duì)象能接受哪些消息,具有那些處理能力),而對(duì)象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實(shí)現(xiàn)加工能力的算法)對(duì)用戶是隱蔽的。封裝的目的 在于把對(duì)象的設(shè)計(jì)者和對(duì)象者的使用分開,使用者不必知曉行為實(shí)現(xiàn)的細(xì)節(jié),只須用設(shè)計(jì)者提供的消息來訪問該對(duì)象。
繼承性:繼承性是子類自動(dòng)共享父類之間數(shù)據(jù)和方法的機(jī)制。它由類的派生功能體現(xiàn)。一個(gè)類直接繼職其它類的全部描述,同時(shí)可修改和擴(kuò)充。

  繼職具有傳達(dá)室遞性。繼職分為單繼承(一個(gè)子類只有一父類)和多重繼承(一個(gè)類有多個(gè)父類)。類的對(duì)象是各自封閉的,如果沒繼承性機(jī)制,則類對(duì)象中數(shù)據(jù)、方法就會(huì)出現(xiàn)大量重復(fù)。繼承不僅支持系統(tǒng)的可重用性,而且還促進(jìn)系統(tǒng)的可擴(kuò)充性。

  多態(tài)性:對(duì)象根據(jù)所接收的消息而做出動(dòng)作。同一消息為 不同的對(duì)象接受時(shí)可產(chǎn)生完全不同的行動(dòng),這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個(gè)通用的信息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接受消息的對(duì)象自行決定,如 是,同一消息即可調(diào)用不同的方法。例如:Print消息被發(fā)送給一圖或表時(shí)調(diào)用的打印方法與將同樣的Print消息發(fā)送給一正文文件而 調(diào)用的打印方法會(huì)完全不同。多態(tài)性的實(shí)現(xiàn)受到繼承性的支持,利用類繼承的層次關(guān)系,把具有通用功能的協(xié)議存放在類層次中盡可能高的地方,而將實(shí)現(xiàn)這一功能 的不同方法置于較低層次,這樣,在這些低層次上生成的對(duì)象就能給通用消息以不同的響應(yīng)。在OOPL中可通過在派生類中重定義基類函數(shù)(定義為重載函數(shù)或虛 函數(shù))來實(shí)現(xiàn)多態(tài)性。

  綜上可知,在OO方法中,對(duì)象和傳遞消息分別表現(xiàn)事物及事物間相互聯(lián)系的概念。類和繼承是是適應(yīng)人們一般思維方式的描述范式。方法是允許作用于該類對(duì)象上的各種操作。這種對(duì)象、類、消息和方法的程序設(shè)計(jì)范式的基本點(diǎn)在于對(duì)象的封裝性和類的繼承性。通過封裝能將對(duì)象的定義和對(duì)象的實(shí)現(xiàn)分開,通過繼承能體現(xiàn)類與類之間的關(guān)系,以及由此帶來的動(dòng)態(tài)聯(lián)編和實(shí)體的多態(tài)性,從而構(gòu)成了面向?qū)ο蟮幕咎卣鳌?/font>

三、面向?qū)ο蟮男路椒ㄕ?、新范型、新技術(shù)

  OO方法的作用和意義決不只局限于編程技術(shù),它是一種新的程序設(shè)計(jì)范型--面向?qū)ο蟪绦蛟O(shè)計(jì)范型;是信息系統(tǒng)開發(fā)的新方法論--面向?qū)ο蠓椒▽W(xué);是正在興起的新技術(shù)--面向?qū)ο蠹夹g(shù)。

  面向?qū)ο蟪绦蛟O(shè)計(jì)范型:程序設(shè)計(jì)范型(以下簡(jiǎn)稱程設(shè)范型)具體指的是程序設(shè)計(jì)的體裁,正如文學(xué)上有小說、詩(shī)歌、散文等體裁,程序設(shè)計(jì)體裁是用程序設(shè)計(jì)語言表達(dá)各種概念和各種結(jié)構(gòu)的一套設(shè)施。

  目前,程設(shè)范型分為:過程式程設(shè)范型、函數(shù)式程設(shè)范 型,此外還有進(jìn)程式程設(shè)范型、事件程設(shè)范型和類型系統(tǒng)程設(shè)范型。每一程設(shè)范型都有多種程序設(shè)計(jì)語言支持(如:FORTRAN、PASCAL、C均體現(xiàn)過程 式程設(shè)范型,用來進(jìn)行面向過程的程序設(shè)計(jì)),而某些語言兼?zhèn)涠喾N范型(如:Lisp屬過程與函數(shù)混合范型,C++則是進(jìn)程與面向?qū)ο蠡旌戏缎偷恼Z言)。

  過程式程設(shè)范型是流行最廣泛的程序設(shè)計(jì)范型(人們平常 所使用的程序設(shè)計(jì)語言大多屬于此類型一筆勾銷它們?yōu)槊嫦蜻^程的語言),這一程設(shè)范型的中心點(diǎn)是設(shè)計(jì)過程,所以程序設(shè)計(jì)時(shí)首先要決定的是問題解所需要的過 程,然后設(shè)計(jì)過程的算法。這類范型的語言必須提供設(shè)施給過程(函數(shù))傳送變?cè)头祷氐闹担绾螀^(qū)分不同種類的過程(函數(shù))、如何傳送變?cè)沁@類程序設(shè)計(jì)中 關(guān)心的主要問題。

  面向?qū)ο蟪淘O(shè)范型是在以上范型之上發(fā)展起來的,它的關(guān) 鍵在于加入了類及其繼承性,用類表示通用特性,子類繼承父類的特性,并可加入新的特性。對(duì)象以類為樣板被創(chuàng)建。所以在面向?qū)ο蟪淘O(shè)范中,首要的任務(wù)是決定 所需要的類,每個(gè)類應(yīng)設(shè)置足夠的操作,并利用繼承機(jī)制里二地共享共同的特性。
  簡(jiǎn)而言之,面向?qū)ο蟪淘O(shè)范型具有其它范型所缺乏或不具備的特點(diǎn),極富生命力,能夠適應(yīng)復(fù)雜的大型的軟件開發(fā)??梢钥隙ǖ卣f,這種新的程設(shè)范型必將有力地推動(dòng)軟件開發(fā)的新的進(jìn)展。限于篇幅,其它程設(shè)范型在此不作細(xì)述。

  面向?qū)ο蠓椒▽W(xué):OO方法遵循一般的認(rèn)知方法學(xué)的基本 概念(即有關(guān)演繹--從一般到特殊和歸納--從特殊到一般的完整理論和方法體系)而建立面向?qū)ο蠓椒ǖ然A(chǔ)。面向?qū)ο蠓椒▽W(xué)要點(diǎn)之一:認(rèn)為客觀世界是由各 種"對(duì)象"所組成的,任何事物都是對(duì)象,每一個(gè)對(duì)象都有自已的運(yùn)動(dòng)規(guī)律和內(nèi)部狀態(tài),每一個(gè)對(duì)象都屬于某個(gè)對(duì)象"類",都是該對(duì)象類的一個(gè)元素。復(fù)雜的對(duì)象 可以是由相對(duì)比較簡(jiǎn)單的各種對(duì)象以某種方式而構(gòu)成的。不同對(duì)象的組合及相互作用就構(gòu)成了我們要研究、分析和構(gòu)造的客觀系統(tǒng)。面向?qū)ο蠓椒▽W(xué)要點(diǎn)之二:是通 過類比,發(fā)現(xiàn)對(duì)象間的相似性,即對(duì)象間的共同屬性,這就是構(gòu)成對(duì)象類的依據(jù)。在?quot;類"、"父類"、"子類"的概念構(gòu)成對(duì)象類的層次關(guān)系時(shí),若不 加特殊說明,則處在下一層次上的對(duì)象可自然地繼承位于上一層次上的對(duì)象的屬性。面向?qū)ο蠓椒▽W(xué)齡前要點(diǎn)之三:認(rèn)為對(duì)已分成類的各個(gè)對(duì)象,可以通過定義一組 "方法"來說明該對(duì)象的功能,即允許作用于該對(duì)象上的各種操作。對(duì)象間的相互聯(lián)系是通過傳遞"消息"來完成的,消息就是通知對(duì)象去完成一個(gè)允許作用于該對(duì) 象的操作,至于該對(duì)象將如何完成這個(gè)操作的細(xì)節(jié),則是封裝在相應(yīng)的對(duì)象類的定義中的,細(xì)節(jié)對(duì)于外界是隱蔽的。

  可見,OO方法具有很強(qiáng)的類的概念,因此它就能很自然地直觀地模擬人類認(rèn)識(shí)客觀世界的方式,亦即模擬人類在認(rèn)知進(jìn)程中的由一般到特殊的演繹功能或由特殊到一般的歸納功能,類的概念既反映出對(duì)象對(duì)象的本質(zhì)屬性,又提供了實(shí)現(xiàn)對(duì)象共享機(jī)制的理論根據(jù)。

  當(dāng)我們遵照面向?qū)ο蠓椒▽W(xué)的思想進(jìn)行軟件系統(tǒng)開發(fā)時(shí),首先要行面向?qū)ο蟮姆治觯?a href="http:///phrase/200603050028345.html" target="_new">OOA――Object Oriented Analysis),其任務(wù)是了解問題域所涉及的對(duì)象、對(duì)象間的關(guān)系和作用(即操作),然后構(gòu)造問題的對(duì)象模型,力爭(zhēng)該模型能真實(shí)地反映出所要解決的"實(shí) 質(zhì)問題"。在這一過程中,抽象是最本質(zhì)、最重要的方法。針對(duì)不同的問題性質(zhì)選擇不同的抽象層次,過簡(jiǎn)或過繁都會(huì)影響到對(duì)問題的本質(zhì)屬性的了解和解決。

  其次就是進(jìn)行面向?qū)ο蟮脑O(shè)計(jì)(OOD――Object Oriented Analysis),即設(shè)計(jì)軟件的對(duì)象模型。根據(jù)所應(yīng)用的面向?qū)ο?a href="http:///phrase/200602282250045.html" target="_new">軟件開發(fā)環(huán)境的功能強(qiáng)弱不等,在對(duì)問題的對(duì)象模型的分析基礎(chǔ)上,可能要對(duì)它進(jìn)行一定的改造,但應(yīng)以最少改變?cè)瓎栴}域的對(duì)象模型為原則。然后就在軟件系統(tǒng)內(nèi)設(shè)設(shè)計(jì)各個(gè)對(duì)象、對(duì)象間的關(guān)系(如層次關(guān)系、繼承關(guān)系等)、對(duì)象間的通信方式(如消息模式)等,總之是設(shè)計(jì)各個(gè)對(duì)?quot;應(yīng)做些什么"。

  最后階段是面向?qū)ο蟮膶?shí)現(xiàn)(OOI-- Object Oriented Zmplementation),即指軟件功能的編碼實(shí)現(xiàn),它包括:每個(gè)對(duì)象的內(nèi)部功能的實(shí)現(xiàn);確立對(duì)象哪一些處理能力應(yīng)在哪些類中進(jìn)行描述;確定并實(shí)現(xiàn) 系統(tǒng)的界面、輸出的形式及其它控制機(jī)理等,總之是實(shí)現(xiàn)在OOD階段所規(guī)定的各個(gè)對(duì)象所應(yīng)完成的任務(wù)。

  用OO方法進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì),其基本步驟如下:
  (1) 分析確定在問題空間和解空間出現(xiàn)的全部對(duì)象及其屬性;
  (2) 確定應(yīng)施加于每個(gè)對(duì)象的操作,即對(duì)象固有的處理能力;
 ?。?) 分析對(duì)象間的聯(lián)系,確定對(duì)象彼此間傳遞的消息;
 ?。?) 設(shè)計(jì)對(duì)象的消息模式,消息模式和處理能力共同構(gòu)成對(duì)象的外部特性;
 ?。?) 分析各個(gè)對(duì)象的外部特性,將具有相同外部特性的對(duì)象歸為一類,從而確定所需要的類;
 ?。?) 確定類間的繼承關(guān)系,將各對(duì)象的公共性質(zhì)放在較上層的類中描述,通過繼承來共享對(duì)公共性質(zhì)的描述;
 ?。?) 設(shè)計(jì)每個(gè)類關(guān)于對(duì)象外部特性的描述;
 ?。?) 設(shè)計(jì)每個(gè)類的內(nèi)部實(shí)現(xiàn)(數(shù)據(jù)結(jié)構(gòu)和方法);
 ?。?) 創(chuàng)建所需的對(duì)象(類的實(shí)例),實(shí)現(xiàn)對(duì)象間應(yīng)有的聯(lián)系(發(fā)消息)。

  面向?qū)ο蠹夹g(shù):技術(shù)"泛指根據(jù)生產(chǎn)實(shí)踐經(jīng)驗(yàn)和自然科學(xué)原理

  而發(fā)展起來的各種工藝操作方法與技能";"廣義地講, 還包括相應(yīng)的生產(chǎn)工具和其它物質(zhì)設(shè)備,以及生產(chǎn)的工藝過程或作業(yè)程序、方法"。OO方法既是程序設(shè)計(jì)新范型、系統(tǒng)開發(fā)的新方法學(xué),作為一門新技術(shù)它就有了 基本的依據(jù),事實(shí)上,OO方法可支持種類不同的系統(tǒng)開發(fā)地,已經(jīng)或正在許多方面得以應(yīng)用,因此,可以說OO方法是一門新的技術(shù)――面向?qū)ο蠹夹g(shù)。

  近十多年來,除了面向?qū)ο蟮某绦蛟O(shè)計(jì)以外,OO方法已 發(fā)展應(yīng)用到整個(gè)信息系統(tǒng)領(lǐng)域和一些新興的工業(yè)領(lǐng)域,包括:用戶界面(特別是圖形用戶界面――GUI)、應(yīng)用集成平臺(tái)、面向?qū)ο髷?shù)據(jù)庫(kù)(OODB)、分布式 系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、人工智能領(lǐng)域以及并發(fā)工程、綜合集成工程等。人工智能是和計(jì)算機(jī)密切相關(guān)的新領(lǐng)域,在很多方面已經(jīng)采用面向?qū)ο蠹夹g(shù),如知識(shí)的表示,專家系統(tǒng)的建造、用戶界面等。人工智能的軟件通常規(guī)模較大,用面向?qū)ο蠹夹g(shù)有可能更好地設(shè)計(jì)并維護(hù)這類程序。

    80年代后期形成的并發(fā)工程,其概念要點(diǎn)是在產(chǎn)品開發(fā)初期(即方案設(shè)計(jì)階段)就把結(jié)構(gòu)、工藝、加工、裝配、測(cè)試、使用、市場(chǎng)等問題同期并行地啟動(dòng)運(yùn)行,其 實(shí)現(xiàn)必須有兩個(gè)基本條件:一是專家群體,二是共享并管理產(chǎn)品信息(將CAD、CAE、CIN緊密結(jié)合在一起)。顯然,這需要面向?qū)ο蠹夹g(shù)的支持。目前,一 些公司采用并發(fā)工程組織產(chǎn)品的開發(fā),已取得顯著效益:波音公司用以開發(fā)巨型777運(yùn)輸機(jī),比開發(fā)767節(jié)省了一年半時(shí)間;日本把并發(fā)工程用于新型號(hào)的汽車 生產(chǎn),和美國(guó)相比只用一半的時(shí)間。產(chǎn)業(yè)界認(rèn)為它們念后的生存要依靠并發(fā)工程,而面向?qū)ο蠹夹g(shù)是促進(jìn)并發(fā)工程發(fā)展的重要支持。

  綜合集成工程是開發(fā)大型開放式復(fù)雜統(tǒng)的新的工程概念, 和并發(fā)工程相似,專家群體的組織和共享信息,是支持這一新工程概念的兩大支柱。由于開放式大系統(tǒng)包含人的智能活動(dòng),建立數(shù)學(xué)模型非常困難,而OO方法能夠 比較自然地刻劃現(xiàn)實(shí)世界,容易達(dá)到問題空間和程序空間的一致,能夠在多種層次上支持復(fù)雜系統(tǒng)層次模型的建立,是研究綜合集成工程的重要工具。

  面向?qū)ο蠹夹g(shù)對(duì)于并發(fā)工程和綜合集成工程的作用,一方面說明了這一新技術(shù)應(yīng)用范圍的寬廣,同時(shí)也說明了它的重要影響,更證明了面向?qū)ο蠹夹g(shù)是一門新興的值得廣泛重視的技術(shù)。

      綜上所述,可歸納出OO方法用于系統(tǒng)開發(fā)有如下優(yōu)越性:
 ?。?) 強(qiáng)調(diào)從現(xiàn)實(shí)世界中客觀存在的事物(對(duì)象)出發(fā)來認(rèn)識(shí)問
  題域和構(gòu)造系統(tǒng),這就使系統(tǒng)開發(fā)者大大減少了對(duì)問題域的理解難度,從而使系統(tǒng)能更準(zhǔn)確地反映問題域。
  (2) 運(yùn)用人類日常的思維方法和原則(體現(xiàn)于OO方法的抽
  象、分類、繼承、封裝、消息通訊等基本原則)進(jìn)行系統(tǒng)開發(fā),有益于發(fā)揮人類的思維能力,并有效地控制了系  統(tǒng)復(fù)雜性。
  (3) 對(duì)象的概念貫穿于開發(fā)過程的終,使各個(gè)開發(fā)階段的系統(tǒng)
  成分具良好的對(duì)應(yīng),從而顯著地提高了系統(tǒng)的開發(fā)效率與質(zhì)量,并大大降低系統(tǒng)維護(hù)的難度。
  (4) 對(duì)象概念的一致性,使參與系統(tǒng)開發(fā)的各類人員在開發(fā)的各所段具有共同語言,有效地改善了人員之間的  交流和協(xié)作。
 ?。?) 對(duì)象的相對(duì)穩(wěn)定性和對(duì)易變因素隔離,增強(qiáng)了系統(tǒng)的應(yīng)變能力。
  (6) 對(duì)象類之間的繼承關(guān)系和對(duì)象的相對(duì)獨(dú)立性,對(duì)軟件復(fù)用提供了強(qiáng)有力的支持。

四、OOA方法
 
      面向?qū)ο蟮姆治龇椒ǎ∣OA),是在一個(gè)系統(tǒng)的開發(fā)過程中進(jìn)行了系統(tǒng)業(yè)務(wù)調(diào)查以后,按照面向?qū)ο蟮乃枷雭矸治鰡栴}。OOA與結(jié)構(gòu)化分析有較大的區(qū)別。 OOA所強(qiáng)調(diào)的是在系統(tǒng)調(diào)查資料的基礎(chǔ)上,針對(duì)OO方法所需要的素材進(jìn)行的歸類分析和整理,而不是對(duì)管理業(yè)務(wù)現(xiàn)狀和方法的分析。
 
(一)處理復(fù)雜問題的原則
 
      用OOA方法對(duì)所調(diào)查結(jié)果進(jìn)行分析處理時(shí),一般依據(jù)以下幾項(xiàng)原則:
 
      抽象(abstraction)是指為了某一分析目的而集中精力研究對(duì)象的某一性質(zhì),它可以忽略其它與此目的無關(guān)的部分。在使用這一概念時(shí),我們承認(rèn)客觀 世界的復(fù)雜性,也知道事物包括有多個(gè)細(xì)節(jié),但此時(shí)并不打算去完整地考慮它。抽象是我們科學(xué)地研究和處理復(fù)雜問題的重要方法。抽象機(jī)制被用在數(shù)據(jù)分析方面, 稱之為數(shù)據(jù)抽象。數(shù)據(jù)抽象是OOA的核心。數(shù)據(jù)抽象把一組數(shù)據(jù)對(duì)象以及作用其上的操作組成一個(gè)程序?qū)嶓w。使得外部只知道它是如何做和如何表示的。在應(yīng)用數(shù) 據(jù)抽象原理時(shí),系統(tǒng)分析人員必須確定對(duì)象的屬性以及處理這些屬性的方法,并借助于方法獲得屬性。在OOA中屬性和方法被認(rèn)為是不可分割的整體。抽象機(jī)制有 時(shí)也被用在對(duì)過程的分解方面,被稱之為過程抽象。恰當(dāng)?shù)倪^程抽象可以對(duì)復(fù)雜過程的分解和確定以及描述對(duì)象發(fā)揮積極的作用。
 
      封裝(encapsulation)即信息隱蔽。它是指在確定系統(tǒng)的某一部分內(nèi)容時(shí),應(yīng)考慮到其它部分的信息及聯(lián)系都在這一部分的內(nèi)部進(jìn)行,外部各部分之間的信息聯(lián)系應(yīng)盡可能的少。
 
      繼承(inheritance)是指能直接獲得已有的性質(zhì)和特征而不必重復(fù)定義它們。OOA可以一次性地指定對(duì)象的公共屬性和方法,然后再特化和擴(kuò)展這些 屬性及方法為特殊情況,這樣可大大地減輕在系統(tǒng)實(shí)現(xiàn)過程中的重復(fù)勞動(dòng)。在共有屬性的基礎(chǔ)之上,繼承者也可以定義自己獨(dú)有的特性。
 
      相關(guān)(association)是指把某一時(shí)刻或相同環(huán)境下發(fā)生的事物聯(lián)系在一起。
      消息通信(communication with message)是指在對(duì)象之間互相傳遞信息的通信方式。
      組織方法。在分析和認(rèn)識(shí)世界時(shí),可綜合采用如下三種組織方法(method Of organization):   
      1。特定對(duì)象與其屬性之間的區(qū)別。
      2。整體對(duì)象與相應(yīng)組成部分對(duì)象之間的區(qū)別。
      3。不同對(duì)象類的構(gòu)成及其區(qū)別等。
 
      比例(scale)是一種運(yùn)用整體與部分原則,輔助處理復(fù)雜問題的方法。
      行為范疇(categories Of behavior)是針對(duì)被分析對(duì)象而言的,它們主要包括:1。基于直接原因的行為。2。時(shí)變性行為。3。功能查詢性行為。
 
 (二)OOA方法的基本步驟
 
      在用OOA具體地分析一個(gè)事物時(shí),大致上遵循如下五個(gè)基本步驟:
 
      第一步,確定對(duì)象和類。這里所說的對(duì)象是對(duì)數(shù)據(jù)及其處理方式的抽象,它反映了系統(tǒng)保存和處理現(xiàn)實(shí)世界中某些事物的信息的能力。類是多個(gè)對(duì)象的共同屬性和方法集合的描述,它包括如何在一個(gè)類中建立一個(gè)新對(duì)象的描述。
 
      第二步,確定結(jié)構(gòu)(structure)。結(jié)構(gòu)是指問題域的復(fù)雜性和連接關(guān)系。類成員結(jié)構(gòu)反映了泛化-特化關(guān)系,整體-部分結(jié)構(gòu)反映整體和局部之間的關(guān)系。
 
      第三步,確定主題(subject)。主題是指事物的總體概貌和總體分析模型。
 
      第四步,確定屬性(attribute)。屬性就是數(shù)據(jù)元素,可用來描述對(duì)象或分類結(jié)構(gòu)的實(shí)例,可在圖中給出,并在對(duì)象的存儲(chǔ)中指定。
 
      第五步,確定方法(method)。方法是在收到消息后必須進(jìn)行的一些處理方法:方法要在圖中定義,并在對(duì)象的存儲(chǔ)中指定。對(duì)于每個(gè)對(duì)象和結(jié)構(gòu)來說,那些 用來增加、修改、刪除和選擇一個(gè)方法本身都是隱含的(雖然它們是要在對(duì)象的存儲(chǔ)中定義的,但并不在圖上給出),而有些則是顯示的。
 
五、OOD方法
 
      面向?qū)ο蟮脑O(shè)計(jì)方法是OO方法中一個(gè)中間過渡環(huán)節(jié)。其主要作用是對(duì)OOA分析的結(jié)果作進(jìn)一步的規(guī)范化整理,以便能夠被OOP直接接受。在OOD的設(shè)計(jì)過程中,要展開的主要有如下幾項(xiàng)工作。
 
(一)對(duì)象定義規(guī)格的求精過程
 
      對(duì)于OOA所抽象出來的對(duì)象-&-類以及匯集的分析文檔,OOD需要有一個(gè)根據(jù)設(shè)計(jì)要求整理和求精的過程,使之更能符合OOP的需要。這個(gè)整理和求精過程主要有兩個(gè)方面:一是要根據(jù)面向?qū)ο蟮?a href="http:///phrase/200604181844195.html" target="_new">概念模型整理分析所確定的對(duì)象結(jié)構(gòu)、屬性、方法等內(nèi)容,改正錯(cuò)誤的內(nèi)容,刪去不必要和重復(fù)的內(nèi)容等。二是進(jìn)行分類整理,以便于下一步數(shù)據(jù)庫(kù)設(shè)計(jì)和程序處理模塊設(shè)計(jì)的需要。整理的方法主要是進(jìn)行歸類,對(duì)類一&一對(duì)象、屬性、方法和結(jié)構(gòu)、主題進(jìn)行歸類。
 
(二)數(shù)據(jù)模型和數(shù)據(jù)庫(kù)設(shè)計(jì)
 
      數(shù)據(jù)模型的設(shè)計(jì)需要確定類-&-對(duì)象屬性的內(nèi)容、消息連接的方式、系統(tǒng)訪問、數(shù)據(jù)模型的方法等。最后每個(gè)對(duì)象實(shí)例的數(shù)據(jù)都必須落實(shí)到面向?qū)ο蟮膸?kù)結(jié)構(gòu)模型中。
 
(三)優(yōu)化
 
     OOD的優(yōu)化設(shè)計(jì)過程是從另一個(gè)角度對(duì)分析結(jié)果和處理業(yè)務(wù)過程的整理歸納,優(yōu)化包括對(duì)象和結(jié)構(gòu)的優(yōu)化、抽象、集成。
 
      對(duì)象和結(jié)構(gòu)的模塊化表示OOD提供了一種范式,這種范式支持對(duì)類和結(jié)構(gòu)的模塊化。這種模塊符合一般模塊化所要求的所有特點(diǎn),如信息隱蔽性好,內(nèi)部聚合度強(qiáng)和模塊之間耦合度弱等。
集成化使得單個(gè)構(gòu)件有機(jī)地結(jié)合在一起,相互支持。


六、OO方法當(dāng)前的研究領(lǐng)域 

  當(dāng)前,在研究OO方法的熱潮中,有如下主要研究領(lǐng)域:
 ?。?) 智能計(jì)算機(jī)的研究。因?yàn)镺O方法可將知識(shí)片看作對(duì)象,并為相關(guān)知識(shí)的模塊化提供方便,所以在知識(shí)工程領(lǐng)域越來越受到重視。OO方法的設(shè)計(jì)思想被引入到智能計(jì)算機(jī)的研究中。
 ?。?) 新一代操作系統(tǒng)的研究。采用OO方法來組織設(shè)計(jì)新一代操作系統(tǒng)具有如下優(yōu)點(diǎn):采用對(duì)象來描述OS所需要設(shè)計(jì)、管理的各類資源信息,如文件、打印機(jī)、處理機(jī)、各類解設(shè)等更為自然;引入OO方法來處理OO的諸多事務(wù),如命名、同步、保護(hù)、管理等,會(huì)更易實(shí)現(xiàn)、更便于維護(hù);OO方法對(duì)于多機(jī)、并發(fā)控制可提供有力的支持,并能得當(dāng)?shù)毓芾砭W(wǎng)絡(luò),使其更豐富和協(xié)調(diào)。
 ?。?) 多學(xué)科的綜合研究。當(dāng)前,人工智能、數(shù)據(jù)庫(kù)、編程語言的研究有匯合趨勢(shì)。例如,在研究新一代數(shù)據(jù)庫(kù)系統(tǒng)(智能數(shù)據(jù)庫(kù)系統(tǒng))中,能否用人工智能思想與OO方法建立描述功能更強(qiáng)的數(shù)椐模型?能否將數(shù)據(jù)庫(kù)語言和編程語言融為一體?為了實(shí)現(xiàn)多學(xué)科的綜合,OO方法是一個(gè)很有希望的匯聚點(diǎn)。
  (4) 新一代面向?qū)ο蟮挠布到y(tǒng)的研究。要支持采用OO方法設(shè)計(jì)的軟件系統(tǒng)的運(yùn)行,必須建立更理想的能支持OO方法的硬件環(huán)境。目前采用松耦合(分布主存)結(jié)構(gòu)的多處理機(jī)系統(tǒng)更接近于OO方法的思想;作為最新出現(xiàn)的神經(jīng)網(wǎng)絡(luò)計(jì) 算機(jī)的體系結(jié)構(gòu)與OO方法的體系結(jié)構(gòu)具有驚人的類似,并能相互支持與配合:一個(gè)神經(jīng)元就是一個(gè)小粒度的對(duì)象;神經(jīng)元的連接機(jī)制與OO方法的消息傳送有著天 然的聯(lián)系;一次連接可以看作一次消息的發(fā)送??梢灶A(yù)料,將OO方法與神經(jīng)網(wǎng)絡(luò)研究相互結(jié)合,必然可以開發(fā)出功能更強(qiáng)、更迷人的新一代計(jì)算機(jī)硬件系統(tǒng)。

五、展望

  面向?qū)ο蠓椒ㄔ?0年代已經(jīng)得到了很大的發(fā)展,并且已在計(jì)算機(jī)科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)和產(chǎn)業(yè)界得到了有效的應(yīng)用,顯示出其強(qiáng)大的生命力??梢哉雇?0年代內(nèi),面向?qū)ο蠓椒▽?huì)大更深、吏廣、更高的方向上取得進(jìn)展:
  (1) 更深的方向:如OO方法的理論基礎(chǔ)和形式化描述;用OO技術(shù)設(shè)計(jì)出新一代OS等。
  (2) 更廣的方向:如面向?qū)ο蟮闹R(shí)表示;面向?qū)ο蟮姆抡嫦到y(tǒng);面向?qū)ο蟮亩嗝襟w系統(tǒng);面向?qū)ο蟮撵`境系統(tǒng)等。
  (3) 更高的方向:如從思維科學(xué)的高度來豐富OO方法學(xué)的本質(zhì)屬性,突破現(xiàn)有的面向?qū)ο蠹夹g(shù)的一些局限、研究統(tǒng)一的面向?qū)ο蟮姆妒降取?

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多