梁 彥,周 懿
(1.重慶醫(yī)科大學附屬口腔醫(yī)院,重慶 401120;2.中國十九冶集團有限公司,重慶 401120)
從需求度量入手淺談軟件質(zhì)量*
梁 彥1,周 懿2
(1.重慶醫(yī)科大學附屬口腔醫(yī)院,重慶 401120;2.中國十九冶集團有限公司,重慶 401120)
提高效率和質(zhì)量是軟件行業(yè)一直關注的目標。質(zhì)量、時間、成本是軟件項目中的重要方面,相互關聯(lián)影響又相互排斥,如何在實際中取得三者之間的平衡,是每個軟件項目都會遇到的難題。如果從需求著手,由需求度量的統(tǒng)計分析,通過軟件質(zhì)量框架定義的方式,來對軟件質(zhì)量進行評估;由需求驅(qū)動來提高整個軟件項目的質(zhì)量,降低項目的成本,具有較高的可行性。
軟件質(zhì)量;質(zhì)量特征;度量因子;需求度量
提高效率和質(zhì)量是軟件行業(yè)一直關注的目標,大家都希望能夠通過某種簡單的方法來實現(xiàn),但單一的質(zhì)量評估方法無法滿足現(xiàn)在軟件行業(yè)發(fā)展快、需求增長迅速、產(chǎn)品競爭激烈的需要,越來越多的人開始討論和研究是否有合適的軟件質(zhì)量評估體系在軟件質(zhì)量中發(fā)揮作用,并且能夠適用于多種產(chǎn)品類型。如何評估軟件質(zhì)量,已成為軟件行業(yè)迫切需要解決的問題,而選擇合適的指標體系,并使其量化是做好軟件質(zhì)量評估的關鍵。
根據(jù)軟件質(zhì)量國家標準GB/T 8566—2001,我們發(fā)現(xiàn)軟件質(zhì)量評估可以從對軟件質(zhì)量框架的分析開始。軟件質(zhì)量框架是一個“質(zhì)量特征—質(zhì)量子特征—度量因子”的三層結構模型。在這個框架模型中,第一層質(zhì)量特征是面向管理的特征,代表軟件質(zhì)量的一個方面;第二層的質(zhì)量子特征是上層質(zhì)量特征的細化,一個特定的子特征可以對應若干個質(zhì)量特征;第三層是軟件質(zhì)量度量因子,用來度量質(zhì)量特征[1],軟件質(zhì)量度量因子是定量化的數(shù)據(jù),可以直接被統(tǒng)計得到。
由軟件質(zhì)量框架三層結構模型可以看出,對于軟件質(zhì)量的評估,我們可以由軟件內(nèi)部參數(shù)的度量來體現(xiàn),度量是解決軟件項目中許多問題的一種有效手段[2],因此我們可以通過軟件項目中某項關鍵特征的度量來實現(xiàn)對軟件質(zhì)量的確定與軟件問題分析定位。
在度量因子的選擇上,我們希望能夠達到這四個目標:①從用戶角度度量系統(tǒng)產(chǎn)品的功能;②獨立于技術度量系統(tǒng)產(chǎn)品開發(fā)和維護;③統(tǒng)一度量過程;④能夠在不同項目和組織間建立可比較的度量。所以,我們在軟件質(zhì)量框架建立的時候就必須考慮到產(chǎn)品項目質(zhì)量、時間、成本的權衡。
質(zhì)量、時間、成本是軟件項目的重要方面。我們在紙上畫一個等邊三角形,在各個邊上標上時間、質(zhì)量、成本。我們會看到,任何一方的移動必然會帶動其他的變形。這個三角形中間的范圍就是項目范圍。如何在實際中取得三者之間的平衡,是每個軟件項目都會遇到的難題。
時間,我們可以由軟件研發(fā)流程的里程碑來確定;質(zhì)量,可以由項目過程中、項目結束后發(fā)現(xiàn)的問題與風險處理來初步得出。在確定以上兩點的基礎上,成本也就比較好確定了。從軟件項目的生命周期來看,整個周期中始終有一項由開始貫穿到結束,那就是需求的驅(qū)動。如果從需求著手,由需求度量的統(tǒng)計分析來提高需求的質(zhì)量,由需求驅(qū)動來提高整個軟件項目的質(zhì)量、降低項目的成本是可行的。
需求度量包括需求工程和需求管理這兩個方面的度量,其中,重點是需求管理方面的度量。根據(jù)軟件項目的生命周期,我們選擇了傳統(tǒng)的V模型,并在項目中按里程碑的方式開展了需求管理度量統(tǒng)計。
需求管理主要是對需求穩(wěn)定性進行管理,其中一個主要指標就是需求變化的數(shù)量。在工作中,我們對XX項目開展了需求管理度量指標的統(tǒng)計和分析,1.1版本需求數(shù)10個,1.2版本需求數(shù)12個,1.3版本需求數(shù)5個,2.0版本需求數(shù)15個,3.1版本需求數(shù)7個。以版本為橫軸,度量數(shù)據(jù)為縱軸,我們可以得到一個需求變化的趨勢圖。由需求變化趨勢圖可以清晰地看到隨著項目版本的進行需求變化的總體趨勢。同類型的項目版本,各版本的變化趨勢應該類似,如果某個變化點與其他版本點相比較有明顯的變化,則可單獨進行分析與研究。因此,我們對需求趨勢變化較大的3.0版本進行分析,采用以下內(nèi)容進行原始數(shù)據(jù)的統(tǒng)計與分析。
表1 需求在各階段的分布
通過需求變化數(shù)與需求在各階段的分布,我們可以清晰地看到需求分析與評審階段發(fā)現(xiàn)的問題數(shù)占總問題數(shù)的60%,測試準備中發(fā)現(xiàn)的需求問題占總問題數(shù)31.25%.
假設修改一個獨立需求費時0.1 h,評審該需求的時間為0.3 h,編寫此需求的測試用例的時間為0.3 h,系統(tǒng)測試此用例的時間為0.5 h。根據(jù)需求問題在項目周期的不同階段被發(fā)現(xiàn)所需要經(jīng)歷或重新經(jīng)歷的階段,我們可以得到以下幾種情況。
情況1:需求編寫階段被發(fā)現(xiàn),則耗時=0.1+0.3+0.3+0.5=1.2;
情況2:需求評審階段被發(fā)現(xiàn),則耗時=0.1+情況1時間=1.3,比情況1增加8%;
情況3:測試用例編寫階段被發(fā)現(xiàn),則耗時=0.3+情況2時間=1.6,比情況1增加33%;
情況4:系統(tǒng)測試階段被發(fā)現(xiàn),則耗時=0.5+情況3時間=2.1,比情況1增加75%.
由以上4種情況可知,每一個需求功能點的問題因為被晚發(fā)現(xiàn)一個階段,為糾正這個問題所增加的額外耗時為8%,33%,75%,而這僅是一個獨立需求點,如果是高耦合或是核心流程的需求功能點,那所花費的時間會成倍增加。對于軟件高交付要求來講,增加了項目的時間和資源成本,降低了工作效率,加大了項目風險,而這些問題和風險原本是可以避免和減少的。因此,我們在確定需求質(zhì)量時需考慮項目的實際情況,并結合績效考核數(shù)據(jù)度量,從工作量、工作質(zhì)量、工作效率、工作交付這4個方面,分別選取了以下幾個度量因子來開展需求度量:①工作量,需求完成數(shù)、緊急需求完成數(shù);②工作效率,需求答復及時率、需求完成率、緊急需求完成及時率;③工作質(zhì)量,需求合格率、需求缺陷率;④工作交付,需求延期完成數(shù)、需求延期率。
在使用了度量因子對需求文檔進行統(tǒng)計,并納入項目績效統(tǒng)計數(shù)據(jù)后,我們發(fā)現(xiàn)需求文檔的質(zhì)量有了較大的提高,需求評審、系統(tǒng)測試階段發(fā)現(xiàn)的因需求文檔編寫造成的缺陷大幅度減少,從而縮短了項目研發(fā)周期,提高了用戶響應度。
通過軟件度量可以不斷改進和完善軟件研發(fā)的流程,有效地提高軟件開發(fā)的效率和軟件質(zhì)量,我們可以從兩個方面看出軟件度量所提供的幫助:①項目方面。我們使用度量數(shù)據(jù)對項目進行前期預估、中期監(jiān)控、后期評價的工作,以各項度量數(shù)據(jù)來判斷軟件產(chǎn)品是否達到項目的質(zhì)量要求和設計期望[3]。②組織方面。度量數(shù)據(jù)可以幫助我們確定軟件生命周期各個階段的效率和質(zhì)量的總體水平、發(fā)展趨勢,以幫助我們更好進行產(chǎn)品組合、確定成本/技術投向,策劃、管理或驗證項目活動。我們相信,通過建立分層的軟件質(zhì)量框架,一層層地細化質(zhì)量特征,選擇適合的度量因子,由軟件內(nèi)部的質(zhì)量特性+外部展現(xiàn)特征的方式反映軟件質(zhì)量,能夠較真實、客觀地評價軟件質(zhì)量。
[1]周建.關于軟件質(zhì)量的定量評估的研究[D].成都:電子科技大學,2007.
[2]曾慧明,劉衛(wèi)斌.企業(yè)軟件度量過程的研究[J].計算機仿真,2005(4):274-276.
[3]洪倫耀,董云衛(wèi).軟件質(zhì)量工程[M].西安:西安電子科技大學出版社,2004.
〔編輯:劉曉芳〕
TP311.52
A
10.15913/j.cnki.kjycx.2017.23.062
2095-6835(2017)23-0062-02
2016年重慶高校創(chuàng)新團隊建設計劃資助項目(編號:CXTDG201602006)