摘 要:組件的選擇是影響基于組件開發項目成功的決定性因素之一。目前組件選擇存在著四方面問題,即組件選擇過程沒有定義,組件評價準則的定義沒有得到足夠重視,實際采用評價組件的方法往往缺乏客觀性,理論研究提出的方法往往可操作性差。針對這些問題,提出了一個組件選擇過程模型,該模型包含搜尋、篩選、評價和分析四個子過程;最后通過一個應用案例,詳細說明了該組件的選擇過程。
關鍵詞:基于組件開發; 軟件復用; 組件選擇
中圖法分類號:TP311 文獻標識碼:A 文章編號:1001-3695(2006)10-0070-03
Research on Component Selection Process in CBD
WANG Min1, WU Guangmao2, TIAN Lin2, ZHANG Chonggang2
(1.College of Mechanical Engineering, Northwestern Polytechnical University, Xi ’an Shanxi 710072, China; 2.Aeronautics Computing Technique Research Institute, Xi’an Shanxi 710068, China)
Abstract:The component selection is one of the crucial factors which influence the success of a CBD project. There are four problems in reusable component selection process: the selection process is not defined; the evaluation criteria are seldom well defined and lake of attention to application requirements; the evaluation method used in industry often lake of objectivity; most method on paper have bad operability. A component selection process model was present in this paper which has searching, screening, evaluating, analysis subprocess. Finally, a case study is given to show how to use the process and method we presented.
Key words:CBD(ComponentBased Development); Software Reuse; Component Selection
隨著軟件工程的發展,復用被認為是解決許多軟件開發問題的一種有效途徑,基于組件開發(ComponentBased Development,CBD)成為理論研究的熱點,并在業界得到廣泛的應用。然而目前CBD的理論研究與工程實踐之間還有一定的差距,這主要表現為理論研究一般是在“設計是為后續的組件實現進行規范定義”這一假設的基礎上進行的,而在CBD實踐中,設計工作往往在現有的組件基礎上進行,包括為后續的組件集成選擇組件[1~3]。由于商業市場是組件的主要來源,這就給項目帶來許多新問題[1],如許多關鍵的設計圍繞著組件接口展開,而這些接口往往依賴于外來的組件;組件被設計成易于與某些商用(Commercial OffTheShelf,COTS)組件進行集成,組件的選擇涉及其他相關設計決策;項目開發人員往往對被選擇的組件特性和行為的細節缺乏足夠的了解,因此使組件的選擇成為影響項目成功的決定性因素之一。鑒于這種現狀,本文詳細探討了CBD中組件選擇過程及其方法。
1 組件選擇技術的現狀
目前組件選擇的過程和方法普遍存在下列四個問題[4]:
(1)組件選擇過程沒有定義。這很大程度上歸因于項目進度的壓力,項目組在缺乏時間或經驗的情況下倉促進行組件選擇,無法很好地積累經驗,從而造成惡性循環使后續項目繼續混亂的組件選擇過程。
(2)組件評價準則的定義沒有得到足夠重視,尤其是不能很好地反映應用需求。這對組件選擇有決定性的影響,因為如果評價準則定義不好,再好的評價方法也得不到正確的結果。
(3)工業實踐采用的組件選擇方法往往缺乏客觀性。選擇和評價組件是一項主觀性很強的活動,很多屬性難以由確定量描述,而定性描述又過于籠統,缺乏客觀性的評價結果置信度不高。
(4)理論研究提出的方法往往可操作性差,難以在軟件工業界得到應用。
目前對組件選擇方法的研究不多,其中層次分析法(Analytic Hierarchy Process,AHP)表現出較好的實用價值[4],然而AHP法在候選組件數目較多或組件評價準則復雜的情況下,評價過程將比較煩瑣,這對評價效率的影響很大。國內對組件選擇方法的研究更少,但從其他領域評價方法的研究現狀來看,存在著過多地傾向于采用新技術,而忽視這些技術的實用性、成本和效率等問題。
2 組件選擇過程
針對目前已有組件選擇過程及其方法存在的上述問題,我們提出的組件選擇過程模型如圖1所示,主要分為搜尋組件、篩選候選組件、評價候選組件、分析評價結果這四個子過程。
這些過程并不是完全串行的,而是有一定的重疊:①需求是搜尋組件最重要的依據,然而一個項目在搜尋組件階段需求一般是模糊的,組件的搜尋、篩選、評價乃至軟件后續的設計開發均會引起需求的變更和完善,這也符合CBD需求工程的特點[1]。②篩選子過程中篩選準則的制定,實際上是在搜尋組件的子過程中完成的。篩選準則體現了需求的主要要求和已有組件的實際情況。同樣,評價子過程中評價準則的制定,實際上是在篩選組件時完成的。
需要注意的是,這個選擇過程模型適合于復雜組件的選擇,對一些功能簡單、候選數量不多的組件選擇過程,可根據需要進行裁剪。
2.1 搜尋
搜尋過程的目的是找到盡可能多的適合組件,輸入的是需求,輸出的是潛在的供應商及其組件清單。搜尋過程的步驟:①確定目標,然后定義搜尋準則。②在組件市場(包括內部市場)尋找可能采用的組件。采用盡可能多的途徑,如因特網、專業顧問等。
2.2 篩選
篩選過程的目的是淘汰一些組件使候選組件清單縮短到可管理的范圍,以減少下一步評價過程的工作量。輸入的是需求、目標和搜尋組件清單,輸出的是候選組件清單(2~8個組件)。篩選步驟:①制定篩選標準。制定篩選標準至少要考慮的問題有應基本滿足應用需求;能夠在要求的平臺或組件執行環境中運行;能夠較好地與其他用到的軟件兼容;供應商的信譽度;如果需要,對該軟件定制難易程度。②按照篩選標準進行篩選,淘汰一些組件。篩選可以采用德爾菲方法、層次分析法[5,6]或模糊綜合評價法(Fuzzy Comprehensive Evaluation, FCE)[7]。
2.3 評價
評價過程的目的是對候選組件進行全面細致的評價,給出一個優先級排序,輸入的是需求、目標和候選組件清單,輸出的是排序的候選組件清單。評價過程步驟:
(1)定義評價準則。如前所述,評價準則的定義對組件的選擇起著關鍵作用,然而不同類型的組件其評價準則是特定的。盡管如此,多數準則可以劃分為四類,即組件的功能需求、組件的質量屬性、商業關注點(如成本、供應商信譽、組件的發展前景)、構架相關因素(如在采用的操作系統、系統的功能分解或模塊間特定的通信機制等方面存在的約束)。評價準則是從篩選準則發展而來的,是篩選準則的細化。
(2)確定評價準則的權重,一般采用AHP法。
(3)依據評價準則對每個候選組件進行評價,采用AHP和模糊評價相結合的方法。
(4)按評價結果對候選組件進行排序。
2.4 分析
(1)分析過程的目的是確認評價的結果,輸入的是經過排序的候選組件清單和分析模型,輸出的是選擇的組件。
(2)分析過程比較靈活,根據不同情況可以有選擇地進行下面的活動:
①確定分析模型。
②分析排序結果,確定最佳組件勝出的原因。
③必要時進行敏感性分析以分析決策的穩定性(如果評價結果的排序對假定條件的細小改變很敏感,這個模型就不是很有效,這就需要修改評價標準并進行過程迭代)。
④通過差異分析確定組件的符合程度。根據評價結果,對評價出的最優組件進行進一步詳細分析,確定它是否符合需求、符合程度和需要改動之處,然后確定需要改動之處和差距解決的可能方案,再與供應商溝通確定這些方案的可行性。如果對項目來說,候選組件有不可克服的缺陷而無法改動,就必須考慮其他可選方案。
⑤進行決策并選擇組件。當從前面的分析結果中確定選擇的組件時,通常必須制定一份業務議案以獲得購買組件所必須的批準。
3 應用案例——選擇瀏覽CAD設計模型的組件
為中小型企業開展信息化工程,需要一個中小企業集成平臺,該平臺要能提供對其企業現有及相關產品CAD模型的瀏覽功能,這就需要瀏覽CAD模型組件,它可以使工程師以及其他產品開發、評審的相關人員,可以在不同的地點瀏覽CAD模型,通常使用輕量級應用程序或標準Web瀏覽器的形式。另外當企業(或虛擬企業)中存在不同的CAD系統時,這些瀏覽CAD模型組件也是需要的。而目前為集成系統自行開發一個CAD模型瀏覽組件在時間和成本上都是不合適的,因此在市場上找到已有組件是一條可行的途徑。這個研究案例中的組件選擇方法,在支持西部中小企業重組的現代集成制造平臺技術研究項目所開發的系統中采用。
3.1 搜尋組件
目標:低成本地滿足企業常用的CAD文件的瀏覽能力。
搜尋準則:具有瀏覽產品CAD模型的功能;有一定的性價比;運行在Windows平臺上。
搜尋結果:在市場上搜尋到了30個可用的支持Windows平臺商用組件,價格從免費到數千美元不等。例如SpinFire,Eviewer,ACIS viewer。考慮到篩選結果僅適于特定項目,對這些組件的優劣評判不具備權威性,因此隱去被選擇組件的名稱,用組件1,組件2,…代替。
3.2 篩選組件
篩選準則:支持必須的CAD文件格式;價格不宜超過S500;供應商比較穩定;具有一定的定制能力,最好具有圈閱等能力。
篩選準則的權重確定采用AHP方法,篩選過程采用模糊綜合評價方法,根據模糊評價結果,對組件進行篩選,選取得分值最高的三個組件進入候選清單,篩選結果為組件1、組件2、組件3。需要注意的是,當有組件得分值比較接近時,可多選幾個,一般候選組件數目控制在2~8個即可。
3.3 評價和分析組件
建立評價準則和層次關系,如表1的第一列所示。采用AHP方法確定權重,并對各組件進行單因素排序,結果如表1所示。對文件格式、價格、瀏覽技術和其他因素中各個影響因素的評價采用AHP法;對于質量屬性子層次,我們采用模糊評判的方法。
表1 組件的單因素排序結果和綜合評價結果
根據各單因素排序結果和相應的權值,得出綜合評價結果,如表1中最后一行。根據評價結果對組件排序:組件1>組件2>組件3。組件1勝出的最主要原因是其在功能和性能上的優勢;組件2主要優勢在于價格。相對而言,這三個組件綜合差距并不大,這也從另一個角度說明了篩選的結果比較可信。
4 結束語
本文提出的組件選擇過程,為實際的選擇過程定義了清晰的選擇流程,便于在實際的項目中裁減使用。通過較粗粒度的篩選過程,可以使組件選擇的復雜性控制在可管理的范圍內,然后再進行更細致的組件評價。通過這兩級選擇,將效率和客觀性統一起來,便于實際操作。
參考文獻:
[1]Kurt C Wallnau, Scott A Hissam, Robert C Seacord. 用商用組件構建系統[M]. 北京:清華大學出版社, 2002.1124.
[2]Bass L, Buhman C, ComellaDorda S, et al. Volume I: Market Assessment of Componentbased Software Engineering[R]. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2001.113.
[3]Katharine Whitehead. 基于組件開發[M]. 北京:人民郵電出版社,2003.5179.
[4]Kontio J. A Case Study in Applying a Systematic Method for COTS Selection[C]. Proceedings of the 18th International Conference on Software Engineering, Los Alamitos, CA: IEEE Computer Society Press, 1996.201-209.
[5]Saaty T L.The Analytic Hierarchy Process[M].New York:McGrawHill, 1990.1-231.
[6]Min Hokey. Selection of Software: The Analytic Hierarchy Process[J].International Journal of Physical Distribution and Logistics Management, 1992,22(1):42-52.
[7]李士勇. 工程模糊數學及應用[M]. 哈爾濱:哈爾濱工業大學出版社,2004.96108.
作者簡介:
王珉(1975-),男,山東蓬萊人,博士研究生,主要研究方向為CAD,CIMS,CBSE等;吳廣茂(1941-),男,河北人,研究員,博導,主要研究方向為CAD和軟件工程等;田林(1977-),男,陜西寶雞人,主要研究方向為網絡、軟件工程等;張崇剛(1978-),男,陜西漢中人,主要研究方向為軟件工程、嵌入式軟件開發等。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文