梁 彥,周 懿
(1.重慶醫(yī)科大學(xué)附屬口腔醫(yī)院,重慶 401120;2.中國(guó)十九冶集團(tuán)有限公司,重慶 401120)
從需求度量入手淺談軟件質(zhì)量*
梁 彥1,周 懿2
(1.重慶醫(yī)科大學(xué)附屬口腔醫(yī)院,重慶 401120;2.中國(guó)十九冶集團(tuán)有限公司,重慶 401120)
提高效率和質(zhì)量是軟件行業(yè)一直關(guān)注的目標(biāo)。質(zhì)量、時(shí)間、成本是軟件項(xiàng)目中的重要方面,相互關(guān)聯(lián)影響又相互排斥,如何在實(shí)際中取得三者之間的平衡,是每個(gè)軟件項(xiàng)目都會(huì)遇到的難題。如果從需求著手,由需求度量的統(tǒng)計(jì)分析,通過(guò)軟件質(zhì)量框架定義的方式,來(lái)對(duì)軟件質(zhì)量進(jìn)行評(píng)估;由需求驅(qū)動(dòng)來(lái)提高整個(gè)軟件項(xiàng)目的質(zhì)量,降低項(xiàng)目的成本,具有較高的可行性。
軟件質(zhì)量;質(zhì)量特征;度量因子;需求度量
提高效率和質(zhì)量是軟件行業(yè)一直關(guān)注的目標(biāo),大家都希望能夠通過(guò)某種簡(jiǎn)單的方法來(lái)實(shí)現(xiàn),但單一的質(zhì)量評(píng)估方法無(wú)法滿足現(xiàn)在軟件行業(yè)發(fā)展快、需求增長(zhǎng)迅速、產(chǎn)品競(jìng)爭(zhēng)激烈的需要,越來(lái)越多的人開(kāi)始討論和研究是否有合適的軟件質(zhì)量評(píng)估體系在軟件質(zhì)量中發(fā)揮作用,并且能夠適用于多種產(chǎn)品類型。如何評(píng)估軟件質(zhì)量,已成為軟件行業(yè)迫切需要解決的問(wèn)題,而選擇合適的指標(biāo)體系,并使其量化是做好軟件質(zhì)量評(píng)估的關(guān)鍵。
根據(jù)軟件質(zhì)量國(guó)家標(biāo)準(zhǔn)GB/T 8566—2001,我們發(fā)現(xiàn)軟件質(zhì)量評(píng)估可以從對(duì)軟件質(zhì)量框架的分析開(kāi)始。軟件質(zhì)量框架是一個(gè)“質(zhì)量特征—質(zhì)量子特征—度量因子”的三層結(jié)構(gòu)模型。在這個(gè)框架模型中,第一層質(zhì)量特征是面向管理的特征,代表軟件質(zhì)量的一個(gè)方面;第二層的質(zhì)量子特征是上層質(zhì)量特征的細(xì)化,一個(gè)特定的子特征可以對(duì)應(yīng)若干個(gè)質(zhì)量特征;第三層是軟件質(zhì)量度量因子,用來(lái)度量質(zhì)量特征[1],軟件質(zhì)量度量因子是定量化的數(shù)據(jù),可以直接被統(tǒng)計(jì)得到。
由軟件質(zhì)量框架三層結(jié)構(gòu)模型可以看出,對(duì)于軟件質(zhì)量的評(píng)估,我們可以由軟件內(nèi)部參數(shù)的度量來(lái)體現(xiàn),度量是解決軟件項(xiàng)目中許多問(wèn)題的一種有效手段[2],因此我們可以通過(guò)軟件項(xiàng)目中某項(xiàng)關(guān)鍵特征的度量來(lái)實(shí)現(xiàn)對(duì)軟件質(zhì)量的確定與軟件問(wèn)題分析定位。
在度量因子的選擇上,我們希望能夠達(dá)到這四個(gè)目標(biāo):①?gòu)挠脩艚嵌榷攘肯到y(tǒng)產(chǎn)品的功能;②獨(dú)立于技術(shù)度量系統(tǒng)產(chǎn)品開(kāi)發(fā)和維護(hù);③統(tǒng)一度量過(guò)程;④能夠在不同項(xiàng)目和組織間建立可比較的度量。所以,我們?cè)谲浖|(zhì)量框架建立的時(shí)候就必須考慮到產(chǎn)品項(xiàng)目質(zhì)量、時(shí)間、成本的權(quán)衡。
質(zhì)量、時(shí)間、成本是軟件項(xiàng)目的重要方面。我們?cè)诩埳袭?huà)一個(gè)等邊三角形,在各個(gè)邊上標(biāo)上時(shí)間、質(zhì)量、成本。我們會(huì)看到,任何一方的移動(dòng)必然會(huì)帶動(dòng)其他的變形。這個(gè)三角形中間的范圍就是項(xiàng)目范圍。如何在實(shí)際中取得三者之間的平衡,是每個(gè)軟件項(xiàng)目都會(huì)遇到的難題。
時(shí)間,我們可以由軟件研發(fā)流程的里程碑來(lái)確定;質(zhì)量,可以由項(xiàng)目過(guò)程中、項(xiàng)目結(jié)束后發(fā)現(xiàn)的問(wèn)題與風(fēng)險(xiǎn)處理來(lái)初步得出。在確定以上兩點(diǎn)的基礎(chǔ)上,成本也就比較好確定了。從軟件項(xiàng)目的生命周期來(lái)看,整個(gè)周期中始終有一項(xiàng)由開(kāi)始貫穿到結(jié)束,那就是需求的驅(qū)動(dòng)。如果從需求著手,由需求度量的統(tǒng)計(jì)分析來(lái)提高需求的質(zhì)量,由需求驅(qū)動(dòng)來(lái)提高整個(gè)軟件項(xiàng)目的質(zhì)量、降低項(xiàng)目的成本是可行的。
需求度量包括需求工程和需求管理這兩個(gè)方面的度量,其中,重點(diǎn)是需求管理方面的度量。根據(jù)軟件項(xiàng)目的生命周期,我們選擇了傳統(tǒng)的V模型,并在項(xiàng)目中按里程碑的方式開(kāi)展了需求管理度量統(tǒng)計(jì)。
需求管理主要是對(duì)需求穩(wěn)定性進(jìn)行管理,其中一個(gè)主要指標(biāo)就是需求變化的數(shù)量。在工作中,我們對(duì)XX項(xiàng)目開(kāi)展了需求管理度量指標(biāo)的統(tǒng)計(jì)和分析,1.1版本需求數(shù)10個(gè),1.2版本需求數(shù)12個(gè),1.3版本需求數(shù)5個(gè),2.0版本需求數(shù)15個(gè),3.1版本需求數(shù)7個(gè)。以版本為橫軸,度量數(shù)據(jù)為縱軸,我們可以得到一個(gè)需求變化的趨勢(shì)圖。由需求變化趨勢(shì)圖可以清晰地看到隨著項(xiàng)目版本的進(jìn)行需求變化的總體趨勢(shì)。同類型的項(xiàng)目版本,各版本的變化趨勢(shì)應(yīng)該類似,如果某個(gè)變化點(diǎn)與其他版本點(diǎn)相比較有明顯的變化,則可單獨(dú)進(jìn)行分析與研究。因此,我們對(duì)需求趨勢(shì)變化較大的3.0版本進(jìn)行分析,采用以下內(nèi)容進(jìn)行原始數(shù)據(jù)的統(tǒng)計(jì)與分析。

表1 需求在各階段的分布
通過(guò)需求變化數(shù)與需求在各階段的分布,我們可以清晰地看到需求分析與評(píng)審階段發(fā)現(xiàn)的問(wèn)題數(shù)占總問(wèn)題數(shù)的60%,測(cè)試準(zhǔn)備中發(fā)現(xiàn)的需求問(wèn)題占總問(wèn)題數(shù)31.25%.
假設(shè)修改一個(gè)獨(dú)立需求費(fèi)時(shí)0.1 h,評(píng)審該需求的時(shí)間為0.3 h,編寫(xiě)此需求的測(cè)試用例的時(shí)間為0.3 h,系統(tǒng)測(cè)試此用例的時(shí)間為0.5 h。根據(jù)需求問(wèn)題在項(xiàng)目周期的不同階段被發(fā)現(xiàn)所需要經(jīng)歷或重新經(jīng)歷的階段,我們可以得到以下幾種情況。
情況1:需求編寫(xiě)階段被發(fā)現(xiàn),則耗時(shí)=0.1+0.3+0.3+0.5=1.2;
情況2:需求評(píng)審階段被發(fā)現(xiàn),則耗時(shí)=0.1+情況1時(shí)間=1.3,比情況1增加8%;
情況3:測(cè)試用例編寫(xiě)階段被發(fā)現(xiàn),則耗時(shí)=0.3+情況2時(shí)間=1.6,比情況1增加33%;
情況4:系統(tǒng)測(cè)試階段被發(fā)現(xiàn),則耗時(shí)=0.5+情況3時(shí)間=2.1,比情況1增加75%.
由以上4種情況可知,每一個(gè)需求功能點(diǎn)的問(wèn)題因?yàn)楸煌戆l(fā)現(xiàn)一個(gè)階段,為糾正這個(gè)問(wèn)題所增加的額外耗時(shí)為8%,33%,75%,而這僅是一個(gè)獨(dú)立需求點(diǎn),如果是高耦合或是核心流程的需求功能點(diǎn),那所花費(fèi)的時(shí)間會(huì)成倍增加。對(duì)于軟件高交付要求來(lái)講,增加了項(xiàng)目的時(shí)間和資源成本,降低了工作效率,加大了項(xiàng)目風(fēng)險(xiǎn),而這些問(wèn)題和風(fēng)險(xiǎn)原本是可以避免和減少的。因此,我們?cè)诖_定需求質(zhì)量時(shí)需考慮項(xiàng)目的實(shí)際情況,并結(jié)合績(jī)效考核數(shù)據(jù)度量,從工作量、工作質(zhì)量、工作效率、工作交付這4個(gè)方面,分別選取了以下幾個(gè)度量因子來(lái)開(kāi)展需求度量:①工作量,需求完成數(shù)、緊急需求完成數(shù);②工作效率,需求答復(fù)及時(shí)率、需求完成率、緊急需求完成及時(shí)率;③工作質(zhì)量,需求合格率、需求缺陷率;④工作交付,需求延期完成數(shù)、需求延期率。
在使用了度量因子對(duì)需求文檔進(jìn)行統(tǒng)計(jì),并納入項(xiàng)目績(jī)效統(tǒng)計(jì)數(shù)據(jù)后,我們發(fā)現(xiàn)需求文檔的質(zhì)量有了較大的提高,需求評(píng)審、系統(tǒng)測(cè)試階段發(fā)現(xiàn)的因需求文檔編寫(xiě)造成的缺陷大幅度減少,從而縮短了項(xiàng)目研發(fā)周期,提高了用戶響應(yīng)度。
通過(guò)軟件度量可以不斷改進(jìn)和完善軟件研發(fā)的流程,有效地提高軟件開(kāi)發(fā)的效率和軟件質(zhì)量,我們可以從兩個(gè)方面看出軟件度量所提供的幫助:①項(xiàng)目方面。我們使用度量數(shù)據(jù)對(duì)項(xiàng)目進(jìn)行前期預(yù)估、中期監(jiān)控、后期評(píng)價(jià)的工作,以各項(xiàng)度量數(shù)據(jù)來(lái)判斷軟件產(chǎn)品是否達(dá)到項(xiàng)目的質(zhì)量要求和設(shè)計(jì)期望[3]。②組織方面。度量數(shù)據(jù)可以幫助我們確定軟件生命周期各個(gè)階段的效率和質(zhì)量的總體水平、發(fā)展趨勢(shì),以幫助我們更好進(jìn)行產(chǎn)品組合、確定成本/技術(shù)投向,策劃、管理或驗(yàn)證項(xiàng)目活動(dòng)。我們相信,通過(guò)建立分層的軟件質(zhì)量框架,一層層地細(xì)化質(zhì)量特征,選擇適合的度量因子,由軟件內(nèi)部的質(zhì)量特性+外部展現(xiàn)特征的方式反映軟件質(zhì)量,能夠較真實(shí)、客觀地評(píng)價(jià)軟件質(zhì)量。
[1]周建.關(guān)于軟件質(zhì)量的定量評(píng)估的研究[D].成都:電子科技大學(xué),2007.
[2]曾慧明,劉衛(wèi)斌.企業(yè)軟件度量過(guò)程的研究[J].計(jì)算機(jī)仿真,2005(4):274-276.
[3]洪倫耀,董云衛(wèi).軟件質(zhì)量工程[M].西安:西安電子科技大學(xué)出版社,2004.
〔編輯:劉曉芳〕
TP311.52
A
10.15913/j.cnki.kjycx.2017.23.062
2095-6835(2017)23-0062-02
2016年重慶高校創(chuàng)新團(tuán)隊(duì)建設(shè)計(jì)劃資助項(xiàng)目(編號(hào):CXTDG201602006)