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