涂俊翔,邸 亮,李志偉
(福州大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,福州 350108)
目前國內(nèi)已有不少軟件企業(yè)通過ISO9001 認(rèn)證和各種級(jí)別的CMM 評(píng)估,但其對(duì)所開發(fā)軟件產(chǎn)品和服務(wù)質(zhì)量的促進(jìn)效果參差不齊[1].與國外成熟的軟件企業(yè)相比,國內(nèi)軟件企業(yè)在管理基礎(chǔ)、所處市場(chǎng)環(huán)境、文化理念等方面都存在很大差異.即使國外的質(zhì)量管理模型提供了相當(dāng)詳盡的指南,但國內(nèi)軟件企業(yè)缺少相應(yīng)管理環(huán)境,很多條款缺乏操作性,以定性分析為主的軟件質(zhì)量評(píng)估不夠精確和有效,存在明顯局限性,導(dǎo)致質(zhì)量管理、過程改進(jìn)的目標(biāo)不明確,無法使質(zhì)量保障落到實(shí)處[2].
由于軟件屬性和其質(zhì)量影響因子等大都具有模糊特性,不能用確定的數(shù)值表示,從而難以采用經(jīng)典的數(shù)學(xué)方法進(jìn)行精確度量.因此,AHP 層次分析方法、因子加權(quán)累加法和模糊綜合評(píng)價(jià)法等方法在軟件質(zhì)量度量中得到應(yīng)用[3-5].然而,層次分析法和因子加權(quán)累加法在確定權(quán)重因子時(shí),定性成分多,且無法通過統(tǒng)計(jì)數(shù)據(jù)進(jìn)行有效校正.另外,這兩種方法都不能很好地表達(dá)各質(zhì)量影響因子間的相互依賴關(guān)系[6,7].模糊評(píng)價(jià)法則計(jì)算復(fù)雜,在確定指標(biāo)權(quán)重矢量時(shí)存在主觀性過強(qiáng)的缺點(diǎn),且容易出現(xiàn)超模糊現(xiàn)象,從而無法區(qū)分誰的隸屬度更高,甚至造成質(zhì)量評(píng)估失敗[8,9].總之,這些軟件質(zhì)量度量方法能夠描述軟件系統(tǒng)質(zhì)量的一些基本特性,如功能性、易用性、效率、維護(hù)性等,但難以表達(dá)顧客價(jià)值及組織管理特性等方面的廣義質(zhì)量影響因子間復(fù)雜依賴關(guān)系.貝葉斯網(wǎng)絡(luò)則能很好地表達(dá)隨機(jī)變量的不確定性及其相關(guān)依賴性,并在不確定性推理方面有很好的優(yōu)勢(shì)[10,11],本文基于貝葉斯網(wǎng)絡(luò)推理技術(shù)構(gòu)建一種新的評(píng)估模型,對(duì)軟件質(zhì)量基本特性、顧客價(jià)值、軟件開發(fā)企業(yè)管理特性等廣義質(zhì)量特性進(jìn)行綜合性定量評(píng)估.
貝葉斯網(wǎng)絡(luò)理論將先驗(yàn)知識(shí)與樣本信息相結(jié)合、變量依賴關(guān)系與概率表示相結(jié)合,是不確定知識(shí)表示和推理的理想模型.貝葉斯網(wǎng)絡(luò)是一系列變量的聯(lián)合概率分布的圖形表示,它包含兩個(gè)部分.一部分是由節(jié)點(diǎn)、有向弧所組成的有向無環(huán)圖(Directed Acyclic Graph ,DAG),網(wǎng)絡(luò)中每一節(jié)點(diǎn)代表研究領(lǐng)域中的變量,節(jié)點(diǎn)之間的連接關(guān)系代表變量間的條件獨(dú)立語義;另一部分是節(jié)點(diǎn)和節(jié)點(diǎn)之間的條件概率表(Conditional Probability Table,CPT),它量化了各變量間的相互依賴關(guān)系.假設(shè)貝葉斯網(wǎng)中任意節(jié)點(diǎn)xi的 直接雙親節(jié)點(diǎn)集為Pai,xi的 條件概率為P(xi|Pai).對(duì)于頂點(diǎn)集合X=(x1,x2,···,xn)的聯(lián)合概率分布可由下式計(jì)算:

國際標(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ù)性等基本特性,未考慮軟件項(xiàng)目的具體開發(fā)過程方面的特性,例如用戶需求滿足、軟件企業(yè)組織管理、成本控制、進(jìn)度管理等方面特性.軟件廣義質(zhì)量特性體系則納入了這些重要特性,并針對(duì)軟件具體項(xiàng)目特點(diǎn)對(duì)這些特性指標(biāo)進(jìn)行適當(dāng)裁剪.廣義質(zhì)量特性體系如圖1所示.

圖1 軟件質(zhì)量度量的廣義質(zhì)量特性體系
基于貝葉斯網(wǎng)絡(luò)的軟件量化評(píng)估模型由軟件廣義質(zhì)量特性的度量、貝葉斯網(wǎng)絡(luò)推理模型的構(gòu)建和貝葉斯網(wǎng)絡(luò)的推理等部分組成,詳細(xì)如圖2所示.

圖2 基于貝葉斯網(wǎng)絡(luò)的軟件質(zhì)量評(píng)估
貝葉斯網(wǎng)絡(luò)能對(duì)軟件項(xiàng)目的質(zhì)量影響因素及其相互依賴關(guān)系進(jìn)行直觀描述.本文依據(jù)軟件質(zhì)量的廣義質(zhì)量體系將軟件質(zhì)量評(píng)估劃分為三個(gè)主要維度:基本質(zhì)量特性、顧客價(jià)值特性、組織管理特性.三個(gè)維度進(jìn)一步細(xì)分的質(zhì)量特性指標(biāo)(見表1)及其相互關(guān)系,采用貝葉斯網(wǎng)絡(luò)形式表達(dá)出來,就可以構(gòu)造出廣義軟件質(zhì)量的定量評(píng)估模型(圖3).該貝葉斯網(wǎng)絡(luò)包含三個(gè)維度節(jié)點(diǎn)E(基本質(zhì)量特性)、C(顧客價(jià)值特性)、O(組織管理特性).各維度節(jié)點(diǎn)進(jìn)一步細(xì)分的軟件質(zhì)量特性指標(biāo),可以是獨(dú)立的,也可以相互關(guān)聯(lián),它們共同決定了軟件質(zhì)量.質(zhì)量水平通過貝葉斯網(wǎng)絡(luò)的RQ_Evaluate節(jié)點(diǎn)狀態(tài)來表達(dá).

表1 貝葉斯網(wǎng)絡(luò)中質(zhì)量特性節(jié)點(diǎn)
對(duì)于具有n個(gè)節(jié)點(diǎn)的貝葉斯網(wǎng)絡(luò)而言,理論上有n(n-1)/2 個(gè)存在相互關(guān)系的節(jié)點(diǎn)耦合對(duì).為減少網(wǎng)絡(luò)的復(fù)雜度,可基于質(zhì)量特性的具體情況及其相互影響程度,進(jìn)行適當(dāng)簡(jiǎn)化.圖3所示網(wǎng)絡(luò)中的基本質(zhì)量維度中EF(功能性)、SF(可靠性)、IF(易用性)、CF(效率)等直接與顧客價(jià)值特性維度相連,表達(dá)了基本質(zhì)量特性與顧客價(jià)值特性之間存在重要關(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ì)量評(píng)估的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)
在確定貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)DAG (Directed Acylic Graph)后,也就知道了各節(jié)點(diǎn)的相互依賴關(guān)系,接下來需要獲得相互依賴關(guān)系定量描述的貝葉斯網(wǎng)絡(luò)參數(shù)即每個(gè)節(jié)點(diǎn)的條件概率表(Conditional Probability Table,CPT),從而構(gòu)造出貝葉斯網(wǎng)絡(luò)的參數(shù)模型.在識(shí)別網(wǎng)絡(luò)節(jié)點(diǎn)事件的基礎(chǔ)上,對(duì)各節(jié)點(diǎn)的狀態(tài)進(jìn)行分級(jí)處理,即對(duì)節(jié)點(diǎn)取值進(jìn)行離散化處理.在有大規(guī)模的樣本數(shù)據(jù)情況下,這一過程可以通過數(shù)據(jù)訓(xùn)練并利用有效的離散化方法實(shí)現(xiàn).在數(shù)據(jù)無積累或數(shù)據(jù)不充分的情形時(shí),可通過領(lǐng)域?qū)<业慕?jīng)驗(yàn)來確定.如果貝葉斯網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)多,可依據(jù)領(lǐng)域?qū)<业囊庖姴⒉捎脙蓛杀容^的方式建立比較矩陣(pair-wise comparison matrix),然后通過計(jì)算來確定節(jié)點(diǎn)的概率.
由于在軟件質(zhì)量評(píng)估過程中往往只能獲得不完備的統(tǒng)計(jì)數(shù)據(jù),為保證貝葉斯參數(shù)的準(zhǔn)確性,這里采用EM (Expectation Maximization)迭代算法進(jìn)行參數(shù)學(xué)習(xí).EM 算法的具體步驟如下所示:
(1)對(duì)于貝葉斯網(wǎng)絡(luò)BN=(G,θm),從θm的某個(gè)初始值θm0開始迭代(初始值可隨機(jī)產(chǎn)生);
(2)求出不完整數(shù)據(jù)集的充分統(tǒng)計(jì)量的期望值,對(duì)其進(jìn)行修正,成為完備數(shù)據(jù);
(3)基于修正后的數(shù)據(jù)重新計(jì)算θm.
由于貝葉斯網(wǎng)絡(luò)模型包含軟件質(zhì)量評(píng)價(jià)結(jié)果并不是一個(gè)具體的數(shù)值,而是一個(gè)概率事件,因此其概率值的大小反映了軟件處于該質(zhì)量水平的可能性.
在貝葉斯網(wǎng)絡(luò)模型中,軟件質(zhì)量評(píng)估結(jié)果(RQ_Evluate)以概率值表示,它的各個(gè)狀態(tài)取值以離散化形式存在,對(duì)其進(jìn)行評(píng)估即是在給定證據(jù)節(jié)點(diǎn)(Evidence)條件下,計(jì)算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)品項(xiàng)目管理信息系統(tǒng)為例.該系統(tǒng)將包括了項(xiàng)目信息管理模塊、項(xiàng)目任務(wù)管理模塊、項(xiàng)目進(jìn)度管理模塊、項(xiàng)目質(zhì)量管理模塊和項(xiàng)目HSE(Health,健康;Environment,環(huán)境;Safety,安全)管理模塊.現(xiàn)基于用戶體驗(yàn)反饋表和領(lǐng)域?qū)<业囊庖?利用前述的貝葉斯網(wǎng)絡(luò)質(zhì)量評(píng)估模型,對(duì)該軟件系統(tǒng)進(jìn)行質(zhì)量評(píng)估.
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如前述圖3所示,設(shè)網(wǎng)絡(luò)中各節(jié)點(diǎn)按質(zhì)量程度劃分為高(H)、中(M)、低(L)三種狀態(tài),用2,1,0 表示.接下來需確定各節(jié)點(diǎn)參數(shù),它包括以下兩個(gè)步驟:第一,確定非根節(jié)點(diǎn)的條件概率.這些概率反映了軟件項(xiàng)目各具體質(zhì)量特性的狀況及其相互影響程度等.它們可結(jié)合用戶體驗(yàn)反饋表、質(zhì)量管理流程記錄,通過建立比較矩陣的方法確定.第二,確定根節(jié)點(diǎn)的先驗(yàn)概率.它們結(jié)合項(xiàng)目管理人員、開發(fā)人員及領(lǐng)域?qū)<业囊庖姶_定.先驗(yàn)概率會(huì)通過貝葉斯網(wǎng)絡(luò)推理進(jìn)行修正,即依據(jù)軟件項(xiàng)目及系統(tǒng)的實(shí)際情形,通過貝葉斯網(wǎng)絡(luò)的推理計(jì)算得到更準(zhǔn)確的后驗(yàn)概率.根節(jié)點(diǎn)的先驗(yàn)概率如表2所示.

表2 貝葉斯網(wǎng)絡(luò)中質(zhì)量特性節(jié)點(diǎn)先驗(yàn)概率
對(duì)該軟件系統(tǒng)質(zhì)量評(píng)估過程即是計(jì)算RQ_Evluate節(jié)點(diǎn)概率值的過程,即在給定的質(zhì)量特性狀態(tài)及其概率取值的條件下,計(jì)算出該軟件系統(tǒng)(RQ_Evluate)各可能狀態(tài)的發(fā)生概率.結(jié)合前面確定的根節(jié)點(diǎn)先驗(yàn)概率和非根節(jié)點(diǎn)的條件概率,通過Hugin 軟件進(jìn)行推理,結(jié)果見表3.

表3 軟件質(zhì)量評(píng)估結(jié)果
從這里可以看到,貝葉斯網(wǎng)絡(luò)質(zhì)量性評(píng)估模型不返回軟件質(zhì)量評(píng)估的特定值,而是返回RQ_Evluate 處于各可能狀態(tài)的概率值.概率最高的狀態(tài)可視為軟件質(zhì)量評(píng)估的類別.從結(jié)果可以看出,P(RQ_Evluate=1)=0.56 為最高概率,因此該信息系統(tǒng)的質(zhì)量水平為中等(M).這時(shí),可依據(jù)貝葉斯網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)進(jìn)行反向診斷推理,找到影響信息系統(tǒng)質(zhì)量的癥結(jié)所在.
依據(jù)項(xiàng)目管理經(jīng)驗(yàn)及測(cè)試記錄,在部分已知的證據(jù)節(jié)點(diǎn)變量FF=2、RF=2、EF=2、MF=2、TRF=1、SF=2、RPF=2、CF=2、RSF=1 條件下,通過貝葉斯網(wǎng)絡(luò)反向推理,計(jì)算可得到表4的診斷結(jié)果.由表4可知,影響該項(xiàng)目管理信息系統(tǒng)質(zhì)量水平的癥結(jié)在于可移植性(TF)、客戶情境貼合度(SFF)等質(zhì)量特性水平處于低狀態(tài).經(jīng)過分析發(fā)現(xiàn),這是由于該信息系統(tǒng)部分的接口設(shè)計(jì)問題和有些關(guān)鍵用戶需求未得到充分滿足,因此可針對(duì)性地改進(jìn)相應(yīng)的軟件接口設(shè)計(jì)及部分用戶界面.
本文將貝葉斯網(wǎng)絡(luò)的不確定性推理技術(shù)引入到軟件質(zhì)量評(píng)估模型中,實(shí)現(xiàn)了面向軟件廣義質(zhì)量特性體系的軟件質(zhì)量量化評(píng)估,并能夠?qū)υu(píng)估結(jié)果進(jìn)行反向診斷推理,找到影響軟件質(zhì)量的主要特性指標(biāo),為軟件質(zhì)量的改進(jìn)提供決策依據(jù).

表4 基于貝葉斯網(wǎng)絡(luò)的反向推理
計(jì)算機(jī)系統(tǒng)應(yīng)用2019年4期