王 楠, 余建坤
(云南財(cái)經(jīng)大學(xué) 信息學(xué)院,昆明 650021)
軟件工程過程是指開發(fā)或維護(hù)軟件及其相關(guān)產(chǎn)品的一系列活動(dòng). 一個(gè)完整的軟件工程開發(fā)過程包括軟件概念提出、前期需求分析、軟件結(jié)構(gòu)設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、編碼過程、軟件測(cè)試過程6個(gè)過程[1]. 隨著科技的發(fā)展,軟件的系統(tǒng)規(guī)模也在不斷擴(kuò)大,復(fù)雜程度日益加大,需求分析作為整開發(fā)過程的基礎(chǔ),在軟件工程中的重要程度和地位越來越被人們所認(rèn)可. 據(jù)統(tǒng)計(jì)、有超過半數(shù)以上的軟件工程項(xiàng)目存在前期需求分析不當(dāng)?shù)膯栴},許多項(xiàng)目也因此導(dǎo)致延期或失敗[2]. 軟件成本估算問題作為前期需求的重中之重,也越來越被人們所重視.
如何對(duì)軟件項(xiàng)目進(jìn)行精準(zhǔn)成本估算,一直是軟件工程和軟件項(xiàng)目管理中最為重要且最具挑戰(zhàn)問題之一.軟件成本估算是進(jìn)行有效的項(xiàng)目計(jì)劃、跟蹤和控制的基礎(chǔ). 依照合理的估計(jì)結(jié)果,不僅能夠制定切實(shí)可行的目標(biāo),還可對(duì)軟件的成本、進(jìn)度與質(zhì)量進(jìn)行權(quán)衡,實(shí)施有效的風(fēng)險(xiǎn)管理,并為項(xiàng)目管理者的決策提供有力的支撐和依據(jù). 不準(zhǔn)確的估計(jì)則會(huì)造成軟件工程項(xiàng)目的延期、超支甚至項(xiàng)目失敗,嚴(yán)重的還會(huì)損害企業(yè)的商業(yè)形象和信譽(yù).
圖1 軟件工程流程
Standish組織在 1995 年公布的軟件工程報(bào)告顯示,在來自國際上350個(gè)組織的 8000個(gè)軟件工程項(xiàng)目中,只有16.2%項(xiàng)目被定義為“Succeeded”,即該項(xiàng)目在預(yù)算和預(yù)期內(nèi)完成; 31.1%的項(xiàng)目被定義為“Falied”,即該項(xiàng)目未能按時(shí)完成或者被取消; 剩下的52.7%被定義為“Challenged”,即雖然該項(xiàng)目被完成,但預(yù)算超出或者項(xiàng)目完成不達(dá)標(biāo)[3]. 2004 年,Standish組織的再次公布其統(tǒng)計(jì)數(shù)據(jù),統(tǒng)計(jì)項(xiàng)目數(shù)累計(jì)超過50000多個(gè),根據(jù)其公布的結(jié)果顯示,“Succeeded”項(xiàng)目所占比例為29%,“Falied”項(xiàng)目所占比例為 29%,有所下降,而“Challenged”項(xiàng)目比例仍有53%[4].
雖然有許多學(xué)者和專家認(rèn)為在Standish組織公布的報(bào)告中關(guān)于軟件成本預(yù)算超支89%的數(shù)據(jù)被過分夸大,但有一點(diǎn)卻能夠取得共識(shí),即不精準(zhǔn)的軟件成本估算與需求不穩(wěn)定并列,是造成軟件工程項(xiàng)目失敗和超期的最主要的的兩大因素.
軟件成本估算和方法和理論有很多種類和形式,最早的軟件成本估算是上 60 年代提出的SDC (System Development Corporation)方法,一直到如今,關(guān)于軟件成本度量方法主要有兩種方法:① 基于模型的軟件成本估算方法; ② 基于類比估算軟件成本估算方法[5].
圖2 Standish組織統(tǒng)計(jì)數(shù)據(jù)
基于模型的軟件成本估算方法是通過將影響軟件工程項(xiàng)目的相關(guān)因素如項(xiàng)目復(fù)雜性、相關(guān)管理經(jīng)驗(yàn)、團(tuán)隊(duì)經(jīng)驗(yàn)等與軟件項(xiàng)目的相關(guān)指標(biāo)例如工作量、工作環(huán)境、工作時(shí)長等之間存在著可用公式表示的確定關(guān)系,并判定它對(duì)工作量所產(chǎn)生影響的程度,再從參數(shù)得到成本估算的一系列規(guī)則、公式. 以期得到最佳的模型算法表達(dá)形式,然而基于模型的軟件成本估算方法難以用在沒有前例的場(chǎng)合,并且不能處理異常情況等的問題. 而且算法復(fù)雜度往往比較高,所以基于模型的軟件成本估算方法存在一定缺陷[6].
基于類比的方法是是采用基于相似性度量的方法進(jìn)行軟件成本的估算. 即通過對(duì)一個(gè)或多個(gè)已完成的軟件工程項(xiàng)目項(xiàng)目與新的項(xiàng)目之間的對(duì)比來預(yù)測(cè)當(dāng)前項(xiàng)目的成本與進(jìn)度. 在軟件成本估算中,需要當(dāng)前問題抽象為待估算的項(xiàng)目時(shí),每個(gè)實(shí)例即指已完成的軟件項(xiàng)目,通過案例識(shí)別、案例檢索以及案例適配3個(gè)步驟進(jìn)行軟件實(shí)例之間成本相似性估算. 在軟件成本估算問題上,經(jīng)常采用的相似性度量方法有歐式距離、熵度量、模糊度量等,例如文獻(xiàn)[7]提出一種基于基于協(xié)同過濾方法的軟件成本度量方法,通過用戶評(píng)分來定義屬性權(quán)重,然而這種方法依然是一種基于專家評(píng)論的方法,然而軟件工程十分復(fù)雜,單一的專家定義權(quán)重精確度并不高,用戶的個(gè)人偏好、經(jīng)驗(yàn)差異與專業(yè)局限性都可能為估算的準(zhǔn)確性帶來風(fēng)險(xiǎn),文獻(xiàn)[8]提出一種基于相似度的軟件成本度量方法,根據(jù)不同屬性的類型采用不同的度量公式,例如歐式距離,余弦公式等,然而這種方法依然是采用單一的度量公式來度量軟件成本相似性,而且單一的采用歐式距離等公式在軟件成本度量方面精度比較低. 文獻(xiàn)[9]借鑒改進(jìn)了Sheperd等人關(guān)于類比估算的方法,提出來采用提取相似項(xiàng)目、決定最相似的項(xiàng)目等4個(gè)步驟來進(jìn)行軟件成本相似性度量,并根據(jù)不同的屬性類別選用不同相似性度量方法,然而其依然是采用單一的度量公式進(jìn)行軟件成本相似性度量、并沒有考慮如何使度量最優(yōu)化的問題,其方法精確度并不高[10].
本文采用類比估算方法,提出一種采用皮爾遜相關(guān)系數(shù)的度量方法,并結(jié)合TOPSIS決策方法,采用專家評(píng)估和客觀權(quán)重綜合的方法,提出一種的基于皮爾遜相關(guān)系數(shù)的軟件成本相似性度量方法,來進(jìn)行軟件成本的相似性估算,通過并通過Desharnais數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn)驗(yàn)證,證明本方法在軟件成本估算問題上相對(duì)歐式距離和其他方法在檢測(cè)精度上具有一定優(yōu)勢(shì).
相關(guān)系數(shù)(Correlation Coefficient)又稱皮爾遜相關(guān)系數(shù). 是由著名英國數(shù)學(xué)家卡爾·皮爾遜于首次提出的一個(gè)統(tǒng)計(jì)學(xué)指標(biāo). 相關(guān)系數(shù)是用于反映所求變量之間相關(guān)關(guān)系密切程度的統(tǒng)計(jì)指標(biāo). 相關(guān)系數(shù)是按積差方法計(jì)算,同樣以兩變量與各自平均值的離差為基礎(chǔ),通過兩個(gè)離差相乘來反映兩變量之間相關(guān)程度. 皮爾遜相關(guān)系數(shù)并不是唯一的相關(guān)系數(shù),但是卻是最常見的相關(guān)系數(shù). 皮爾遜相關(guān)關(guān)系是一種非確定性的關(guān)系,它是用來描述變量之間線性相關(guān)程度的量.
定義1. 假設(shè)存在隨機(jī)變量X,Y是兩個(gè)隨機(jī)分布,為X,Y的期望,則X與Y的協(xié)方差Cov(X,Y)被定義為:
定義2. 相關(guān)系數(shù) ρxy為:
相關(guān)系數(shù) ρxy取值在-1到1之間,ρxy=0時(shí),稱X,Y不相關(guān);時(shí),稱X,Y完全相關(guān),此時(shí),X,Y之間具有線性函數(shù)關(guān)系;時(shí),X的變動(dòng)引起Y的部分變動(dòng),的值越大,X的變動(dòng)引起Y的變動(dòng)就越大,時(shí)稱為高度相關(guān),當(dāng)時(shí)稱為低度相關(guān),其它時(shí)候?yàn)橹卸认嚓P(guān).
最優(yōu)劣解距離法(Technique for Order Preference by Similarity to an Ideal Solution,TOPSIS)是由C. L.Hwang和K. Yoon于1981年首次提出. TOPSIS是處理真實(shí)世界中的多屬性或多標(biāo)準(zhǔn)決策(MADM/MCDM)問題的主要技術(shù)之一[11]. 它幫助決策者組織待解決的問題,并對(duì)替代品進(jìn)行分析,比較和排名. 從而進(jìn)行合理的選擇.
Topsis方法的具體過程如下:
1)對(duì)特征矩陣進(jìn)行規(guī)范化處理,得到規(guī)格化向量nij,建立關(guān)于規(guī)格化向量nij的規(guī)范化矩陣.
2)通過計(jì)算權(quán)重規(guī)格化值vij建立關(guān)于權(quán)重規(guī)范化值的vij權(quán)重規(guī)范化矩陣
其中,wij是第j個(gè)指標(biāo)的權(quán)重.
3)確定正理想解Z+和負(fù)理想理Z-
其中,J1為收益性指標(biāo)集,表示在第i個(gè)指標(biāo)上的最優(yōu)值.J2是損耗性指標(biāo)集,表示在第i個(gè)指標(biāo)上的最劣值.收益性指標(biāo)越大,對(duì)評(píng)估結(jié)果越有利; 損耗性指標(biāo)越小,對(duì)評(píng)估結(jié)果越有利. 反之,則對(duì)評(píng)估結(jié)果不利.
4)計(jì)算距離尺度,即計(jì)算每個(gè)目標(biāo)到正理想解和負(fù)理想解的距離:
5)計(jì)算目標(biāo)與理想解之間的的相對(duì)接近度.
6)排列偏好順序.
在軟件成本的估算過程中,不同指標(biāo)之間權(quán)重的確定問題尤為重要,大多數(shù)相似性度量方法一般根據(jù)專家的判斷或者由先驗(yàn)經(jīng)驗(yàn)來確定[12-15],但這種方法主觀性太強(qiáng),本文采用基于主觀權(quán)重和客觀權(quán)重的混合權(quán)重確定方法,既通過專家判斷,又采用基于信息熵的權(quán)重確定方法. 具體方法如下.
假設(shè)評(píng)估體系中具有n個(gè)評(píng)價(jià)對(duì)象,m個(gè)評(píng)估指標(biāo),評(píng)價(jià)矩陣為:
1) 首先,對(duì)評(píng)價(jià)矩陣A進(jìn)行標(biāo)準(zhǔn)化處理.
2)確定各個(gè)指標(biāo)之間的權(quán)重. 在此我們采用熵權(quán)法進(jìn)行客觀權(quán)重的確定,采用熵公式計(jì)算每個(gè)屬性的平均信息量
3)設(shè)m個(gè)評(píng)價(jià)指標(biāo)的主觀權(quán)重分別為θ1,θ2,···,θj,則第i個(gè)指標(biāo)的真實(shí)權(quán)重被定義為:
5)計(jì)算距離尺度,即采用相關(guān)系數(shù)計(jì)算每個(gè)目標(biāo)A到正理想解和負(fù)理想解之間的的距離
為了檢驗(yàn)基于本文采用的相關(guān)系數(shù)度量方法的軟件成本估算方法,設(shè)計(jì)試驗(yàn),并采用公開數(shù)據(jù)集Desharnais進(jìn)行本測(cè)評(píng)實(shí)驗(yàn),Desharnais數(shù)據(jù)集是由加拿大軟件行業(yè)的統(tǒng)計(jì)結(jié)果數(shù)據(jù),它最早是在1989年由Jean-Marc Desharnais在對(duì)項(xiàng)目開發(fā)功能點(diǎn)數(shù)據(jù)的統(tǒng)計(jì)分析中應(yīng)用. 在Desharnais數(shù)據(jù)集中有12種項(xiàng)目屬性.
表1 Desharnais數(shù)據(jù)集的項(xiàng)目屬性
在本實(shí)驗(yàn)中,省略了4個(gè)數(shù)據(jù)不完整的項(xiàng)目,只利用其中77個(gè)完整的項(xiàng)目的數(shù)據(jù)進(jìn)行試驗(yàn).
選取數(shù)據(jù)集中Team Exp、Manager Exp、Length、Transact、Entities、Points ajust、Envergure、Points non ajust、Langage 9種屬性做為本文軟件成本估算的屬性,Effort屬性作為估算的目標(biāo)屬性對(duì)預(yù)測(cè)結(jié)果的誤差進(jìn)行計(jì)算.
為了驗(yàn)證成本估算的有效性與準(zhǔn)確性,需要引入適當(dāng)?shù)脑u(píng)價(jià)標(biāo)準(zhǔn). 常用的評(píng)價(jià)標(biāo)準(zhǔn)有許多,我們采用以下兩種作為標(biāo)準(zhǔn):
① 平均誤差率(MMRE),用于評(píng)估軟件成本估算的平均誤差情況,計(jì)算公式如下:
② Pred(x),用于評(píng)價(jià)成本估算的補(bǔ)充標(biāo)準(zhǔn),用于計(jì)算標(biāo)準(zhǔn)誤差低于x的項(xiàng)目數(shù)量在整個(gè)數(shù)據(jù)集中所占的比例.x的值通常設(shè)置為25%. 計(jì)算公式如下:
其中,k為標(biāo)準(zhǔn)誤差低于x的項(xiàng)目數(shù)量.
為了驗(yàn)證本文所提方法在軟件方法估算中的準(zhǔn)確性,與經(jīng)典的歐式距離和文獻(xiàn)[16]所提及的相似性度量方法進(jìn)行比較實(shí)驗(yàn),比較結(jié)果如表2.
表2 實(shí)驗(yàn)結(jié)果
從上述實(shí)驗(yàn)結(jié)果可以看出,本文提出的基于相關(guān)系數(shù)度量方法的軟件成本估算方法,在結(jié)果上優(yōu)于經(jīng)典的歐式距離和文獻(xiàn)[16]提出的相似性度量公式.
本文針對(duì)軟件工程項(xiàng)目中需求分析階段軟件成本估算問題進(jìn)行研究,在皮爾遜相關(guān)系數(shù)的基礎(chǔ)上,綜合考慮了主觀權(quán)重和客觀權(quán)重,采用TOPSIS方法建立相關(guān)模型,提出一種基于相關(guān)系數(shù)的TOPSIS方法用于軟件成本估算問題研究,并采用公開數(shù)據(jù)集Desharnais進(jìn)行試驗(yàn)驗(yàn)證. 實(shí)驗(yàn)結(jié)果表明,本文所采用基于相關(guān)系數(shù)的相似性度量方法較以往的方法有更高的準(zhǔn)確率.然而,本文所提出的方法和研究工作只是單純聚焦于處理與工作量相關(guān)的項(xiàng)目特征而沒有忽略團(tuán)隊(duì)特性、員工發(fā)展等主觀因素方面的考慮. 因此,在未來的研究中,會(huì)應(yīng)將包括軟件工程成員的性格、潛力、團(tuán)隊(duì)氛圍等諸多特性充分考慮在內(nèi)以更加準(zhǔn)確地進(jìn)行軟件成本估算.
1 史濟(jì)民,顧春華,鄭紅. 軟件工程:原理、方法與應(yīng)用. 北京:高等教育出版社,2009.
2 楊芙清. 軟件工程技術(shù)發(fā)展思索. 軟件學(xué)報(bào),2005,16(1):1-7.
3 The Standish Group. CHAOS report. http://www.standish group.com. 1995.
4 The Standish Group. 2004 the 3rd quarter research report.http://www.standishgroup.com,2004.
5 李明樹,何梅,楊達(dá),等. 軟件成本估算方法及應(yīng)用. 軟件學(xué)報(bào),2007,18(4):775-795.
6 Boehm BW,Valerdi R. Achievements and challenges in software resource estimation[Technical Report]. No.USCCSE-2005-513. http://sunset.usc.edu/publications/TECHRPT S/2005/usccse2005-513/usccse2005-513.pdf,2005.
7 任雪利. 協(xié)同過濾在軟件成本估算中的應(yīng)用. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(6):246-249.
8 任雪利,代余彪. 軟件相似度在成本估算中的應(yīng)用. 計(jì)算機(jī)應(yīng)用與軟件,2015,32(6):34-36,112.
9 曹冬生,王強(qiáng)軍,張?jiān)?等. 基于類比的軟件成本估算及其一種改進(jìn)方法. 計(jì)算機(jī)工程與科學(xué),2009,31(5):102-106.
10 何慧,張宏莉,張偉哲,等. 一種基于相似度的DDoS攻擊檢測(cè)方法. 通信學(xué)報(bào),2004,25(7):176-184.
11 朱永松,國澄明. 基于相關(guān)系數(shù)的相關(guān)跟蹤算法研究. 中國圖 象 圖 形 學(xué) 報(bào),2004,9(8):963-967. [doi:10.11834/jig.200408184]
12 何曉陽,王亞沙. 基于模型的軟件成本估計(jì)方法. 計(jì)算機(jī)研究與發(fā)展,2006,43(5):777-783.
13 Jahanshahloo GR,Lotfi FH,Izadikhah M. An algorithmic method to extend TOPSIS for decision-making problems with interval data. Applied Mathematics and Computation,2006,175(2):1375-1384. [doi:10.1016/j.amc.2005.08.048]
14 Shih HS,Shyur HJ,Lee ES. An extension of TOPSIS for group decision making. Mathematical and Computer Modelling,2007,45(7-8):801-813. [doi:10.1016/j.mcm.2006.03.023]
15 周啟超. BP算法改進(jìn)及在軟件成本估算中的應(yīng)用. 計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(2):195-198.
16 趙雪芬. 基于未知度的Vague集相似度量方法研究. 計(jì)算機(jī)工程與應(yīng)用,2013,49(14):130-132,216. [doi:10.3778/j.issn.1002-8331.1111-0518]