王 艷 王 博
[摘要]軟件重用能提高軟件生產(chǎn)率、降低開發(fā)成本、保證軟件質(zhì)量,是解決軟件危機(jī)的一個(gè)有效辦法。研究和探討基于可重用構(gòu)件庫(kù)的軟件開發(fā)模式,并對(duì)影響軟件重用收益的一些因素進(jìn)行分析。
[關(guān)鍵詞]軟件重用可重用構(gòu)件庫(kù)軟件重用收益
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671—7597(2008)1110083—01
軟件重用,指重復(fù)使用為了重用目的而設(shè)計(jì)的軟件的過(guò)程,包括為重用而進(jìn)行開發(fā)和使用重用進(jìn)行開發(fā)兩個(gè)方面。有效的軟件重用可以極大地提高軟件生產(chǎn)率和軟件系統(tǒng)的質(zhì)量,降低軟件開發(fā)成本。然而成功的軟件重用并不多見(jiàn),既有開發(fā)模式方面的因素,也有技術(shù)和管理方面的因素,因此有必要對(duì)基于重用技術(shù)的軟件開發(fā)進(jìn)行深入的分析研究。
一、基于可重用構(gòu)件庫(kù)的軟件開發(fā)模式
目前軟件重用使用較多的是基于可重用構(gòu)件庫(kù)RCL(Reusable Compon ent Library)的方法。基于RCL的軟件開發(fā)模式一般要經(jīng)過(guò)6個(gè)過(guò)程??芍赜脴?gòu)件RC在入庫(kù)前須經(jīng)過(guò)標(biāo)識(shí)、驗(yàn)證和分類3個(gè)過(guò)程,而從庫(kù)中提取重用構(gòu)件須經(jīng)過(guò)檢索、定制和組合3個(gè)過(guò)程,在軟件開發(fā)過(guò)程中需不斷地對(duì)RCL進(jìn)行存諸、檢索、提取等操作。
1,標(biāo)識(shí)。尋找Rc的候選者。Rc應(yīng)具有以下性質(zhì):遵循標(biāo)準(zhǔn)的規(guī)定、有良好定義的界面、高可靠性、較好的通用性、強(qiáng)魯棒性、易理解性、高內(nèi)聚低耦合性等。一個(gè)開發(fā)組織要推行軟件重用,應(yīng)該在項(xiàng)目開始之初就考慮重用,并按照軟件重用標(biāo)準(zhǔn)進(jìn)行開發(fā)和測(cè)試,最終形成標(biāo)準(zhǔn)構(gòu)件。
2,驗(yàn)證??芍赜脴?gòu)件在入庫(kù)之前進(jìn)行嚴(yán)格的測(cè)試和審查,驗(yàn)證其可靠性和正確性等。目前對(duì)可重用構(gòu)件的驗(yàn)證大多還是采用手工方式,較少采用測(cè)試驗(yàn)證工具。這是軟件開發(fā)機(jī)構(gòu)亟待加強(qiáng)的一個(gè)工作領(lǐng)域。
3,分類。對(duì)可重用構(gòu)件按功能、使用方法、適用范圍、接口等信息進(jìn)行分類。經(jīng)典的分類法有關(guān)鍵字法、樹形分類法等。分類的主要目的是對(duì)檢索提供支持,一般地,RCL中包含的Rc越多,分類方法的好壞越重要。
4,檢索。檢索是從可重用構(gòu)件庫(kù)中檢索所需要的構(gòu)件的過(guò)程。當(dāng)可重用構(gòu)件庫(kù)的規(guī)模不大時(shí),通過(guò)數(shù)據(jù)庫(kù)搜索關(guān)鍵字或依靠熟悉構(gòu)件庫(kù)的人員來(lái)人工檢索即可得到結(jié)果。當(dāng)可重用構(gòu)件庫(kù)的規(guī)模非常大時(shí),則需要有效的檢索工具。
5,定制。對(duì)檢索到的Rc進(jìn)行修改以符合用戶的需求。定制除了與所采用的方法有關(guān)外,還與Rc本身的設(shè)計(jì)及目標(biāo)系統(tǒng)有關(guān)。有經(jīng)驗(yàn)的設(shè)計(jì)者可以開發(fā)出很易使用的Rc,同樣,若目標(biāo)系統(tǒng)的通用性較高,則在其內(nèi)部使用RC也就越容易。
6,組合。指將定制后的Rc和其它的軟件模塊集成在一起,形成新的應(yīng)用系統(tǒng)的過(guò)程。其關(guān)鍵是構(gòu)件的接口標(biāo)準(zhǔn)。由于Rc可能已經(jīng)經(jīng)過(guò)修改,且應(yīng)用的系統(tǒng)不同,因此,還需對(duì)RC與新開發(fā)的構(gòu)件一起作測(cè)試。
二、影響軟件重用收益的因素
重用收益是指與新的開發(fā)相比采用重用的開發(fā)所節(jié)約的成本,即不采用重用技術(shù)進(jìn)行開發(fā)所需的成本與采用重用技術(shù)進(jìn)行開發(fā)所用成本的差值。可重用構(gòu)件庫(kù)的領(lǐng)域性,可重用構(gòu)件庫(kù)的規(guī)模,構(gòu)件的規(guī)模以及對(duì)可重用開發(fā)的管理都將對(duì)重用收益造成很大的影響。
(一)面向特定領(lǐng)域的可重用構(gòu)件庫(kù)
構(gòu)件一般可分為三種:
1,通用構(gòu)件:在程序設(shè)計(jì)語(yǔ)言之上提供通用程序設(shè)計(jì)支持,這類構(gòu)件可跨應(yīng)用領(lǐng)域使用,一般占應(yīng)用系統(tǒng)規(guī)模的20%;
2,與具體領(lǐng)域相關(guān)的構(gòu)件:此類構(gòu)件是所在應(yīng)用領(lǐng)域?qū)S玫?,一般占?yīng)用系統(tǒng)的65%;
3,與具體應(yīng)用系統(tǒng)有關(guān)的構(gòu)件:此類構(gòu)件是某一應(yīng)用系統(tǒng)專用代碼,一般占應(yīng)用系統(tǒng)的15%。
屬于同一領(lǐng)域的系統(tǒng),一般要實(shí)現(xiàn)相似的功能,有相似的數(shù)據(jù)結(jié)構(gòu),處理相關(guān)的過(guò)程,面向同一范圍的客戶。因此在同一領(lǐng)域內(nèi)的重用潛能要遠(yuǎn)遠(yuǎn)高于跨領(lǐng)域的重用,面向特定領(lǐng)域的可重用構(gòu)件庫(kù)能獲得較好的收益。
(二)可重用構(gòu)件庫(kù)、構(gòu)件規(guī)模對(duì)重用收益的影響
1,可重用構(gòu)件庫(kù)規(guī)模的影響。當(dāng)可重用構(gòu)件庫(kù)RCL規(guī)模較小時(shí),開發(fā)人員很難在構(gòu)件庫(kù)中檢索到自己所需的構(gòu)件,軟件重用率低,而RCL的創(chuàng)建和維護(hù)都需要一定的開銷,因此此時(shí)的重用收益低,甚至為負(fù)收益。隨著RCL的規(guī)模增加,重用率提高,檢索出的Rc與項(xiàng)目的匹配程度也將得到一定程度的提高,aPRC的定制和組合開銷較小,重用收益隨之增加。當(dāng)RCL規(guī)模增加到一定程度時(shí),其創(chuàng)建、維護(hù)所需費(fèi)用與采用Rc進(jìn)行開發(fā)所帶來(lái)的成本節(jié)約情況將會(huì)持平,呈一穩(wěn)定狀態(tài)。
2,構(gòu)件規(guī)模的影響。當(dāng)RCL規(guī)模一定時(shí),構(gòu)件規(guī)模對(duì)重用收益有著顯著的影響。太小的構(gòu)件會(huì)導(dǎo)致資產(chǎn)的浪費(fèi),因?yàn)榇藭r(shí)標(biāo)識(shí)、檢索、分類構(gòu)件的費(fèi)用很大,對(duì)它們的維護(hù)、管理費(fèi)用可能會(huì)超過(guò)重用帶來(lái)的潛在節(jié)約。當(dāng)構(gòu)件規(guī)模增大時(shí),重用收益會(huì)隨之增加。但當(dāng)達(dá)到某一個(gè)點(diǎn)時(shí),這種收益將會(huì)趨于穩(wěn)定,因?yàn)楫?dāng)構(gòu)件較大時(shí),重用率較小,與項(xiàng)目的匹配程度較差,定制、組合費(fèi)用較大,構(gòu)件的維護(hù)、定制、檢索等的費(fèi)用與重用的潛在節(jié)約達(dá)到一種平衡狀態(tài)。
3,軟件開發(fā)管理對(duì)重用收益的影響。軟件重用依賴于機(jī)構(gòu)中各部門的密切合作,只有當(dāng)所有部門都參與到這種協(xié)作過(guò)程中,軟件重用才有可能獲得較大的收益。由于軟件重用不論從技術(shù)上還是管理上都存在著一些困難,尤其是軟件重用實(shí)施的初始階段,企業(yè)要通過(guò)使構(gòu)件通用化或開發(fā)可重用構(gòu)件來(lái)構(gòu)建RCL,這需要投入不少的人力物力,而在短期內(nèi)又不會(huì)產(chǎn)生太多的收益。這就需要軟件企業(yè)的領(lǐng)導(dǎo),帶領(lǐng)全體人員從觀念上予以轉(zhuǎn)變,充分認(rèn)識(shí)到軟件重用會(huì)給軟件企業(yè)帶來(lái)長(zhǎng)遠(yuǎn)的利益,并在資金、人員等方面給予支持。開發(fā)人員需要充分考慮領(lǐng)域的需求,考慮RCL規(guī)模、構(gòu)件規(guī)模等對(duì)重用收益的影響,努力開發(fā)出通用性好的構(gòu)件??傊瑳](méi)有有效的管理、各個(gè)部門的密切合作,軟件重用很難獲得較好的收益。
三、結(jié)束語(yǔ)
軟件重用能大幅度提高軟件生產(chǎn)率、降價(jià)開發(fā)成本、保證軟件質(zhì)量。但是,我們應(yīng)該注意到軟件重用收益受到可重用構(gòu)件庫(kù)規(guī)模,構(gòu)件規(guī)模等的影響。同時(shí),機(jī)構(gòu)的各個(gè)部門必須密切合作,才能獲得更好的軟件重用收益。