石 莉,黃 克,李 敏
(淮北師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 淮北 235000)
現(xiàn)代信息社會對計(jì)算機(jī)系統(tǒng)的依賴,很大程度上體現(xiàn)為對軟件的依賴[1].軟件幾乎無所不在.但是,軟件質(zhì)量不能令人滿意,不能做到總是讓人信任.因此,如何評估軟件的可信性是軟件研究領(lǐng)域密切關(guān)注和積極從事的重要課題.最近幾年中,研究人員對軟件可信性重要性的認(rèn)識已經(jīng)超越其傳統(tǒng)的應(yīng)用領(lǐng)域(電信、運(yùn)輸、航天航空等),逐漸在其它領(lǐng)域也開始關(guān)注軟件可信性,例如經(jīng)濟(jì)領(lǐng)域(商業(yè)、金融、能源等),使得軟件可信性的評估成為世界范圍之內(nèi)信息產(chǎn)業(yè)最急需解決的問題之一.
國外有很多科學(xué)學(xué)術(shù)團(tuán)體致力于對軟件可信性的研究,其中包括:
(1)美國國家科學(xué)基金會[2](National Science Foundation,簡稱為NSF).NSF有一個專門的可信計(jì)算計(jì)劃(Trusted Computing Project,NSF01-160),他們認(rèn)為一個可信的信息系統(tǒng)應(yīng)包括:可靠安全性、私密性、保密安全性、可靠性.
(2)德國達(dá)姆施塔特大學(xué).德國達(dá)姆施塔特大學(xué)的計(jì)算機(jī)科學(xué)和工程系的數(shù)據(jù)庫和分布式系統(tǒng)組中有一項(xiàng)“可信計(jì)劃”(Trusted project)[3].他們認(rèn)為,可信性是比任何其它特征都具有綜合性的一個性質(zhì),因?yàn)榭尚畔到y(tǒng)必須具有下述屬性:端到端的安全、可用性、可靠性、實(shí)效性、一致性、可預(yù)測性、可擴(kuò)展性.
(3)其他還有1979 年9 月成立于倫敦的WG 10.4;IEEE CS TC-FTC;IEEE Pacific Symposium on De?pendable Computing;the European Dependable Computing Conference;the IEEE Latin American Depend?able Computing Symposium等.
國內(nèi)對軟件可信性的研究,比較有成效的是陳火旺等[4]對軟件可信的研究.他們認(rèn)為,軟件系統(tǒng)的可信性質(zhì)是指該系統(tǒng)需要滿足的關(guān)鍵性質(zhì);軟件一旦違背這些關(guān)鍵性質(zhì),會造成不可容忍的損失時,稱這些關(guān)鍵性質(zhì)為高可信性質(zhì).軟件可信性質(zhì)常常有以下幾種:可靠性、保密安全性、可靠安全性、生存性、容錯性、實(shí)時性.高可信軟件系統(tǒng)中會涉及上述性質(zhì)的一個或多個.
軟件可信性方面的學(xué)術(shù)探討涉及軟硬件系統(tǒng)結(jié)構(gòu)、設(shè)計(jì)、開發(fā)、維護(hù)、運(yùn)行、工程管理、可信性建模、可信性測量的各個方面.也就是說軟件可信性從其被科學(xué)學(xué)術(shù)團(tuán)體認(rèn)識和接受以來就成為軟件質(zhì)量研究方面最有生命力的一個科研分科.在軟件可信性建模的過程中,能否構(gòu)建一個具有普遍適用性的軟件可信性評估系統(tǒng),對后續(xù)研究工作具有重要意義.
本文從軟件質(zhì)量模型出發(fā),對軟件可信性評估從以下幾方面進(jìn)行闡述:首先,基于ISO/IEO 9126標(biāo)準(zhǔn)建立軟件可信性的指標(biāo)體系和量化體系.其次,從如何開展軟件可信性評估工作的角度,描述軟件可信性的評估過程.最后,在此基礎(chǔ)上構(gòu)造包括指標(biāo)模型層、評估過程和信息層3部分的軟件可信性評估系統(tǒng).這些工作是進(jìn)一步研究軟件可信性度量方法和構(gòu)建可信性測評體系的關(guān)鍵.
Rawashdeh 等將眾多軟件質(zhì)量模型分為兩大類[5]:一類是等級模型.目前比較有知名度的包括:(1)McCall在1976年提出的軟件質(zhì)量劃分模型;(2)BarryBoehm在1978年提出的軟件品質(zhì)模型;(3)FURPS模型;(4)1991年國際標(biāo)準(zhǔn)組織提出的ISO9126軟件質(zhì)量模型;(5)1996年Dromey提出的質(zhì)量屬性模型.另外一類是非等級模型.主要包括Jeffrey提出的三角形模型[6]和Nagib等提出的立方體模型[7].由于非等級軟件質(zhì)量模型的一級屬性下面沒有子屬性,這樣就無法對軟件的可信性進(jìn)行進(jìn)一步評估,因此他們選擇軟件質(zhì)量等級模型作為出發(fā)點(diǎn)進(jìn)行研究.在對5個軟件質(zhì)量等級模型進(jìn)行分析比較后,Rawashdeh 等給出了表1[5]:
表1 5種模型中的軟件質(zhì)量屬性
根據(jù)表1可以看出[5]:有的模型包含的一級屬性多,有的包含的一級屬性少.更重要的是,通過比較各個軟件質(zhì)量模型的一級質(zhì)量屬性,可以得出共有6個屬性,即:有效性、可靠性、可維護(hù)性、可移植性、易用性和功能性.通過比較可以得出6個共有軟件質(zhì)量的一級屬性恰恰與ISO9126模型中的6個屬性一致,因此,選擇ISO9126模型[8]作為建立新模型的理論基礎(chǔ).ISO9126模型的6個重要屬性及其子屬性如表2所示[9].
表2 ISO 9126模型中的軟件質(zhì)量屬性
考慮到軟件的安全性在某些特殊領(lǐng)域,如:國防、航空、醫(yī)療、金融等領(lǐng)域有著舉足輕重的作用,因此,將功能性中的子屬性——安全性放到新組成的軟件質(zhì)量模型中的一級屬性之列.軟件安全性是軟件在受到惡意攻擊時仍提供所需功能的能力[10],ISO/IEO 9126 質(zhì)量模型中的安全性是指保密安全性,定義為與防止對程序和數(shù)據(jù)進(jìn)行非法存取的預(yù)防能力有關(guān)的質(zhì)量屬性[11],即軟件系統(tǒng)對數(shù)據(jù)和信息提供保密性、完整性、可用性、真實(shí)性保障的能力[4].傳統(tǒng)上國內(nèi)學(xué)者較多關(guān)注的是軟件可靠安全性,即軟件運(yùn)行不引起危險(xiǎn)、災(zāi)難的能力[4].結(jié)合國內(nèi)外對安全性的研究,本文將保密安全性和可靠安全性作為安全性的2個子屬性.調(diào)整后的新軟件質(zhì)量模型屬性由6個增加到7個.
軟件可信性是由軟件質(zhì)量一級屬性體現(xiàn)出來的綜合特性,是一種能夠比較客觀地反映軟件質(zhì)量的軟件特性.基于調(diào)整后的新軟件質(zhì)量模型可得到軟件可信性指標(biāo)體系,如圖1所示.
圖1 軟件可信性指標(biāo)體系
其中,軟件可信指標(biāo)體系中的一級指標(biāo)和子指標(biāo)分別來自軟件質(zhì)量模型中的一級屬性和其子屬性.指標(biāo)體系描述軟件可信性指標(biāo)的自下而上的從屬關(guān)系,要獲得軟件可信性的評價結(jié)果必須確定指標(biāo)體系自下而上的量化關(guān)系.
圖1中將指標(biāo)分為兩個層次:第一層由軟件可信性的7個一級指標(biāo)組成,包括可靠性、功能性、可用性、有效性、可維護(hù)性、安全性、可移植性;第二層由軟件可信性的子指標(biāo)構(gòu)成.由于這兩層指標(biāo)比較抽象,無法對其進(jìn)行直接測量,因此,必須根據(jù)軟件用戶的需求制定一定數(shù)量的量化指標(biāo),即選擇一組度量元代表軟件可信子指標(biāo)的主要方面,這些可測量的度量元構(gòu)成了軟件可信性的度量層;度量元包含一定的數(shù)據(jù)采集點(diǎn),即要得到量化的數(shù)據(jù),必須在相應(yīng)的采集點(diǎn)進(jìn)行數(shù)據(jù)采集.圖2所示為軟件可信性的指標(biāo)量化結(jié)構(gòu)層次圖.
圖2 軟件可信性的指標(biāo)量化體系結(jié)構(gòu)
分析軟件可信性指標(biāo)體系各層之間的關(guān)系后發(fā)現(xiàn),可以用集合來描述軟件可信性的各層之間的關(guān)系,達(dá)到量化軟件可信性指標(biāo)的目的.在這個結(jié)構(gòu)中,7個一級指標(biāo)中的某一指標(biāo)Bj下屬的某一子指標(biāo)Cjs的n個度量元構(gòu)成的度量元集合為:
其中,D為度量元集合,Di為第i個度量元.假設(shè)一級指標(biāo)集合B={Bj|j=1,…,7},和Bj對應(yīng)的子指標(biāo)集合Cj={Cjs|s=1,…,m} ;數(shù)據(jù)采集點(diǎn)集合定義為E={Et|t=1,…,k},數(shù)據(jù)采集項(xiàng)集合定義為X={xt|t=1,…,k},計(jì)算度量元Di值的函數(shù)為f({xt|t=1,…,k});Xt表示采集點(diǎn){Et|t=1,…,k}對應(yīng)的數(shù)據(jù)項(xiàng);度量元Di所處級別Li對應(yīng)的測試技術(shù)Ti和測試的輸入Pi,它們之間的對應(yīng)關(guān)系為R={(Li,Ti,Pi)};Q為包含指標(biāo)裁減準(zhǔn)則的約束條件.
假設(shè)將軟件可信性指標(biāo)集合定義為A={Bj×Cjs},則度量元Di可定義為:
根據(jù)(2)式對度量元的定義知,度量元的參數(shù)包括:數(shù)據(jù)采集點(diǎn)及數(shù)據(jù)項(xiàng)、度量元的計(jì)算公式、度量元所屬一級指標(biāo)和子指標(biāo)、測試技術(shù)、測試輸入和指標(biāo)裁減準(zhǔn)則.其中,數(shù)據(jù)項(xiàng){xt|t=1,…,k}和數(shù)據(jù)采集點(diǎn){Et|t=1,…,k}表示要得到數(shù)據(jù)項(xiàng)xt的值,必須要在相應(yīng)的采集點(diǎn)Et采集相應(yīng)的數(shù)據(jù)項(xiàng);度量元的計(jì)算公式f(x)表示度量元和數(shù)據(jù)項(xiàng)之間的函數(shù)關(guān)系式;度量元的測試技術(shù)Ti和測試輸入Pi表示要得到該度量元的數(shù)據(jù)項(xiàng)所需要的測試技術(shù)和測試輸入,而測試技術(shù)和測試輸入決定了度量元的評價級別,即R={Li,Ti,Pi)},Li是度量元所處評價等級,Li∈{A,B,C,D},不同的評價等級對應(yīng)不同的測試技術(shù)和方法;約束條件Q表示在對某一一級指標(biāo)/子指標(biāo)進(jìn)行評估時,該度量元能否被裁減的約束.
指標(biāo)量化體系將軟件可信性的一級指標(biāo)、子指標(biāo)分解為度量元集合和數(shù)據(jù)項(xiàng)進(jìn)行描述,在已經(jīng)采集數(shù)據(jù)項(xiàng)的前提下,通過度量元函數(shù)得到度量值.這樣,對于軟件可信性實(shí)現(xiàn)從定性到定量的描述.
軟件可信性的指標(biāo)量化體系具有開放性,即允許用戶按照軟件指標(biāo)的具體要求,對度量元進(jìn)行修改和自定義.各數(shù)據(jù)采集點(diǎn)對度量元的影響、各度量元對可信子指標(biāo)的影響、各可信子指標(biāo)對可信一級指標(biāo)的影響、各一級指標(biāo)對軟件可信性的影響是不同的,可采用權(quán)值來表示影響度,相對重要的,權(quán)值高,反之,權(quán)值低.權(quán)值由專家根據(jù)用戶要求打分來定.
若想進(jìn)一步研究軟件可信性的評估工作,需要先思考如何開展軟件可信性的評估工作.由此,筆者初步建立一個評估過程[11-12],用以解決評估的工作流程問題.其步驟如下:
步驟1:確定用戶指標(biāo)集.軟件可信性評估從確定可信目標(biāo)開始.用戶首先要提出他評價軟件的目的和評價所要覆蓋的指標(biāo)范圍;評估者在分析用戶需求和系統(tǒng)性質(zhì)的基礎(chǔ)上,對指標(biāo)進(jìn)行減裁,即從指標(biāo)模型中選取符合被評軟件產(chǎn)品要求的有價值的可信指標(biāo)組成用戶指標(biāo)集.例如,金融系統(tǒng)對安全性、可靠性要求最高,而實(shí)時系統(tǒng)對有效性中的效率特性要求最高.根據(jù)用戶要求和系統(tǒng)性質(zhì)確定用戶指標(biāo)集,用以指導(dǎo)軟件可信性的評估工作,將有助于降低軟件可信性評估工作的成本、縮短評估周期.
步驟2:規(guī)定可信評價準(zhǔn)則.評價者根據(jù)用戶指標(biāo)集選擇度量元,并且為每個度量元、子指標(biāo)、一級指標(biāo)以及整個軟件建立評分等級,確定評價準(zhǔn)則.表3為某個指標(biāo)的4個等級取值范圍及所屬可信等級.假設(shè)X1,X2,X3,X4分別為4個計(jì)算所得數(shù)據(jù):
表3 某指標(biāo)的可信評價準(zhǔn)則
步驟3:確定權(quán)重系數(shù).采用專家經(jīng)驗(yàn)法等確定度量元、子指標(biāo)及一級指標(biāo)的權(quán)重系數(shù).
步驟4:確定并執(zhí)行數(shù)據(jù)采集計(jì)劃.數(shù)據(jù)采集點(diǎn)和度量元中間存在某種函數(shù)關(guān)系,要想得到度量值,必須先采集軟件測試過程中的數(shù)據(jù).采集計(jì)劃主要是確定在軟件生存周期中的各個階段進(jìn)行何種測試,采集哪些數(shù)據(jù);評估者根據(jù)采集的數(shù)據(jù),計(jì)算出某一度量元的度量值,并與可信評價準(zhǔn)則進(jìn)行比對,得出該度量元的評估結(jié)果.采用此種方法可逐一得到所有度量元的度量值.
步驟5:綜合評估.得到度量元的度量值后,采取以下步驟進(jìn)行綜合:
首先,根據(jù)專家確定的權(quán)重系數(shù),對度量指標(biāo)集中某個子指標(biāo)所含的度量元進(jìn)行加權(quán)計(jì)算,算出這一子指標(biāo)的指標(biāo)值.采用同樣的方法可以計(jì)算出被評軟件的各個子指標(biāo)的指標(biāo)值.
其次,對某個一級指標(biāo)所含的子指標(biāo)進(jìn)行加權(quán)計(jì)算,得到該一級指標(biāo)的指標(biāo)值.如果是對軟件的一級指標(biāo)進(jìn)行評估,這時可將各一級指標(biāo)的指標(biāo)值與步驟2確定的可信評價準(zhǔn)則進(jìn)行比對,得出被評軟件各一級指標(biāo)可信度的評估結(jié)果;如果是對軟件的整體可信性進(jìn)行評估,則將各一級指標(biāo)進(jìn)行加權(quán)計(jì)算,得到軟件的可信值.
最后,將該數(shù)值與可信評價標(biāo)準(zhǔn)進(jìn)行比對,給出被評軟件可信性的評估結(jié)果.
在軟件可信性指標(biāo)體系、指標(biāo)量化體系以及評估過程的基礎(chǔ)上,可以得到軟件可信性評估系統(tǒng)的構(gòu)架,如圖3所示.
圖3 軟件可信性評估系統(tǒng)
其中指標(biāo)體系和指標(biāo)量化體系構(gòu)成指標(biāo)模型層,是整個系統(tǒng)的基礎(chǔ),為軟件可信性的評估提供詳細(xì)指標(biāo)和計(jì)算方法;評估過程主要完成數(shù)據(jù)采集任務(wù)和計(jì)算評估結(jié)果的任務(wù);評估過程產(chǎn)生的結(jié)果保存在信息層,這些信息構(gòu)成一條軟件評估的“可信信息鏈”.這條信息鏈不僅提供被評軟件的一系列有關(guān)可信性的評價結(jié)果,而且對提高軟件的可信度具有重要參考價值.例如:若一個軟件產(chǎn)品的一級指標(biāo)“可維護(hù)性” 的評價結(jié)果為“不可信”[13],按照用戶指標(biāo)集找到“可維護(hù)性”的子指標(biāo)“可測性”的評價結(jié)果為“不可信”,其他子指標(biāo)的評價結(jié)果為“中等可信”或“高可信”,這樣就要分析子指標(biāo)“可測性”的度量元.按照用戶指標(biāo)集找到“可測性”的度量元有測試程度和工作量,檢查它們的評價結(jié)果知,“測試程度”的度量值為“不可信”,而“工作量”的度量值為高可信,再進(jìn)一步分析度量元“測試程度”的數(shù)據(jù)層.從用戶指標(biāo)集中找到“測試程度”的數(shù)據(jù)采集點(diǎn),包括語句覆蓋率、分支覆蓋率和測試計(jì)劃完整性,檢查每個數(shù)據(jù)的評價結(jié)果,其中“測試計(jì)劃完整性”的評價結(jié)果為“不可信”,其他的評價結(jié)果為可信,這樣就找到了問題所在.找到解決“測試問題計(jì)劃完整性”問題的方法,就可以提高“可維護(hù)性”的可信性,從而提高整個軟件產(chǎn)品的可信性.
文章基于軟件質(zhì)量等級模型的研究成果,得出包含7個質(zhì)量屬性的新的軟件質(zhì)量模型,所研究的軟件可信性就是這7個質(zhì)量屬性表現(xiàn)出來的綜合特性.對于軟件的可信性,分別從認(rèn)知軟件可信性的角度、量化可信性指標(biāo)的角度以及如何評估軟件可信性的角度對軟件可信性進(jìn)行了闡述.在此基礎(chǔ)上,構(gòu)造了包括指標(biāo)模型層、評估過程和信息層3部分的軟件可信性評估系統(tǒng).這些工作為進(jìn)一步研究軟件可信性綜合度量方法和構(gòu)建軟件可信性測評體系具有重要意義.
但是,為實(shí)現(xiàn)對軟件可信性的量化評估、得到軟件可信性的最終評價結(jié)果,必須針對指標(biāo)量化體系做進(jìn)一步的細(xì)化研究工作,如:推導(dǎo)度量模型各層的自下而上的具體函數(shù)關(guān)系,確定度量模型每一層元素的權(quán)重系數(shù),為每一個度量元、子指標(biāo)和一級指標(biāo)制定詳細(xì)的評價準(zhǔn)則,對軟件可信性的指標(biāo)量化體系分別進(jìn)行單個指標(biāo)的定量討論和指標(biāo)綜合過程的定量和定性討論,最終構(gòu)建軟件可信性的度量系統(tǒng).在今后的工作中,有必要從上述幾方面作進(jìn)一步探索和研究.
[1]國家自然科學(xué)基金委員會.國家自然科學(xué)基金重大研究計(jì)劃實(shí)施規(guī)劃書[Z].2008.
[2]NSF program announcement/Solicitation:Trusted computing[EB/OL].www.nsf.gov/pubs/2001/nsf01160/nsf01160.ht?ml#TOC,Dec,2001.
[3]Department of computer science of the technical university darmstadt.Trusted systems[EB/OL].www.dvsl.informatik.tudarmstadt.de/DVSI/research/index.html.
[4]陳火旺,王戟,董威.高可信軟件工程技術(shù)[J].電子學(xué)報(bào),2003,31(12):1934-1938.
[5]RAWASHDEH A,MATALKAH B.A new software quality model for evaluating COTS components[J].Journal of Comput?er Science,2006,2(4):373-381.
[6]JEFFREY V.Certification:Reducing the hidden costs of poor quality.reliable software technologies[J].IEEE Software,1999,16(4):22-25.
[7]NAGIB C B,CALLAOS D.Designing with a systemic total quality[J].Educational Technology,1994,34:29-36.
[8]中華人民共和國國家標(biāo)準(zhǔn).Software engineering-software product quality(Part 1):quality model:ISO/IEC 9126-1[S].Beijing,2001.
[9]萬江平.軟件工程[M].北京:清華大學(xué)出版社,2006.
[10]施寅生,鄧世偉,谷天陽.軟件安全性測試方法研究[J].微計(jì)算機(jī)信息,2008,24:1-3.
[11]中華人民共和國國家標(biāo)準(zhǔn).Information technology-software product evaluation(Part-1):general overview:ISO/IEC 14598-1[S].Beijing,1999.
[12]中華人民共和國國家標(biāo)準(zhǔn).Information technology-software product evaluation(Part-5):process for evaluation:ISO/IEC 14598-5[S].Beijing,1999.
[13]MORMAN E F,SHARI L P.Software metrics:a rigorous and practical approach[M].楊海燕,趙巍,張力,等譯,北京:機(jī)械工業(yè)出版社,2004.