摘 要: 給出了COTS構件可信度度量的概念及構件測試的若干決策模型。該模型可以指導用戶在COTS構件交易過程中對構件進行何種程度的測試做出選擇并對風險管理和控制提供支持,,從而幫助用戶在能較好地進行風險管理和控制的前提下盡量減少測試的時間和成本,。
關鍵詞: 軟構件;測試,;可信度度量,;決策模型;COTS軟構件,;交易
基于COTS(Commercial Off-The-Shelf)構件的軟件開發(fā)或稱為基于COTS軟構件的信息技術解決方案,,被認為是一種革命性的軟件開發(fā)新模式,對軟件開發(fā)有著廣泛和深刻的影響,,它將開創(chuàng)軟件開發(fā)的新紀元[1-2],。近幾年來不但在軟件界產生了巨大的影響,而且還引起了其他一系列產業(yè)界的高度重視,?;跇嫾能浖こ桃殉蔀檐浖_發(fā)的主流技術,,軟構件技術已成為軟件產業(yè)發(fā)展的主導力量。因此,,構件的使用者如何對擬采用的構件進行測試已成為一個倍受重視的研究熱點,。
COTS構件是一種特殊的軟件產品,具有許多自身固有的完全不同于傳統(tǒng)軟件的新特性[1,,3],,例如:(1)面向大眾進行銷售、租賃和注冊,;(2)以贏利為目的,;(3)由開發(fā)商支持及升級,開發(fā)商擁有知識產權,;(4)可以有多個拷貝,;(5)可能存在眾多的可供選擇的候選構件;(6)源代碼的不可見性,;(7)構件的異質(混雜)性,;(8)構件版本的可能變更以及不確定性。此外,,還有用戶使用構件的上下文環(huán)境的多樣性和不確定性,、構件的開發(fā)者和構件的使用者的信息脫節(jié)等。
軟件的測試不但困難,,而且費時,、費力和高成本。COTS構件的這些特殊性又給其測試帶來了新的問題和挑戰(zhàn),。目前雖然對COTS構件的測試進行了相當多的研究,,但是仍存在很多實質性的問題無法解決[1]。對任何產品的選擇,、交易和采用,,除了微觀上的具體檢測和驗證之外,宏觀上對產品的可信度的了解和評估對用戶的抉擇具有相當大的指導意義,。特別是像COTS構件這樣的產品,,這種宏觀上的評估(以下簡稱評估)就更重要和更有價值。例如,,參考文獻[4]就是針對COTS構件測試的困難性和使用的風險問題,,對歐洲多個國家中的幾百個實際項目的開發(fā)過程中開發(fā)者是否使用COTS構件或使用現(xiàn)成的開源軟件資產的決策進行了研究。但該文只是基于調查的實驗性研究,,僅總結出了開發(fā)者直覺的決策過程,,沒有提出具有普遍意義的決策指南。
針對以上問題,本文首先介紹了COTS構件可信度度量的概念,,然后給出構件測試決策的若干模型,,用以指導用戶在COTS構件交易過程中對構件進行何種程度的測試做出選擇。從而能在較好地進行風險管理和控制的前提下盡量減少測試的時間和成本,。從更廣的角度,COTS構件的測試和選用以及成本問題也屬于信息安全的經濟學范疇,,因此,,從經濟學的角度對此進行研究具有深刻的意義[5]。
1 COTS構件可信度度量
任何產品的交易達成都依賴于兩大方面:微觀上的具體檢測和驗證,;宏觀上客商之間的信用和對交易歷史等信息的了解與評判,。例如,客戶對生產商,、供應者,、品牌、產品的返修率,、其他人或機構對產品的反饋意見,、評價、投訴等,。但是,,普通商品(包括計算機硬件)都可能由于生產時間、地點,、生產批次,、所用的原材料等的細微差別,甚至不同的生產線和生產線上的工作人員的不同,,而導致同一品牌同一型號的產品本質上的差別,。而軟件產品卻不存在這樣的問題,同一版本的軟件的功能,、性能和其他一切質量指標都是相同的,。因而,其交易信息和歷史數(shù)據(jù)的可信度和可用性更高,。事實上,,幾乎所有的軟構件庫都存儲和提供這些數(shù)據(jù),例如青鳥構件庫,、REBOOT,、上海構件庫等。此外,,軟件特別是COTS構件的測試的困難性也從另一個側面突出了交易信息和歷史數(shù)據(jù)的作用和依賴性,。例如,Voas提出構件認證策略是:獨立認證實驗室大量執(zhí)行構件測試,獨立發(fā)布測試結果[6],。但是,,即使是最權威的第三方測試也無法完全取代用戶本身的測試。
COTS構件可信度度量也是十分復雜,、困難的,,目前尚無統(tǒng)一的標準。例如,,Kunda突出強調了供應商信譽,、用戶經驗[7];Ballurio等人根據(jù)供應商的財務能力,、市場穩(wěn)定性,、管理能力、研發(fā)能力和產品支持能力,,從供應商能力的角度,,研究降低COTS軟構件的選擇風險[8];Jaccheri等人則認為要重點評估COTS軟構件的獲取成本,、擁有成本,、市場占有量、市場占有率和許可類型[9],。通過對一些已有的有代表性的研究結果和典型的構件庫管理標準(如NATO,、青鳥構件庫、REBOOT,、上海構件庫等)的綜合研究,,本文認為沒有任何一個單獨的測量單元是足夠的,必須使用多個有關的變量來描述和度量,,因此COTS構件可信度必須包括以下幾個方面:
?。?)供應商。供應商的信譽,、能力等,。
(2)交易歷史,。交易歷史與個人信用歷史相似,,如銀行在放貸或放寬信用限制之前會檢查個人信用歷史。在COTS構件交易中,,交易歷史包含客戶與多個商家的交易檔案以及商家與多個客戶的交易檔案,。例如,客戶的退貨,、反饋意見,、評價,、投訴等。
?。?)中介,、第三方權威機構對構件的認證和測試結果。交易信用級別隨著可信任中介對損失做出擔保而提高,。對于無交易歷史的新商家或新客戶更是如此:他們可能不會進行昂貴的交易,,直到可信任的中介進行擔保。中介也可以提供額外的保護措施,,以對抗不可控的,、昂貴的大筆交易。
?。?)其他變量。在風險評估中另外需要考慮的變量是時間(軟件退役,、供應商不再進行產品支持等,;開發(fā)商、供應商破產或出局),。
表1給出了COTS構件可信度度量的相關變量,。
即使建立了可信度度量的相關變量,對于COTS軟構件的評估目前仍然沒有公認的標準和方法,。許多研究者將COTS軟構件評估看作多準則決策問題MCDM (Multi-Criterion Decision Making),。對于COTS軟構件的可信度評估,MCDM的多屬性決策MADM(Multi-Attributes Decision Making)中的加權評分法(Weighted Score Method)是一種有效的相對可行和易于操作的方法,。該方法是:對于每個候選構件采用下面的算式進行評分:
2 基于信用模型的風險分析
一個構件的交易過程的總風險可以設計成一個由交易費用和信用度量值決定的函數(shù),。首先,風險是一個貨物或服務的費用的函數(shù):謹慎的買家在進行昂貴的采購前,,會有更多的考慮,。同樣地,商家并不擔心進行一個孤立的,、費用低下的微流程中損失收入,,但隨著一筆交易金額的提高或者微流程數(shù)量的提高,風險也將相應提高,,因此商家也會提高對于收入和費用的注意力(包括質量與費用),。就客戶而言,對于可信度高的構件的交易,,其風險就較低,,反之則風險就上升。而對商家來說,,他們也可根據(jù)客戶的信用度對交易風險進行分析,。
風險變量一旦確立,交易行為和交易流程就可以根據(jù)風險來確定。交易行為可歸納為驗證和授權兩個方面,。
?。?)驗證:對客戶,是質疑由商家給出的賬單和產品質量的可信性,;對COTS構件,,客戶完成在線交易之前,難以完全測試產品,,但又無法相信商家的保證,,即保證軟件下載后能被成功安裝,并包含所有宣稱的功能和性能,。一個解決方案是:放棄驗證小額的交易,,或檢驗隨機選定的微流程,特別是對那些值得信任的商家,。商家的一般策略是對每一筆消費檢查客戶的授權信息(包括購買力,、支付信息和背景)。如果驗證的成本太高,,商家也會根據(jù)交易費用和客戶的信用度選擇驗證的方式和方法,。
(2)授權:交易費用的多少以及對商家的信用則會在很大程度上影響客戶的購買行為,,例如,,要對擬購買的構件進行級別的測試、是否達成交易等等,。對商家而言,,則要考慮當客戶被授予購買服務和商品的權力后,是否能相信他們不會濫用權力,。例如,,是否可以相信他們不會侵犯版權、超越使用范圍和權限等,,常用方法是在給客戶授權時限制其權力,,信用等級低的客戶將受到更大的限制。
3 構件測試的決策模型
3.1 基于布爾邏輯的模型
這是一個最簡單的模型,。矩陣中,,V表示一個應該被檢驗的交易流程,無需驗證的行為圈入可信區(qū)域,,區(qū)域邊界是信用邊界,。如圖1所示,交易歷史不良的客,、商,,盡管交易金額/重要性不大,,但每個交易流程都需要被驗證。交易歷史優(yōu)良的,,則只需重點檢驗大額/重要的交易,,也即對交易信用歷史記錄差的客、商,,其每一項流程都必須被檢驗,。而對于交易信用歷史記錄良好的,檢驗/測試的強度隨著交易金額/重要性的增加而增加,。
3.2 基于模糊邏輯的模型
“小額交易”,、“優(yōu)良交易歷史”等術語可方便描述度量單元。但是,,對于同樣程度的檢驗,,即使是檢驗同樣交易額的交易,檢驗缺乏交易歷史的客戶比檢驗具有優(yōu)良交易歷史的客戶更有意義,。因此,,有必要進行加權處理以得到更加精細的、不同的行為度量值,。
圖2描述了在變化的交易歷史中,權值對行為級別的影響,。例如,,交易歷史很好的客、商在50次交易過程中可以只檢驗一次(V/50)或其測試強度為1/50,。圖2中,,20 V表示對交易歷史很差的客、商,,每次交易都需要檢驗/測試,,而且需要通過各種不同的方法檢驗/測試,包括對客戶與其他商家,、可信任中介做徹底的咨詢,,考察客戶之前的交易等,或稱其測試強度為20,。
這樣的加權體系形成了一個加權信用邊界,,邊界上的最高值是20V,最低是V/70,。加權信用邊界是一個由平滑插值的方式形成的三維邊界,。圖2中的虛線劃出了加權信用邊界。顯然,,交易價/交易數(shù)量越多(如微流程),,信用記錄越差,,檢驗/測試的要求越高,作用也越顯著,。
但是,,加權決策矩陣中的具體數(shù)字不容易確定,而且“20V”這樣的說法也不確切,。一種可行的方法是用基于模糊邏輯的矩陣來解決,,如圖3所示。模糊邏輯的一個好處是使用語言用詞(如“一般”,,“很好”,,“很差”等),可信任的中介和權威機構能更容易標注矩陣中的實體,。語言用詞覆蓋了值的一個范圍,,而不是孤立的一個“散”的值,這個優(yōu)點使其能在知識處理系統(tǒng)(如模糊邏輯專家系統(tǒng))中得到應用,?;谀:壿嫷膶<蚁到y(tǒng)可以由數(shù)學函數(shù),例如成員函數(shù)來表示語言用詞的值,。因此,,模糊邏輯矩陣能用一組有助于推理的模糊成員函數(shù)集替換。
在模糊決策矩陣中,,具體的數(shù)值由標準化的或中介定義的語義變量替換,。例如,交易記錄優(yōu)良且只進行“一般”性交易時的檢驗/測試強度是低LV(Low Verification),。
3.3 決策模型的傳播
對于COTS構件這樣的交易,,客戶通常在聯(lián)系商家之前,會與若干可信任的中介聯(lián)系,。COTS構件交易要求供應商,、客戶和所有中介之間有相互的信用。因此,,既有客戶與中介之間的信用關系,,又有可信任中介TI (Trusted Intermediary)與經紀人(代理商)之間的關系。這些信用關系的數(shù)量隨著客戶與商家之間可信任中介數(shù)量的增加而增加,。
客戶,、中介和商家之間存在不同的信用-行為關系。中介中,,有的中介與其他中介之間可能不存在可信任的關系,,而是一個默認的關系。要計算客戶與商家之間的單一信用-行為值,,需要形成一個涵蓋他們之間所有流程的總的信用-行為關系,。在交易和驗證/測試決策時,,必須把客戶與商家的各種信用-行為關系(稱為信用行為-關系鏈)簡化成一個單獨的值,這個值可由覆蓋所有流程的值構成的所有信用-行為關系的合成得到,。
例如,,圖4是一個描述客戶與可信任中介之間的決策矩陣。矩陣中的變量是交易歷史和交易數(shù)量,。圖5是中介和經紀人之間類似的矩陣,。矩陣中每一個值表示一個類似于加權決策模型中的驗證級別。
圖4的矩陣是基于變量是構件交易信譽度和構件交易價/交易數(shù)量的決策模型,。圖5是基于滿意度指數(shù)和構件交易價/交易數(shù)量的決策模型,。滿意度指數(shù)表明了一類客戶的平均交易歷史水平,或是可信任的中介基于其客戶提交的滿意度報告確定的,。在這里,,合成操作指的是用圖5所示的矩陣來調整使用如圖4所示的矩陣交易風險或者幫助對構件的驗證/測試決策。
合成操作可以是減法運算,、取最小值運算,、取平均值運算,還可以是幾種運算的組合,。圖6給出了對圖4和圖5執(zhí)行某些合成運算的部分結果的示例,。
4 決策過程和應用
本方法已應用于某銀行的國際貿易結算系統(tǒng)的構件測試決策中。系統(tǒng)已實現(xiàn)的部分包括基本業(yè)務功能構件29個,,其中自主開發(fā)10個,,委托開發(fā)/購買19個;系統(tǒng)管理和維護構件12個,,其中自主開發(fā)4個,委托開發(fā)/購買8個,。出于對可靠性的特殊要求,,以往對委托開發(fā)/購買的構件的測試投入的成本相當大。而應用本模型輔助決策,,且采取了比文中的模型更加謹慎的措施(把信譽度降低或/把交易價提高),,測試代價約減少了50%。采用對比實驗通過測試分析和初步運行的對比研究,,沒有發(fā)現(xiàn)顯著差異,。其決策和測試過程的大致步驟如下:(1)根據(jù)表1和式(1)確定交易信譽度;(2)交易價/數(shù)量由構件的實際價格,、該構件在系統(tǒng)中的比重(價格比重,、規(guī)模比重、重要性比重等),、公司的規(guī)模和財務能力確定,;(3)謹慎度調整(提高或降低交易信譽度和交易價/數(shù)量的等級),;(4)根據(jù)選擇的測試決策模型確定測試強度(例如本試驗應用選取加權模型);(5)選擇合適的構件測試方法[1,,10]按確定的測試強度要求進行測試,。
本文給出的COTS構件可信度度量和測試決策模型,可以指導用戶在COTS構件交易過程中對構件進行何種程度的測試做出選擇并對風險管理和控制提供幫助,,從而幫助用戶在能較好地進行風險管理和控制的前提下盡量減少測試的時間和成本,。COTS軟構件評估和測試的決策也是傳統(tǒng)的信息系統(tǒng)理論所無法涵蓋的。本文通過對影響構件測試決策復雜的,、多變量的抽象,,最終以矩陣的方式實現(xiàn)對模型的語義定義。矩陣描述的模型具有易于理解和應用,、可操作性強的優(yōu)點,。如何把本模型結合構件安全性和可用性的投入成本的權衡[11]是值得進一步進行研究的。
參考文獻
[1] 毛澄映,,盧炎.生構件軟件測試技術研究進展[J].計算機研究與發(fā)展,,2006,43(8):1375-138.
[2] 余金山,,萬靜.一個基于Internet的軟構件信息系統(tǒng)的研究與實現(xiàn)[J].信息與控制,,2002,31(4):357-362.
[3] 原欣偉,,覃正.COTS軟構件評估研究綜述[J].計算機應用研究,,2006,23(7):5-7.
[4] Li PJingyue,, PREIDAR C,, ODD P N., et al.An empirical study on decision making in off-the-shelf component-based development. Proceedings of the 28th international conference on Software engineering[C]. ACM,, 2 Penn Plaza,, Suite 701 New York NY USA, 2006: 897-900.
[5] ROSS A,, TYLER M. The economics of information security[J]. Science,,2006,314(5799):610-613.
[6] VOAS J. Developing a usage-based software certification process[J]. IEEE Computer,, 2000(8):32~37.
[7] STACE K D. Social technical approach to COTS software evaluation[J]. Lecture Notes in Computer Science,,2003,2693:64-84.
[8] BALLURIO K,, SCALZO B,, ROSE L. Risk reduction in COTS software selection with BASIS[J]. Lecture Notes in Computer Science, 2002,,2255:31-43.
[9] JACCHERI L,, TORCHIANO M. Classifying COTS products[J]. Lecture Notes in Computer Science,, 2002,2349:246-255.
[10] 鄭成文,,韓柯,,張海粟. 一種改進的軟件自適應隨機測試策略[J].計算機工程,2011,,37(16):82-83,,100.
[11] IOANNIDIS C, PYM D,, WILLIAMS J. Investments and trade-offs in the economics of information security[J]. Lecture Notes in Computer Science,, 2009,5628:148-166.