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