沈耀
【摘要】軟件復(fù)用思想其實(shí)是對(duì)已有軟件中的一次再次利用。很多新系統(tǒng)的研發(fā)也會(huì)有極大成分是對(duì)過(guò)去經(jīng)驗(yàn)技術(shù)的借鑒和復(fù)用,軟件復(fù)用給人們的工作帶來(lái)了很多便利。人們可以減少不必要的機(jī)械重復(fù)工作,節(jié)約更多的時(shí)間精力投入到軟件創(chuàng)新部分,這種方式將會(huì)改善軟件的標(biāo)準(zhǔn)化和靈活可靠性。本文將對(duì)軟件復(fù)用技術(shù)的基本概念進(jìn)行一個(gè)闡述,其過(guò)程、發(fā)展?fàn)顩r也會(huì)在本文中談到,針對(duì)當(dāng)前軟件技術(shù)的優(yōu)勢(shì)劣勢(shì)本文也將提出一些觀點(diǎn),以供相關(guān)工作者參考。
【關(guān)鍵詞】軟件復(fù)用技術(shù);軟件開(kāi)發(fā);應(yīng)用;發(fā)展
軟件復(fù)用技術(shù)能夠降低生產(chǎn)成本、提高軟件產(chǎn)品的質(zhì)量、提高系統(tǒng)兼容性等等,在研發(fā)人員的努力下,軟件開(kāi)發(fā)的風(fēng)險(xiǎn)逐漸減少,系統(tǒng)功能也在增長(zhǎng)。這個(gè)過(guò)程是不斷積累和不斷完善的過(guò)程,軟件復(fù)用將會(huì)帶來(lái)軟件產(chǎn)業(yè)的合理分工專業(yè)化、標(biāo)準(zhǔn)化發(fā)展,我國(guó)倘若能夠抓住這個(gè)機(jī)遇必將成為一個(gè)軟件強(qiáng)國(guó)。
一、軟件復(fù)用概述
(一)軟件的概念。軟件復(fù)用的主要目的是減少開(kāi)發(fā)與維護(hù)的資金投入,這種以原有軟件知識(shí)為基礎(chǔ)而建立的新軟件技術(shù)能夠有效提高生產(chǎn)率。軟件復(fù)用概念的提出主要來(lái)源于軟件危機(jī)之后人們意識(shí)到軟件復(fù)用是解決高昂的維護(hù)費(fèi)的一種最佳方法。軟件規(guī)模隨著經(jīng)濟(jì)的發(fā)展不斷擴(kuò)大,為了從本質(zhì)上來(lái)改變軟件產(chǎn)品質(zhì)量的維護(hù)工作,軟件復(fù)用技術(shù)被廣泛用于計(jì)算機(jī)行業(yè)中。軟件復(fù)用的使用軟件通常被叫做可復(fù)用構(gòu)件,復(fù)用的方式有兩種,一種是原原本本使用原構(gòu)件,另一種是將構(gòu)件進(jìn)行一定修改了再使用。我們對(duì)軟件復(fù)用的理解不能僅僅停留在程序復(fù)用層面,其實(shí)它還涉及分析模型、詳細(xì)說(shuō)明、測(cè)試用例等等。值得注意的是軟件復(fù)用和共享不是一個(gè)概念,我們要將兩者區(qū)別開(kāi)來(lái)。
二、軟件復(fù)用技術(shù)
(一)代碼的復(fù)用。軟件復(fù)用級(jí)別不同所代表的效益也是不同的。代碼的復(fù)用包括兩個(gè)內(nèi)容,意識(shí)源代碼,另一個(gè)是目標(biāo)代碼。源代碼級(jí)別比目標(biāo)代碼更高一些,代碼復(fù)用主要依靠大量的可復(fù)用構(gòu)件,其運(yùn)用及其靈活,能夠被廣泛運(yùn)用。(二)設(shè)計(jì)的復(fù)用。設(shè)計(jì)復(fù)用較少受環(huán)境影響,運(yùn)用設(shè)計(jì)復(fù)用能減少修改次數(shù),還能增加可復(fù)用構(gòu)件復(fù)用機(jī)會(huì)。設(shè)計(jì)復(fù)用有三種途徑,第一種能夠做到不依賴于其他具體應(yīng)用而實(shí)現(xiàn)構(gòu)件開(kāi)發(fā)工作;第二種可以將現(xiàn)有系統(tǒng)重新利用于新平臺(tái);第三種是提取現(xiàn)有設(shè)計(jì)結(jié)果并運(yùn)用在新設(shè)計(jì)上。(三)分析的復(fù)用。分析復(fù)用的可復(fù)用機(jī)會(huì)相對(duì)更大,這種高級(jí)別的復(fù)用在解決一些抽象復(fù)雜的問(wèn)題上具有較大的優(yōu)勢(shì)。其復(fù)用途徑包括三種,第一種是獨(dú)立開(kāi)發(fā)分析構(gòu)件;第二種是實(shí)現(xiàn)多種平臺(tái)的多項(xiàng)設(shè)計(jì);第三種是提取現(xiàn)有分析結(jié)果用于新系統(tǒng)分析。(四)測(cè)試信息的復(fù)用。測(cè)試過(guò)程信息與測(cè)試用例的復(fù)用構(gòu)成了測(cè)試信息復(fù)用。測(cè)試用例復(fù)用是將修改后的然就愛(ài)你應(yīng)用與新測(cè)試中或者直接將一個(gè)軟件的測(cè)試用例在新測(cè)試中。測(cè)試過(guò)程信息的復(fù)用指的是軟件自動(dòng)記錄測(cè)試信息,這種復(fù)用與程序代碼級(jí)別差不多。軟件生產(chǎn)過(guò)程是一個(gè)由高級(jí)別向低級(jí)別轉(zhuǎn)化的一個(gè)過(guò)程,級(jí)別和所獲得的回報(bào)是呈正比關(guān)系,因此我們不能忽視分析和設(shè)計(jì)結(jié)果。
三、軟件復(fù)用實(shí)現(xiàn)的阻礙因素
影響軟件復(fù)用的因素有很多,有技術(shù)因素、人為因素、管理因素、教育因素、法律因素、精神產(chǎn)品等。要做到內(nèi)容的剛好相符,一種構(gòu)件運(yùn)用到另一系統(tǒng)中仍然適用是比較有難度的事情。必須要有一定量的構(gòu)件才能發(fā)揮其作用,但是獲取大量的構(gòu)件必須耗費(fèi)巨大的精力。新理論、新技術(shù)是當(dāng)前極為欠缺的,軟件復(fù)用作為一個(gè)新的研究領(lǐng)域還缺乏足夠的實(shí)踐。創(chuàng)造性是軟件開(kāi)發(fā)工作的一個(gè)顯著特點(diǎn),軟件開(kāi)發(fā)工作者通常都很有主見(jiàn)同時(shí)也喜歡使用自己開(kāi)發(fā)的軟件,甚至有時(shí)候他們更樂(lè)意自己另寫(xiě)一個(gè)軟件。軟件生產(chǎn)管理工作對(duì)于激發(fā)復(fù)用人員的工作積極性,推動(dòng)復(fù)用水平的提高以及規(guī)模的擴(kuò)大有著積極的作用。目前,在軟件開(kāi)發(fā)方面,相關(guān)的專業(yè)教材還比較缺乏。
四、面向?qū)ο蠹夹g(shù)及其對(duì)軟件復(fù)用的支持
面向?qū)ο蠓椒ㄊ钱?dāng)今最受歡迎最受認(rèn)可的技術(shù),這主要是因?yàn)槟P蛯?duì)問(wèn)題域的直接映射,它能夠讓軟件開(kāi)發(fā)整個(gè)過(guò)程形成自然連續(xù)的銜接開(kāi)發(fā)難度也會(huì)大大降低,工作人員的工作量相對(duì)降低,工作準(zhǔn)確性也會(huì)大大提高。它的概念來(lái)源于繼承、封裝、聚合等,這些概念原則十分符合軟件復(fù)用需求,對(duì)于軟件復(fù)用有著積極的意義。這種軟件工程方法在整個(gè)生命周期都具有極大一致性,因此不同階段不同形態(tài)的各系統(tǒng)具有很好的映射,這種映射幾乎貫穿軟件生命周期的全部。面向?qū)ο蠹夹g(shù)能夠?qū)崿F(xiàn)軟件復(fù)用的高校和統(tǒng)一,起到極佳的全局效果。
五、復(fù)用的研究與應(yīng)用
復(fù)軟件復(fù)用技術(shù)直至今天已經(jīng)發(fā)展到一定水平,其成功應(yīng)用也給計(jì)算機(jī)行業(yè)帶來(lái)了很多益處。(一)領(lǐng)域分析法成功應(yīng)用到了美國(guó)的運(yùn)動(dòng)控制領(lǐng)域,這種分析法面向特征。(二)CMU提出了產(chǎn)品線系統(tǒng)方式。這種方式的成功運(yùn)用實(shí)例包括美國(guó)空軍電子系統(tǒng)中心的產(chǎn)品線系統(tǒng),它集中體現(xiàn)軟件復(fù)用的理念(三)構(gòu)件組裝的技術(shù)支持——JAVA技術(shù)廣泛流行開(kāi)來(lái)軟件重用技術(shù)與對(duì)象技術(shù)實(shí)現(xiàn)了有效的結(jié)合。(四)以研究軟件工業(yè)化生產(chǎn)技術(shù)為重點(diǎn)的青鳥(niǎo)工程是我國(guó)的一項(xiàng)重要科技項(xiàng)目。青鳥(niǎo)軟件生產(chǎn)線系統(tǒng)面向?qū)ο蠹夹g(shù),軟件工業(yè)化生產(chǎn)模式將會(huì)受到進(jìn)一步擴(kuò)展。
六、軟件復(fù)用技術(shù)發(fā)展趨勢(shì)
軟件復(fù)用技術(shù)還需要相關(guān)研究者繼續(xù)深入探索,軟件復(fù)用技術(shù)在目前仍然有很大的熱度,市場(chǎng)也在不斷拓展。軟件環(huán)境及平臺(tái)有著廣泛的市場(chǎng),人們?cè)絹?lái)越關(guān)注軟件工程技術(shù)。軟件危機(jī)為軟件行業(yè)帶來(lái)了諸多挑戰(zhàn),但是我們?nèi)绻軐⑵洚?dāng)作一次機(jī)遇,不斷提高軟件復(fù)用技術(shù)和構(gòu)件技術(shù),我們相信工廠化的軟件將會(huì)變成實(shí)實(shí)在在的事。軟件行業(yè)正在發(fā)生深刻的變革,在未來(lái)軟件產(chǎn)品將會(huì)走向更廣闊的市場(chǎng),最終走向國(guó)際化。
七、結(jié)論
軟件產(chǎn)品是人們的一種精神產(chǎn)品,它來(lái)于人們的思維大腦,因此其價(jià)值則是它所承載的思想精華。軟件產(chǎn)品的價(jià)值是無(wú)法與實(shí)實(shí)在在的物品去衡量和比較的,因?yàn)檐浖a(chǎn)品的特殊性就在于人們可以發(fā)揮無(wú)限的形象力并賦予軟件,其復(fù)雜性極大,軟件復(fù)用自然也是如此。軟件復(fù)用技術(shù)的關(guān)鍵在于領(lǐng)會(huì)并靈活運(yùn)用軟件復(fù)用思想。
參考文獻(xiàn)
[1]楊芙清.軟件復(fù)用及相關(guān)技術(shù)[J].計(jì)算機(jī)科學(xué),1999,(5):1—4.
[2]楊芙清,朱冰,梅宏.軟件復(fù)用[J].軟件學(xué)報(bào),1995,6(9):525—533.