文/馮厚偉 杜鵬宙 劉勇
軟件復(fù)用技術(shù)有很多的優(yōu)點(diǎn),它能夠降低生產(chǎn)成本、提高軟件產(chǎn)品的質(zhì)量、提高系統(tǒng)兼容性等。研發(fā)人員也在不斷的努力,不斷的降低軟件開發(fā)的風(fēng)險(xiǎn),提高軟件的系統(tǒng)功能,這個(gè)過程是積累和完善的過程,也是一個(gè)漫長的過程。軟件復(fù)用技術(shù)應(yīng)用得當(dāng),可以將軟件產(chǎn)業(yè)做到合理分工、生產(chǎn)標(biāo)準(zhǔn)、生產(chǎn)專業(yè),我國也在向軟件強(qiáng)國邁進(jìn),所以我國要極力抓住這個(gè)時(shí)機(jī),向強(qiáng)國邁進(jìn)。
軟件復(fù)用是將已有軟件的各種有關(guān)知識用于建立新的軟件,以縮減軟件開發(fā)和維護(hù)的花費(fèi),軟件復(fù)用是提高軟件生產(chǎn)力和質(zhì)量的一種重要技術(shù)。軟件復(fù)用技術(shù)概念是在軟件危機(jī)以后提出的,在這場危機(jī)中,人們意識到軟件復(fù)用技術(shù)是解決昂貴維護(hù)費(fèi)的有效方法。軟件復(fù)用的目的就是減少在開發(fā)與維護(hù)中的資金投入。軟件復(fù)用技術(shù)是依靠原有軟件而建立的新軟件,進(jìn)而提高生產(chǎn)效率。隨著經(jīng)濟(jì)的發(fā)展,軟件復(fù)用技術(shù)在計(jì)算機(jī)行業(yè)中得到廣泛應(yīng)用。可復(fù)用構(gòu)件在軟件復(fù)用技術(shù)中得到應(yīng)用,其復(fù)用方式主要有兩種:
(1)將構(gòu)件進(jìn)行一定的修改再進(jìn)行使用;
(2)使用原構(gòu)件且沒有進(jìn)行大修改。
值得注意的是軟件復(fù)用和共享不是一個(gè)概念,我們要將兩者區(qū)別開來。
軟件的復(fù)用也是分級別的,級別不同效益也會不同。軟件復(fù)用級別不同所代表的效益也是不同的。代碼的復(fù)用依靠的主要就是可復(fù)用構(gòu)件,因其靈活性,可被廣泛運(yùn)用。代碼的復(fù)用包括兩個(gè)內(nèi)容,一是目標(biāo)代碼,二是源代碼,而源代碼在一定程度上是高于目標(biāo)代碼的。
設(shè)計(jì)的復(fù)用不僅可以減少軟件的修改次數(shù),還可以增加可復(fù)用構(gòu)件復(fù)用機(jī)會,設(shè)計(jì)復(fù)用對于環(huán)境的要求不高。設(shè)計(jì)的復(fù)用有三種途徑:
(1)將現(xiàn)有系統(tǒng)翻新,在新平臺加以運(yùn)用。
(2)將已有的設(shè)計(jì)結(jié)果在新軟件上加以運(yùn)用。
(3)獨(dú)立創(chuàng)新,不依賴于其他軟件,實(shí)現(xiàn)構(gòu)件的新開發(fā)。
分用的復(fù)用是屬于高級別的復(fù)用,它在解決抽象且復(fù)雜的問題上有很大的優(yōu)勢。分析的復(fù)用途徑主要有三種:
(1)對于已經(jīng)有的數(shù)據(jù)、結(jié)論等加以運(yùn)用到新系統(tǒng)分析上。
(2)獨(dú)自研究、開發(fā)新的構(gòu)件。
(3)將軟件平臺的多項(xiàng)設(shè)計(jì)加以運(yùn)用。
阻礙軟件復(fù)用技術(shù)的發(fā)展有很多限制,比如技術(shù)、人為因素、管理、教育、法律、精神產(chǎn)品等。一個(gè)系統(tǒng)對于一種軟件的運(yùn)用是存在一定難度的,如果想要做到與軟件內(nèi)容的很好符合,這需要有一定量的構(gòu)件,但在獲取大量構(gòu)件是需要耗費(fèi)很多的時(shí)間和精力的。軟件開發(fā)具有明顯的創(chuàng)新性,軟件開發(fā)者喜歡使用自己設(shè)計(jì)出來的軟件,甚至是自己去研發(fā)一個(gè)新的軟件。讓軟件工作者對軟件生產(chǎn)進(jìn)行管理,可以有效的激發(fā)工作人員的積極性,促進(jìn)軟件復(fù)用技術(shù)的提升以及規(guī)模的擴(kuò)大。我國目前還缺乏相應(yīng)的專業(yè)教材及經(jīng)驗(yàn)。
在當(dāng)今最受歡迎最被認(rèn)可得復(fù)用技術(shù)就是面向?qū)ο蠹夹g(shù),面向?qū)ο蠹夹g(shù)是因?yàn)槟P涂梢允菃栴}的直接映射,這就會降低軟件開發(fā)中的銜接難度,也會降低工作人員的工作量,提高工作效率,提高工作準(zhǔn)確性。繼承、封裝、聚合等形成了面向?qū)ο蠹夹g(shù)的概念,而復(fù)用技術(shù)對這也是十分恰和,對于軟件復(fù)用有著積極的意義。這種軟件工程方法在整個(gè)生命周期都具有極大一致性,因此不同階段不同形態(tài)的各系統(tǒng)具有很好的映射,這種映射幾乎貫穿軟件生命周期的全部。面向?qū)ο蠹夹g(shù)能夠?qū)崿F(xiàn)軟件復(fù)用的高效運(yùn)用,起到極佳的全局效果。
如今,軟件復(fù)用技術(shù)發(fā)展到一定規(guī)模且具有一定的水平,這為計(jì)算機(jī)等行業(yè)帶來了極大的便利。
(1)領(lǐng)域分析法成功應(yīng)用到了美國的運(yùn)動控制領(lǐng)域,這種分析法面向特征。
(2)CMU 提出了產(chǎn)品線系統(tǒng)方式。這種方式的成功運(yùn)用實(shí)例包括美國空軍電子系統(tǒng)中心的產(chǎn)品線系統(tǒng),它集中體現(xiàn)軟件復(fù)用的理念。
(3)構(gòu)件組裝的技術(shù)支持——JAVA 技術(shù)廣泛流行開來軟件重用技術(shù)與對象技術(shù)實(shí)現(xiàn)了有效的結(jié)合。
(4)以研究軟件工業(yè)化生產(chǎn)技術(shù)為重點(diǎn)的青鳥工程是我國的一項(xiàng)重要科技項(xiàng)目。青鳥軟件生產(chǎn)線系統(tǒng)面向?qū)ο蠹夹g(shù),軟件工業(yè)化生產(chǎn)模式將會受到進(jìn)一步擴(kuò)展。
軟件的質(zhì)量為軟件行業(yè)帶來了巨大的危機(jī)和挑戰(zhàn),我們要積極應(yīng)對并不斷提高軟件的質(zhì)量。軟件復(fù)用技術(shù)在目前仍有很大的潛力和市場,這就需要相關(guān)研究者及工作人員的深入研究,不斷提高市場占有率。人們對軟件工程技術(shù)的關(guān)注,為軟件行業(yè)的發(fā)展帶來了更好的發(fā)展平臺和廣闊的市場,在此基礎(chǔ)上,要更加注重軟件復(fù)用技術(shù)和構(gòu)件技術(shù)的提高,逐漸實(shí)現(xiàn)國際化。
精神產(chǎn)品的附著體在一定程度上就是軟件產(chǎn)品,它來源于人的大腦,因此它是人們的思想精華。軟件開發(fā)最大的魅力就在于開發(fā)者可以發(fā)揮無盡的想象力并賦予軟件,因此軟件產(chǎn)品是無法用真實(shí)的物品衡量,軟件的復(fù)雜性很大,軟件復(fù)用技術(shù)同樣也是。軟件復(fù)用技術(shù)的關(guān)鍵在于領(lǐng)會并靈活運(yùn)用軟件復(fù)用思想。