周偉良
(1.安徽經(jīng)濟管理學(xué)院,安徽 合肥 230059;2.合肥工業(yè)大學(xué) 管理學(xué)院,安徽 合肥 230009)
隨著軟件質(zhì)量管理研究的不斷深入,對于軟件產(chǎn)品的質(zhì)量控制逐漸轉(zhuǎn)移到對軟件過程的質(zhì)量控制和軟件組織的軟件能力控制上來。如何提升軟件組織的軟件能力受到愈加廣泛的關(guān)注。美國卡內(nèi)基—梅隆大學(xué)軟件工程研究所研發(fā)的軟件能力成熟度模型(Capability Maturity Model,簡稱CMM)以及在此基礎(chǔ)上形成的軟件能力成熟度模型集成成為評估軟件組織軟件能力成熟度的重要工具。CMMI模型主要是對軟件組織設(shè)計開發(fā)軟件的能力進行評估,而并非針對軟件或軟件項目本身[1-2],因此,CMMI并沒有定義實施軟件過程度量中收集并分析軟件過程數(shù)據(jù)的具體方法,由此可見,CMMI的軟件能力成熟度評估還是以定性評價為主的。
在軟件過程質(zhì)量度量研究方面,宿為民、朱三元提出從過程建模的角度考慮支持過程度量,并給出一個支持過程度量的軟件過程建模GQM-D(Goal Question Metric-Data)方法[3]。北京航空航天大學(xué)軟件工程研究所的李健等則重點分析了對軟件過程的度量和不同過程成熟度層次對度量的需求[4]。上海大學(xué)的潘秋菱等結(jié)合自主開發(fā)的軟件過程工程環(huán)境Softev,提出了在軟件開發(fā)中進行度量的一組指標(biāo),這些指標(biāo)都在Softev中得以實現(xiàn)[5]。在基于CMMI的軟件成熟度度量方面,主要的研究工作是基于CMMI模型研究軟件風(fēng)險的定量分析方法,或是著重闡述了評價模型中數(shù)據(jù)收集、分析的方法,以及結(jié)合生命周期法或GQM方法構(gòu)建軟件過程的性能模型[6-9]。
綜上所述,目前軟件過程度量并未很好地引入CMMI基本理論和方法,同時CMMI的應(yīng)用研究又主要以定性研究為主,缺少以CMMI為基礎(chǔ)的度量研究,此外,目前的軟件質(zhì)量度量研究不能夠充分地關(guān)注企業(yè)尤其是中國小型軟件企業(yè)實施CMMI的成本和困難。由于軟件企業(yè)無論是獲取CMMI認證還是認證后持續(xù)使用CMMI的評估方案,都會面臨實施時間長、成本高等因素,國內(nèi)的大多數(shù)軟件組織并不會持續(xù)采用CMMI中的方法,監(jiān)控和改進企業(yè)軟件過程的質(zhì)量,這使得企業(yè)在不同軟件項目的質(zhì)量管理上依然存在差別。
因此,從軟件過程質(zhì)量管理的角度看,在不同的軟件項目上,以及項目的不同階段,以CMMI方法為基礎(chǔ),設(shè)計低成本、高效率的軟件組織軟件能力成熟度的度量方法,對提升軟件組織軟件開發(fā)能力,保障軟件產(chǎn)品質(zhì)量,將是必要和有效的。
鑒于目前參與CMMI評估的國內(nèi)企業(yè)通過CMMI第2級(管理級)認證占多數(shù),通過CMMI第3級(定義級)及以上認證的企業(yè)相對較少。本文從CMMI模型第2級(管理級)出發(fā),并依托KW公司的軟件開發(fā)項目,重點從CMMI的管理級梳理評估軟件組織軟件能力成熟度的主要指標(biāo),構(gòu)建軟件能力成熟度的評價指標(biāo)體系。同時依據(jù)CMMI過程域、目標(biāo)及其具體實踐,設(shè)計相應(yīng)的基于隸屬度的管理級軟件能力成熟度量化評價模型,為軟件企業(yè)在項目過程中更加有效地采用CMMI評估軟件組織的軟件能力提供支持,降低評估成本,以期對CMMI的具體應(yīng)用及軟件組織軟件能力評估提供支持。
CMMI模型第2級(管理級)共涉及7個過程域,15個特定目標(biāo),1個通用目標(biāo)[10],分別用SG1~SG15表示特定目標(biāo),用GG表示通用目標(biāo),具體信息定義如下:
依托KW公司的軟件項目以及開發(fā)資源,本文針對上述16個指標(biāo)項采集了涉及3個軟件項目,5組質(zhì)量監(jiān)控的專家評價數(shù)據(jù),并以{0,1,2,3,4,5,6,7,8,9}為標(biāo)度,分別采集軟件開發(fā)不同階段各指標(biāo)項的評價結(jié)果值。同時,以{1,1.5,2,2.5,3,3.5,…,9.5,10}為標(biāo)度,采集軟件產(chǎn)品的整體評估結(jié)果V,得到表1、表2的數(shù)據(jù),其中定義Pij為第i組第j個項目的采集數(shù)據(jù)。
表1 管理級軟件能力成熟度相應(yīng)目標(biāo)項
表2 具體軟件項目的評估數(shù)據(jù)
以減少度量復(fù)雜度,降低循環(huán)實施度量所需成本為目標(biāo),需要對指標(biāo)項進行必要的篩選。指標(biāo)項篩選的主要任務(wù)在于,在管理級的16個指標(biāo)中篩選出對軟件成熟度影響更大且更具獨立性的指標(biāo)項用于后續(xù)的軟件成熟度度量。篩選的主要思路是,首先通過問卷調(diào)查剔除部分非關(guān)鍵指標(biāo)項;其次,通過相關(guān)性分析,剔除部分存在直接相關(guān)關(guān)系的指標(biāo)項,保證篩選出的指標(biāo)項符合相應(yīng)的獨立性要求;第三,根據(jù)實際意義,V與各指標(biāo)項存在強正相關(guān)關(guān)系或弱正相關(guān)關(guān)系,因此對初步形成的指標(biāo)子集,結(jié)合V值,實施線性回歸分析,剔除由于調(diào)查數(shù)據(jù)缺陷造成的不符合正相關(guān)要求的指標(biāo)項,形成新的指標(biāo)子集,并再次實施線性回歸分析,直至形成的指標(biāo)子集各指標(biāo)項與V均符合正相關(guān)的要求,并以最終形成的指標(biāo)子集作為管理級軟件能力成熟度評估的評價指標(biāo)。
指標(biāo)篩選步驟如下:
(1)通過問卷調(diào)查,剔除部分選擇率小于5%的指標(biāo)項:SG4,SG6,SG8(略去具體數(shù)據(jù)和過程),由此篩選得到指標(biāo)子集 A={SG1,SG2,SG3,SG5,SG7,SG9,SG10,SG11,SG12,SG13,SG14,SG15,GG1}。
(2)變量間的相關(guān)性分析,利用SPSS進行變量間相關(guān)性分析的數(shù)據(jù)如表3所示。
表3 SPSS的相關(guān)性分析數(shù)據(jù)
表3中,指標(biāo)項SG10,SG14,SG15與V的Pearson Correlation值分別為-0.126,-0.293,-0.329,其余指標(biāo)項的Pearson Correlation值均大于0,從實際意義的角度看,所有指標(biāo)項與最終評價值的相關(guān)關(guān)系應(yīng)該為強正相關(guān)關(guān)系或弱正相關(guān)關(guān)系,因此,從相關(guān)關(guān)系上看,除SG10,SG14,SG15的指標(biāo)項是不符合實際意義的,剔除SG10,SG14,SG15三個指標(biāo)項,得到指標(biāo)子集B={SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8,SG9,SG11,SG12,SG13, GG1}。
(3)對指標(biāo)子集A和B取交集,得到指標(biāo)子集C=A∩B={SG1,SG2,SG3,SG5,SG7,SG9,SG11,SG12,SG13,GG1}。以表2數(shù)據(jù)為基礎(chǔ),設(shè)V為因變量,以C中指標(biāo)項為自變量,設(shè):V=b0+b1×SG1+b2×SG2+b3×SG3+b4×SG5+b5×SG7+b6×SG9+b7×SG11+b8×SG12+b9×SG13+b10×GG1,根據(jù)實際意義,V與各指標(biāo)項存在強正相關(guān)關(guān)系或弱正相關(guān)關(guān)系,因此b1,b2,…,b10均應(yīng)大于0。應(yīng)用Enter(強制引入)回歸方法,進行多元線性回歸分析,其Model Summary部分的R2=0.967,ANOVA部分的P=0.015<0.05,可以認為因變量V與自變量{SG1,SG2,SG3, SG5,SG7,SG9,SG11,SG12,SG13,GG1}有顯著的線性回歸關(guān)系。同時,Coefficients部分顯示,SG7,SG9的B值(非標(biāo)準(zhǔn)回歸系數(shù))均小于0,與實際意義不符合,因此剔除SG7,SG9得到D={SG1,SG2,SG3,SG5,SG11,SG12,SG13,GG1}。
(4)同理,剔除SG12得到E={SG1,SG2,SG3,SG5,SG11,SG13,GG1}。
(5)根據(jù)線性回歸分析得到的Model Summary部分的R2=0.964,ANOVA部分的P=0.000<0.05,可以認為因變量V與自變量E={SG1,SG2,SG3, SG5, SG11,SG13,GG1}有顯著的線性回歸關(guān)系。
因此,將E={SG1,SG2,SG3, SG5, SG11,SG13,GG1}作為軟件組織管理級軟件能力成熟度評估的評價指標(biāo)。
多目標(biāo)多因素決策中,需要對不同決策者提供的多個判斷矩陣進行集結(jié),以形成一個更加合理的解決方案,本文采用Hadamard凸組合[11]進行相應(yīng)的判斷矩陣集結(jié)。
為了簡化問題描述,本文在問卷調(diào)查中也采集了專家判斷矩陣,在符合一致性前提的專家判斷矩陣中,按照一致性比率CR從小到大的次序,取前5位專家判斷矩陣如下:
上述5個判斷矩陣一致性比率分別為:(0.041,0.045,0.047,0.048,0.050)T。
為了更好地進行判斷矩陣權(quán)重的計算,首先給出相關(guān)定義。文獻[11]給出了Hadamard凸組合的概念,即:若A1,A2,…,Am是同一個問題的m個判斷矩陣,若存在:,:使得
對于C=A⊕B,有cij=aij+bij;對于C=A·B,有cij=aij·bij。
為便于討論,本文取λL=(0.2,0.2,0.2,0.2,0.2)。
利用方根法得到其CR=0.032<0.1。因此W結(jié)果符合一致性要求。
1.參量說明
定義1:給定論域S=[0,9],表示對于管理級軟件過程能力成熟度的度量值域。
定義2:設(shè)A為S上一模糊子集合,分別表示管理級軟件能力的五個子等級:I級、II級、III級、IV級和V級;I級為管理級中軟件能力成熟度最高,V級為管理級中軟件能力成熟度最低;
定義3:u(x)表示x相對于A中各級別的隸屬度;u(x)∈[0,1],其中x∈S;x表示相應(yīng)指標(biāo)項的評價值;
定義4:W=(w1,w2,…,wt,)為管理級中軟件能力成熟度各評價指標(biāo)的相對重要程度即權(quán)重,t表示指標(biāo)項個數(shù);
假設(shè)1:x<1,u(x)=0,x≥9,u(x)=1;
假設(shè)2:管理級中五個能力子等級對應(yīng)的隸屬度要求分別為:
2.隸屬函數(shù)定義
典型的隸屬度函數(shù)在圖形分布上主要包括正態(tài)分布、Γ分布,戒上分布、戒下分布以及半梯形分布等[12-13],考慮軟件過程能力評估的特性,本文選取半梯形分布作為確定隸屬度函數(shù)的基礎(chǔ),并以假設(shè)1作為約束條件,定義如下隸屬度函數(shù)。
因此,對于多項目的信息采集而言,可以定義其相應(yīng)的綜合隸屬度函數(shù):
其中,u(xij)表示第i個指標(biāo)項在第j個項目中相對于管理級的隸屬度。
同時可以得到,在具有多項指標(biāo)體系的管理級軟件能力成熟度評價中,各指標(biāo)項反映的軟件能力隸屬于管理級的特征向量為:U=(u1,u2,…,u5)。
3.評價模型的構(gòu)建與實施
特征向量U反映軟件項目樣本對管理級軟件能力成熟度的隸屬度,結(jié)合各指標(biāo)項的權(quán)重,可建立相應(yīng)的模糊評價模型:
結(jié)合表1的評價數(shù)據(jù),抽取出相應(yīng)指標(biāo)項對應(yīng)的具體數(shù)據(jù),應(yīng)用算式(1)和(2),可以得到:
對矩陣U′每列應(yīng)用算術(shù)平均可得:
參照假設(shè)2,則通過對3個項目、5個專家、7個指標(biāo)項的分析,該軟件組織隸屬于管理級的隸屬度約為0.688,即認為該軟件組織在管理級五個子成熟度級別中處于第IV級。
CMMI作為對軟件企業(yè)進行軟件開發(fā)能力評估的重要模型,其方法在軟件項目的各個階段都具有十分重要的借鑒意義。針對國內(nèi)軟件企業(yè)現(xiàn)狀,本文以CMMI的主要理論和方法為基礎(chǔ),以回歸分析為手段篩選出管理級軟件能力成熟度的關(guān)鍵指標(biāo)項,以hadamard凸組合為方法確定指標(biāo)權(quán)重,以模糊綜合評價的基本理論為依據(jù)設(shè)計新的管理級軟件能力成熟度模糊評價模型,幫助軟件組織可以在不同的軟件項目以及項目的不同階段循環(huán)實施相應(yīng)的模糊評價方案,以此實現(xiàn)對軟件項目質(zhì)量更加有效的量化控制,同時促進企業(yè)能夠更加廣泛和深入地應(yīng)用CMMI的基本理論和方法,提高企業(yè)軟件質(zhì)量管理的能力,這對于CMMI的量化研究和國內(nèi)軟件企業(yè)循環(huán)實施CMMI方法都將會起到十分積極的作用。
[1]Carnegie Mellon University,Software Engineering Institute.CMMIFrequently Asked Question[R].CMU/SEI,2001.
[2]CMU SEI.Concept of Operations for the Capability Maturity Model Integration[EB/OL].[2012-11-25].http://www.sei.emu.edu.
[3]宿為民,朱三元.支持過程度量的軟件過程建模方法的研究[J].軟件學(xué)報,1999,10(8):843-849.
[4]李健,金茂忠.軟件過程度量技術(shù)的研究[J].計算機工程與應(yīng)用,2001(5):86-89.
[5]潘秋菱,劉宗田,賈亮,等.軟件過程技術(shù)及環(huán)境[J].研究電子學(xué)報,2001(11):1-3.
[6]金蘭.CMMI軟件風(fēng)險定量研究[J].價值工程,2010(14):162-163.
[7]王慧,周伯生,羅文劼.基于CMMI的軟件過程性能模型[J].計算機工程與設(shè)計,2009(1):110-112.
[8]賀赟.CMMI基于CMMI的軟件過程度量[J].電腦知識與技術(shù),2008,4(7):1647-1649.
[9]田秀彥.基于CMMI模型進行過程改進[J].科技信息,2008(14):32-33.
[10]CMMI Product Team.CMMl for Development Version 1.2[EB/OL].[2012-11-20].http://www.sei.cmu.edu.
[11]劉心報,楊善林.判斷矩陣的Hadamard凸組合[J].系統(tǒng)工程理論與實踐,2000,20(4):83-85.
[12]萬中,梁文冬,盧宗娟.模糊數(shù)的隸屬度區(qū)間分布函數(shù)[J].重慶理工大學(xué)學(xué)報(自然科學(xué)版),2011(1):107-112.
[13]劉開第,龐彥軍,栗文國.多指標(biāo)決策中隸屬度轉(zhuǎn)換算法及其應(yīng)用[J].自動化學(xué)報,2009(3):315-319.