姜文澤
摘要
面向?qū)ο蠹夹g(shù)在軟件設(shè)計(jì)人員的接受程度中越來越高,它是一種全新的軟件設(shè)計(jì)構(gòu)造技術(shù)。它能提高效率,主要表現(xiàn)為提升代碼的可復(fù)用性、可擴(kuò)展性、可自動(dòng)生成性等方面的性能,并且可以極大地減少軟件維護(hù)方面的開銷。面向?qū)ο蠹夹g(shù)以對(duì)象為基礎(chǔ),通過事件或者消息來使對(duì)象執(zhí)行相應(yīng)程序。筆者在本文中就面向?qū)ο蠹夹g(shù)在軟件開發(fā)中的應(yīng)用進(jìn)行了探討。
【關(guān)鍵詞】面向?qū)ο蠹夹g(shù) 軟件開發(fā) 應(yīng)用探討
幾乎每一個(gè)軟件都會(huì)有漏洞,那么一個(gè)軟件所需要維護(hù)工作的多少就直接決定了這個(gè)軟件是否可以“存活”下去,一個(gè)需要大量維護(hù)工作的軟件是無法運(yùn)用的。早期的系統(tǒng)軟件無法滿足人們的需求,因?yàn)槠渚S護(hù)代價(jià)太高、可用性差、軟件的設(shè)計(jì)方法落后。但是由于“軟件危機(jī)”的出現(xiàn),人們不斷地在優(yōu)化軟件性能方面進(jìn)行探索,面向?qū)ο蠹夹g(shù)就是這樣出現(xiàn)在了上個(gè)世紀(jì)八十年代末。它可以用于軟件的設(shè)計(jì)、開發(fā)、維護(hù)方面。面向?qū)ο蠹夹g(shù)的原理就是仿照人類解決問題的思維以及方式,將出現(xiàn)的問題劃分解決。問題的復(fù)雜程度無論大小均被面向?qū)ο蟮乃季S中作為對(duì)象。軟件無論任何規(guī)格都可以轉(zhuǎn)化為對(duì)象的處理,這是是因?yàn)閷?duì)象是數(shù)據(jù)以及由此產(chǎn)生的操作所構(gòu)成的獨(dú)立單元的統(tǒng)稱。以對(duì)象為中心也是面向?qū)ο蟮闹行乃枷搿?/p>
1 面向?qū)ο蠹夹g(shù)的主要特點(diǎn)
(1)在處理問題的時(shí)候把客觀事物看作一個(gè)個(gè)對(duì)象無疑接近于人的思維,對(duì)象作為實(shí)際系統(tǒng)的基本單位,基于面向?qū)ο蟮拈_發(fā)著重的就是問題域與軟件程序之間的直接映射關(guān)系。在整個(gè)研發(fā)系統(tǒng)中,組構(gòu)模型系統(tǒng)以及最終軟件中始終采用同一方法,將實(shí)際系統(tǒng)抽象表示為對(duì)象,并且構(gòu)成了系統(tǒng)的基本組成單位。
(2)軟件可以方便地修改、擴(kuò)展、維護(hù)依賴于信息的封裝。所謂封裝就是指在面向?qū)ο蟮募夹g(shù)中對(duì)象的基本屬性以及服務(wù)功能結(jié)合為一個(gè)獨(dú)立的信息體,其內(nèi)部信息無法被外部得知。正是由于封裝使其自身的修改獨(dú)立于整體,所以應(yīng)用其開發(fā)的軟件才會(huì)便于更改維護(hù)。除此之外,面向?qū)ο蟮拈_發(fā)也推崇軟件開發(fā)中信息與數(shù)據(jù)的獨(dú)立化和抽象化。
(3)類是具有繼承關(guān)系的,它可以減少系統(tǒng)的構(gòu)成過程以及文檔。類就是具有相同屬性與服務(wù)對(duì)象的集合,面向?qū)ο蠹夹g(shù)將其歸為一類。類是對(duì)象的抽象化,是每個(gè)實(shí)例對(duì)象的集合。類按照程度的不同分為一般和特殊,特殊類會(huì)承接一般類所具有的服務(wù)。這種類的處理方式的實(shí)現(xiàn)也是面向?qū)ο蟊蝗藗兘邮艿脑蛑弧?/p>
(4)支持再利用,擴(kuò)充了可再利用的范圍。面向?qū)ο蟮膽?yīng)用很廣,它可以應(yīng)用于軟件開發(fā)的整個(gè)周期,包含了分析以及編碼。而且,該方法不僅支持軟件的再利用,即便是其設(shè)計(jì)模型也可以這樣處理,而且它還可以實(shí)現(xiàn)網(wǎng)絡(luò)中不同節(jié)點(diǎn)之間資源的交換利用。
(5)支持難度較高的軟件的開發(fā)。現(xiàn)在的軟件系統(tǒng)中常見的并發(fā)、層次等現(xiàn)象也是面向?qū)ο笏С值?。?fù)雜的系統(tǒng)的層次結(jié)構(gòu)多由很多子系統(tǒng)構(gòu)成。分布式對(duì)象技術(shù)已經(jīng)成為了構(gòu)建服務(wù)框架以及軟件的核心技術(shù),在大型應(yīng)用系統(tǒng)(分布式)開發(fā)中更具有強(qiáng)效的作用。這也發(fā)展成為了三種最具代表性的技術(shù):微軟的COM/DOOM技術(shù)、Sun公司的Java技術(shù)和OMG的COBRA技術(shù)。
(6)支持開放式系統(tǒng)的開發(fā)。在開發(fā)復(fù)雜系統(tǒng)之時(shí),面向?qū)ο蟮拈_發(fā),由于通過不同的應(yīng)用來進(jìn)行軟件的構(gòu)成,使其具有更大的抗力,再加上軟件生命周期之內(nèi)都有系統(tǒng)集成的穿插,大幅度降低了開發(fā)復(fù)雜系統(tǒng)的風(fēng)險(xiǎn)。
2 面向?qū)ο蠹夹g(shù)在軟件開發(fā)中的應(yīng)用
面向?qū)ο蠹夹g(shù)如今已經(jīng)得到了大范圍的運(yùn)用。軟件開發(fā)也因其分為了以下幾步:軟件設(shè)計(jì)中描述對(duì)象以及模型設(shè)計(jì)的處理是面向?qū)ο蠓治鯫OA。其中注重的是面向?qū)ο蟮乃枷?,通過各具屬性以及方式的類來描述所有對(duì)象,通過對(duì)對(duì)象屬性方法的客觀命名將對(duì)象集結(jié)為類,通過類分化結(jié)構(gòu)描繪繼承關(guān)系,最后將整體與局部的關(guān)系通過整體與部分來反映。
面向?qū)ο笤O(shè)計(jì)OOD與OOA具有相同的模型結(jié)構(gòu)與表述方法,但是它更加優(yōu)化了諸如數(shù)據(jù)存儲(chǔ)之類的其他功能。面向?qū)ο缶幊痰腛OP環(huán)節(jié)只需要將OOD環(huán)節(jié)中對(duì)于對(duì)象、方法、系統(tǒng)的設(shè)計(jì)進(jìn)行完善優(yōu)化,因?yàn)榉治鲈O(shè)計(jì)階段是統(tǒng)一表達(dá)的。構(gòu)成系統(tǒng)之后需要面向?qū)ο髞頊y試OOT。OOT的基本單位為類,因?yàn)槊嫦驅(qū)ο蟮男畔⒕陀蟹庋b性,對(duì)象對(duì)事物的描述具有完整性與具體性,所以只需要測試類的屬性以及服務(wù)。因繼承性的存在,父類已經(jīng)測試的項(xiàng)目,子類便無需進(jìn)行,只要對(duì)其新定義的屬性和功能進(jìn)行檢測即可。這就是為什么面向?qū)ο蠹夹g(shù)可以提高軟件測試與維護(hù)的效率。
在面向?qū)ο蠹夹g(shù)的應(yīng)用實(shí)踐過程中,對(duì)于軟件的構(gòu)想、設(shè)計(jì)以及編程包含的模型與內(nèi)容都具有一致性,這樣也使得我們不僅可以即時(shí)觀察到平并且改正監(jiān)測環(huán)節(jié)出現(xiàn)的問題,也可以讓我們直接全面地了解對(duì)象之間的關(guān)系以及軟件功能的實(shí)現(xiàn),更進(jìn)一步,它還有利于系統(tǒng)的維護(hù)與擴(kuò)充。面向?qū)ο蟮男畔⒎庋b性使得軟件更加的可靠與便捷,繼承性使軟件的可復(fù)用性大大增強(qiáng),多態(tài)性使得軟件的擴(kuò)充性變大,這些其本身就具有的特色之處對(duì)于系統(tǒng)的開發(fā)、運(yùn)營、維護(hù)無疑是具有極大的好處的。
3 小結(jié)
綜上所述,得利于軟件開發(fā)技術(shù)以及軟件開發(fā)流程的不斷發(fā)展革新,我們現(xiàn)在所開發(fā)的軟件的性能在滿足人們需求的方面也得以不斷提高,因此,最大限度地利用現(xiàn)代化的開發(fā)技術(shù)是解決軟件危機(jī)的重要方式。傳統(tǒng)的開發(fā)方式往往牽一發(fā)而動(dòng)全身,即使是局部的修改也需要對(duì)整體做出改變,而且系統(tǒng)的穩(wěn)定性、可用性差,面向?qū)ο罂梢詫?shí)現(xiàn)局部軟件的修改并且極大程度地優(yōu)化了軟件的可復(fù)用性,降低了維開發(fā)與維護(hù)的難度。
參考文獻(xiàn)
[1]姚鍵,孫虎,陸榮等.面向?qū)ο蟮姆椒ㄔ谲浖O(shè)計(jì)中的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2001,22(02):66-69.
[2]王宗軍.面向?qū)ο蟮姆椒捌鋺?yīng)用探討[J].大自然探索,1993(02): 48-52.
[3]許書安,龔培棟.用類加強(qiáng)代碼的強(qiáng)健性初探[J].杭州師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2001(01).
[4]吳曉琴.淺析面向?qū)ο蟪绦蛟O(shè)計(jì)特點(diǎn)[J].安徽大學(xué)學(xué)報(bào)(自然科學(xué)版),2002(03).
[5]滕云,賀春林.面向?qū)ο蟪绦蛟O(shè)計(jì)的核心概念在C++中的實(shí)現(xiàn)[J].西華師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2003(01)