彭雄新
[摘要]軟件重用一直被視為軟件開發(fā)過程中解決開發(fā)問題的方法。軟件構(gòu)件庫的產(chǎn)生為軟件重用提供有力的支持?;谲浖?gòu)件庫,很多開發(fā)組織提出基于構(gòu)件開發(fā)過程的軟件工粗。但是在構(gòu)件開發(fā)過程中很少有開發(fā)組織提出構(gòu)件查詢過程。對當前的適用于大型構(gòu)件庫的構(gòu)件查詢過程進行改進。這種改進后的構(gòu)件查詢過程能更好地用于小型構(gòu)件庫。
[關鍵詞]軟件復用 基于構(gòu)件的軟件工程 軟件過程改進 構(gòu)件查詢過程
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0810065-01
軟件重用一直被視為軟件開發(fā)過程中解決開發(fā)問題的方法。重用可以提高軟件開發(fā)的生產(chǎn)效率和質(zhì)量,并且很多項目組宜稱從中獲益匪淺。研究者們提出了一些怎樣查詢合適的可重用構(gòu)件的過程。Motisio提出一種改進的構(gòu)件過程。Ivica Crnkovic提出了怎樣提高構(gòu)件開發(fā)可靠性的方法。Poulin提出了一種概括性的查詢過程,包括幾種通用的測試候選的可重用構(gòu)件是否合適的標準。Boloix和Robillard提出了一種通用的測試軟件產(chǎn)品、過程和對項目開發(fā)有影響的框架,Kontio提出了一種可重用OTS構(gòu)件的查詢過程OTSO,該過程分為選擇、展示、評定、決策、實現(xiàn)和測試6個階段。作者認為,Kontio提出的OTSO過程周期長,用于管理成本較高,不適合用在小型構(gòu)件庫(構(gòu)件數(shù)量不超過300)中,因而在此基礎上,作者提出了快速的軟件構(gòu)件查詢過程(Reusable Component Selection Process,RCSP)。
一、可重用構(gòu)件查詢過程(RCSP)
可重用構(gòu)件查詢過程如下圖所示,該過程分為3個子過程:查詢、評估、分析??芍赜脴?gòu)件查詢過程中引用了Kontio提出的構(gòu)件標準定義子過程,構(gòu)件標準定義子過程將項目重用目標分解為標準。這些標準將按照可重用構(gòu)件查詢過程的子過程進行情況,提供給子過程使用。提供給查詢子過程的標準是構(gòu)件指導信息,即藉要什么樣的構(gòu)件。提供給評估子過程的信息是標準定義信息,這些信息比構(gòu)件指導信息更細更完備。提供給分析子過程的信息是經(jīng)過評估子過程完善的構(gòu)件標準信息。下面將分別介紹可重用構(gòu)件查詢過程的3個子過程。
(一)查詢子過程
目標:查找出滿足評估標準的可重用構(gòu)件,將查詢結(jié)果展示出來,并送交評估子過程進行處理。
輸入:外部構(gòu)件庫和構(gòu)件指導信息。外部構(gòu)件庫指項目開發(fā)使用的構(gòu)件庫和第三方構(gòu)件庫。構(gòu)件指導信息指由定義評估標準子過程生成的構(gòu)件信息,這些構(gòu)件信息描述了需要什么樣的構(gòu)件。
輸出:構(gòu)件列表,該列表包括:
(1)構(gòu)件的名稱;(2)構(gòu)件作者和來派;(3)構(gòu)件制作時間;(4)構(gòu)件入庫時間;(5)構(gòu)件版本號;(6)使用平臺;(7)應用領域;(8)功能;(9)表示方法;(10)形態(tài);(11)層次;(12)上下文環(huán)境;(13)尺寸;(14)制作工具。
如果在查詢過程中,無法找到所需構(gòu)件,那么將導致需求變更。查詢子過程會出現(xiàn)的一個問題是:何時查詢應該結(jié)束和找到所有的構(gòu)件?該問題的解決辦法是,使用多個構(gòu)件庫,一次查詢的時間不超過1天,瀏覽每次查詢的結(jié)果。如果在多個搜索源下每次查詢結(jié)果都一樣,那么可以認定不需要額外的查詢了。
(二)評估子過程
目標:通過評估標準評估查詢得到的構(gòu)件。
輸入:查詢得到的構(gòu)件和標準定義。定義評估標準子過程向評估子過程發(fā)出的標準是分級的重要度評估標準。該標準的具體含義是,按照查詢子過程的查詢標準反饋信息,對構(gòu)件按重要程度分級。按重要程度分級的好處是盡可能地減少評估時間。
輸出:量好的評估結(jié)果,該結(jié)果將作為數(shù)據(jù)存儲點,以文檔的形式供分析子過程使用。
(三)分析子過程
目標:決定在項目中使用哪些構(gòu)件。
輸入:評估得到的構(gòu)件、其對應的評估數(shù)據(jù)和查詢評估標準。
輸出:文檔化的構(gòu)件使用信息。這些構(gòu)件使用信息將包含構(gòu)件名稱、構(gòu)件來源、構(gòu)件特征以及構(gòu)件評估數(shù)據(jù)。這些信息將提交給項目經(jīng)理決定使用那些構(gòu)件。
二、RCSP算法
(一)RCSP算法設計
RCSP算法包括了方法:define(),query(),evaluate(),analyze(),
這些方法用于生成構(gòu)件評定標準、查詢構(gòu)件、評估構(gòu)件標準和分析構(gòu)件數(shù)據(jù)。算法物人為:外部構(gòu)件庫、項目規(guī)約和項目約束。算法拍出為:構(gòu)件查詢報告、供項目開發(fā)人員瀏覽最終被選定的構(gòu)件。
int rcsp (mmpntDB,specific,rnnstrain)(
mmpntStand=define (specific,constrain);
while(!compntStand)(
mmpnt~query (mmpntDB,compntStand);
display (mmpnt,infor);
compntStand=define (compntStand,compnt. infor),
for( mmpntNo=),i!fit ( compnt. infor,compnt-
Stand),mmpntNo++)(
compntQuatt=evaluate (compnt,compnt5tand),
StandDiscrip~define(mmpntStand,
MmpntQuatt)
)
)
compntReport=analyze (mmpntQuatt,standDiscrip),
return mmpntReport i
(二)RCSP算法分析與實現(xiàn)
當查找到N個構(gòu)件時,外層while循環(huán)所搖的時間復雜度為O(N),加上內(nèi)層for循環(huán)需要的時間負責度,整個算法的時間復雜度為O(N2)e算法實現(xiàn)是基于SUN公司的NetBeans平臺下GUI編程。RCSP方法在構(gòu)件庫內(nèi)構(gòu)件數(shù)量小于1000個的情況下,復雜度低于Kontio的OTSO,但比Ivica Crnkovic提出的方法要高,如下圖所示。
三、結(jié)束語
通過與4位學者的研究成果相比較得知,可重用構(gòu)件查詢過程的評定標準適用于小型構(gòu)件庫(構(gòu)件數(shù)不超過1000個)。所以接下來的工作是要提高構(gòu)件查詢的標準和過程的可復用性,使其更適合用于大型構(gòu)件庫。
參考文獻:
[1]楊芙清、梅宏、李克勒,軟件復用與軟件構(gòu)件技術,電子學報,1999,2(2).
[2]李禹材、王玲,一種子領域通用構(gòu)件的開發(fā)方法,計算機工程,2006,32(9).
[3]黃凱,荃于Eclipse體系的構(gòu)件開發(fā)管理平臺的設計實現(xiàn),科學技術與工程,2005,14(5).