涂俊翔,邸 亮,李志偉
(福州大學(xué) 機(jī)械工程及自動化學(xué)院,福州 350108)
目前國內(nèi)已有不少軟件企業(yè)通過ISO9001 認(rèn)證和各種級別的CMM 評估,但其對所開發(fā)軟件產(chǎn)品和服務(wù)質(zhì)量的促進(jìn)效果參差不齊[1].與國外成熟的軟件企業(yè)相比,國內(nèi)軟件企業(yè)在管理基礎(chǔ)、所處市場環(huán)境、文化理念等方面都存在很大差異.即使國外的質(zhì)量管理模型提供了相當(dāng)詳盡的指南,但國內(nèi)軟件企業(yè)缺少相應(yīng)管理環(huán)境,很多條款缺乏操作性,以定性分析為主的軟件質(zhì)量評估不夠精確和有效,存在明顯局限性,導(dǎo)致質(zhì)量管理、過程改進(jìn)的目標(biāo)不明確,無法使質(zhì)量保障落到實處[2].
由于軟件屬性和其質(zhì)量影響因子等大都具有模糊特性,不能用確定的數(shù)值表示,從而難以采用經(jīng)典的數(shù)學(xué)方法進(jìn)行精確度量.因此,AHP 層次分析方法、因子加權(quán)累加法和模糊綜合評價法等方法在軟件質(zhì)量度量中得到應(yīng)用[3-5].然而,層次分析法和因子加權(quán)累加法在確定權(quán)重因子時,定性成分多,且無法通過統(tǒng)計數(shù)據(jù)進(jìn)行有效校正.另外,這兩種方法都不能很好地表達(dá)各質(zhì)量影響因子間的相互依賴關(guān)系[6,7].模糊評價法則計算復(fù)雜,在確定指標(biāo)權(quán)重矢量時存在主觀性過強(qiáng)的缺點,且容易出現(xiàn)超模糊現(xiàn)象,從而無法區(qū)分誰的隸屬度更高,甚至造成質(zhì)量評估失敗[8,9].總之,這些軟件質(zhì)量度量方法能夠描述軟件系統(tǒng)質(zhì)量的一些基本特性,如功能性、易用性、效率、維護(hù)性等,但難以表達(dá)顧客價值及組織管理特性等方面的廣義質(zhì)量影響因子間復(fù)雜依賴關(guān)系.貝葉斯網(wǎng)絡(luò)則能很好地表達(dá)隨機(jī)變量的不確定性及其相關(guān)依賴性,并在不確定性推理方面有很好的優(yōu)勢[10,11],本文基于貝葉斯網(wǎng)絡(luò)推理技術(shù)構(gòu)建一種新的評估模型,對軟件質(zhì)量基本特性、顧客價值、軟件開發(fā)企業(yè)管理特性等廣義質(zhì)量特性進(jìn)行綜合性定量評估.
貝葉斯網(wǎng)絡(luò)理論將先驗知識與樣本信息相結(jié)合、變量依賴關(guān)系與概率表示相結(jié)合,是不確定知識表示和推理的理想模型.貝葉斯網(wǎng)絡(luò)是一系列變量的聯(lián)合概率分布的圖形表示,它包含兩個部分.一部分是由節(jié)點、有向弧所組成的有向無環(huán)圖(Directed Acyclic Graph ,DAG),網(wǎng)絡(luò)中每一節(jié)點代表研究領(lǐng)域中的變量,節(jié)點之間的連接關(guān)系代表變量間的條件獨立語義;另一部分是節(jié)點和節(jié)點之間的條件概率表(Conditional Probability Table,CPT),它量化了各變量間的相互依賴關(guān)系.假設(shè)貝葉斯網(wǎng)中任意節(jié)點xi的 直接雙親節(jié)點集為Pai,xi的 條件概率為P(xi|Pai).對于頂點集合X=(x1,x2,···,xn)的聯(lián)合概率分布可由下式計算:
國際標(biāo)準(zhǔn)化組織I S O 在質(zhì)量特性國際標(biāo)準(zhǔn)ISO/IEC9126 中將軟件質(zhì)量定義為:反映軟件產(chǎn)品滿足規(guī)定需求和潛在需求能力的特征和特性的總和.目前國內(nèi)軟件企業(yè)所采用的質(zhì)量特性體系,主要是在CMM/CMMI 和ISO 系列標(biāo)準(zhǔn)的基礎(chǔ)上發(fā)展而來.質(zhì)量特性體系主要側(cè)重于功能性、易用性、可靠性、性和可維護(hù)性等基本特性,未考慮軟件項目的具體開發(fā)過程方面的特性,例如用戶需求滿足、軟件企業(yè)組織管理、成本控制、進(jìn)度管理等方面特性.軟件廣義質(zhì)量特性體系則納入了這些重要特性,并針對軟件具體項目特點對這些特性指標(biāo)進(jìn)行適當(dāng)裁剪.廣義質(zhì)量特性體系如圖1所示.
圖1 軟件質(zhì)量度量的廣義質(zhì)量特性體系
基于貝葉斯網(wǎng)絡(luò)的軟件量化評估模型由軟件廣義質(zhì)量特性的度量、貝葉斯網(wǎng)絡(luò)推理模型的構(gòu)建和貝葉斯網(wǎng)絡(luò)的推理等部分組成,詳細(xì)如圖2所示.
圖2 基于貝葉斯網(wǎng)絡(luò)的軟件質(zhì)量評估
貝葉斯網(wǎng)絡(luò)能對軟件項目的質(zhì)量影響因素及其相互依賴關(guān)系進(jìn)行直觀描述.本文依據(jù)軟件質(zhì)量的廣義質(zhì)量體系將軟件質(zhì)量評估劃分為三個主要維度:基本質(zhì)量特性、顧客價值特性、組織管理特性.三個維度進(jìn)一步細(xì)分的質(zhì)量特性指標(biāo)(見表1)及其相互關(guān)系,采用貝葉斯網(wǎng)絡(luò)形式表達(dá)出來,就可以構(gòu)造出廣義軟件質(zhì)量的定量評估模型(圖3).該貝葉斯網(wǎng)絡(luò)包含三個維度節(jié)點E(基本質(zhì)量特性)、C(顧客價值特性)、O(組織管理特性).各維度節(jié)點進(jìn)一步細(xì)分的軟件質(zhì)量特性指標(biāo),可以是獨立的,也可以相互關(guān)聯(lián),它們共同決定了軟件質(zhì)量.質(zhì)量水平通過貝葉斯網(wǎng)絡(luò)的RQ_Evaluate節(jié)點狀態(tài)來表達(dá).
表1 貝葉斯網(wǎng)絡(luò)中質(zhì)量特性節(jié)點
對于具有n個節(jié)點的貝葉斯網(wǎng)絡(luò)而言,理論上有n(n-1)/2 個存在相互關(guān)系的節(jié)點耦合對.為減少網(wǎng)絡(luò)的復(fù)雜度,可基于質(zhì)量特性的具體情況及其相互影響程度,進(jìn)行適當(dāng)簡化.圖3所示網(wǎng)絡(luò)中的基本質(zhì)量維度中EF(功能性)、SF(可靠性)、IF(易用性)、CF(效率)等直接與顧客價值特性維度相連,表達(dá)了基本質(zhì)量特性與顧客價值特性之間存在重要關(guān)聯(lián)關(guān)系.同理,組織管理維度中RSF(資源占比)、CF(成本控制水平)與基本質(zhì)量維度相連,也表達(dá)了它們間重要的相互影響關(guān)系.類似的,其他重要關(guān)聯(lián)關(guān)系在圖3的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)圖中都進(jìn)行了相應(yīng)描述.
圖3 軟件質(zhì)量評估的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)
在確定貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)DAG (Directed Acylic Graph)后,也就知道了各節(jié)點的相互依賴關(guān)系,接下來需要獲得相互依賴關(guān)系定量描述的貝葉斯網(wǎng)絡(luò)參數(shù)即每個節(jié)點的條件概率表(Conditional Probability Table,CPT),從而構(gòu)造出貝葉斯網(wǎng)絡(luò)的參數(shù)模型.在識別網(wǎng)絡(luò)節(jié)點事件的基礎(chǔ)上,對各節(jié)點的狀態(tài)進(jìn)行分級處理,即對節(jié)點取值進(jìn)行離散化處理.在有大規(guī)模的樣本數(shù)據(jù)情況下,這一過程可以通過數(shù)據(jù)訓(xùn)練并利用有效的離散化方法實現(xiàn).在數(shù)據(jù)無積累或數(shù)據(jù)不充分的情形時,可通過領(lǐng)域?qū)<业慕?jīng)驗來確定.如果貝葉斯網(wǎng)絡(luò)節(jié)點狀態(tài)多,可依據(jù)領(lǐng)域?qū)<业囊庖姴⒉捎脙蓛杀容^的方式建立比較矩陣(pair-wise comparison matrix),然后通過計算來確定節(jié)點的概率.
由于在軟件質(zhì)量評估過程中往往只能獲得不完備的統(tǒng)計數(shù)據(jù),為保證貝葉斯參數(shù)的準(zhǔn)確性,這里采用EM (Expectation Maximization)迭代算法進(jìn)行參數(shù)學(xué)習(xí).EM 算法的具體步驟如下所示:
(1)對于貝葉斯網(wǎng)絡(luò)BN=(G,θm),從θm的某個初始值θm0開始迭代(初始值可隨機(jī)產(chǎn)生);
(2)求出不完整數(shù)據(jù)集的充分統(tǒng)計量的期望值,對其進(jìn)行修正,成為完備數(shù)據(jù);
(3)基于修正后的數(shù)據(jù)重新計算θm.
由于貝葉斯網(wǎng)絡(luò)模型包含軟件質(zhì)量評價結(jié)果并不是一個具體的數(shù)值,而是一個概率事件,因此其概率值的大小反映了軟件處于該質(zhì)量水平的可能性.
在貝葉斯網(wǎng)絡(luò)模型中,軟件質(zhì)量評估結(jié)果(RQ_Evluate)以概率值表示,它的各個狀態(tài)取值以離散化形式存在,對其進(jìn)行評估即是在給定證據(jù)節(jié)點(Evidence)條件下,計算RQ_Evluate 各種可能狀態(tài)的發(fā)生概率.另一方面,若已知軟件處于某種質(zhì)量水平,可依據(jù)貝葉斯網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)進(jìn)行反向推理,找出影響軟件質(zhì)量的關(guān)鍵要素,形成相應(yīng)的診斷結(jié)果,為軟件改進(jìn)提供指導(dǎo).
以某汽車企業(yè)開發(fā)的新產(chǎn)品項目管理信息系統(tǒng)為例.該系統(tǒng)將包括了項目信息管理模塊、項目任務(wù)管理模塊、項目進(jìn)度管理模塊、項目質(zhì)量管理模塊和項目HSE(Health,健康;Environment,環(huán)境;Safety,安全)管理模塊.現(xiàn)基于用戶體驗反饋表和領(lǐng)域?qū)<业囊庖?利用前述的貝葉斯網(wǎng)絡(luò)質(zhì)量評估模型,對該軟件系統(tǒng)進(jìn)行質(zhì)量評估.
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如前述圖3所示,設(shè)網(wǎng)絡(luò)中各節(jié)點按質(zhì)量程度劃分為高(H)、中(M)、低(L)三種狀態(tài),用2,1,0 表示.接下來需確定各節(jié)點參數(shù),它包括以下兩個步驟:第一,確定非根節(jié)點的條件概率.這些概率反映了軟件項目各具體質(zhì)量特性的狀況及其相互影響程度等.它們可結(jié)合用戶體驗反饋表、質(zhì)量管理流程記錄,通過建立比較矩陣的方法確定.第二,確定根節(jié)點的先驗概率.它們結(jié)合項目管理人員、開發(fā)人員及領(lǐng)域?qū)<业囊庖姶_定.先驗概率會通過貝葉斯網(wǎng)絡(luò)推理進(jìn)行修正,即依據(jù)軟件項目及系統(tǒng)的實際情形,通過貝葉斯網(wǎng)絡(luò)的推理計算得到更準(zhǔn)確的后驗概率.根節(jié)點的先驗概率如表2所示.
表2 貝葉斯網(wǎng)絡(luò)中質(zhì)量特性節(jié)點先驗概率
對該軟件系統(tǒng)質(zhì)量評估過程即是計算RQ_Evluate節(jié)點概率值的過程,即在給定的質(zhì)量特性狀態(tài)及其概率取值的條件下,計算出該軟件系統(tǒng)(RQ_Evluate)各可能狀態(tài)的發(fā)生概率.結(jié)合前面確定的根節(jié)點先驗概率和非根節(jié)點的條件概率,通過Hugin 軟件進(jìn)行推理,結(jié)果見表3.
表3 軟件質(zhì)量評估結(jié)果
從這里可以看到,貝葉斯網(wǎng)絡(luò)質(zhì)量性評估模型不返回軟件質(zhì)量評估的特定值,而是返回RQ_Evluate 處于各可能狀態(tài)的概率值.概率最高的狀態(tài)可視為軟件質(zhì)量評估的類別.從結(jié)果可以看出,P(RQ_Evluate=1)=0.56 為最高概率,因此該信息系統(tǒng)的質(zhì)量水平為中等(M).這時,可依據(jù)貝葉斯網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)進(jìn)行反向診斷推理,找到影響信息系統(tǒng)質(zhì)量的癥結(jié)所在.
依據(jù)項目管理經(jīng)驗及測試記錄,在部分已知的證據(jù)節(jié)點變量FF=2、RF=2、EF=2、MF=2、TRF=1、SF=2、RPF=2、CF=2、RSF=1 條件下,通過貝葉斯網(wǎng)絡(luò)反向推理,計算可得到表4的診斷結(jié)果.由表4可知,影響該項目管理信息系統(tǒng)質(zhì)量水平的癥結(jié)在于可移植性(TF)、客戶情境貼合度(SFF)等質(zhì)量特性水平處于低狀態(tài).經(jīng)過分析發(fā)現(xiàn),這是由于該信息系統(tǒng)部分的接口設(shè)計問題和有些關(guān)鍵用戶需求未得到充分滿足,因此可針對性地改進(jìn)相應(yīng)的軟件接口設(shè)計及部分用戶界面.
本文將貝葉斯網(wǎng)絡(luò)的不確定性推理技術(shù)引入到軟件質(zhì)量評估模型中,實現(xiàn)了面向軟件廣義質(zhì)量特性體系的軟件質(zhì)量量化評估,并能夠?qū)υu估結(jié)果進(jìn)行反向診斷推理,找到影響軟件質(zhì)量的主要特性指標(biāo),為軟件質(zhì)量的改進(jìn)提供決策依據(jù).
表4 基于貝葉斯網(wǎng)絡(luò)的反向推理