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