王麗麗
(長春理工大學 計算機科學技術學院,長春 130022)
手機軟件質量度量研究
王麗麗
(長春理工大學 計算機科學技術學院,長春 130022)
軟件質量度量是軟件開發中必不可少的一個環節,對評估軟件整體質量,加強項目管理有著至關重要的作用。隨著手機行業異軍突起,行業競爭日益激烈,對于軟件質量要求逐漸提高,手機軟件質量管理勢在必行。對于手機軟件質量度量的研究,將度量過程和手機軟件特性綜合分析后,提出了基于缺陷的積分法。首先,分析軟件質量度量過程;然后分析手機軟件基于敏捷開發過程的獨特性;之后,提出基于缺陷的加權法手機軟件質量度量方法;最后,通過實例分析將度量方法應用于實踐中并得出手機軟件的質量評價。研究內容對于手機軟件的管理和推廣具有積極意義。
手機軟件;質量度量;敏捷開發;缺陷;加權法
軟件質量管理是貫穿整個軟件生命周期的重要工作,是軟件項目成功完成并順利實施的可靠保證[1]。智能手機已經席卷全球,在生產生活中正扮演著重要的角色。隨著手機的普及和信息的爆炸式發展,用戶對于手機軟件的質量要求逐漸增高,對于手機軟件的質量管理理所應當成為項目管理的重要工作。通過嚴格度量手機軟件生命周期的階段,階段性地評估手機軟件質量水平,可以避免錯誤的發生率,提高產品質量指數,增加管理可見性。軟件質量度量提供了一種定量方法來度量產品內部屬性的質量,通過軟件質量度量可以預測軟件中潛在的錯誤,能夠在軟件產品完成之前進行質量評估,因而減少了軟件質量評估的主觀性,并且根據度量結果還可以改進軟件質量[1-3]。軟件質量度量方法有很多,基本思想都是將軟件質量按照“質量特性—子特性—影響子特性的因素”進行分層,從中尋找度量元,定量或定性地進行度量[4]。
想要得到科學的軟件評價數據,使軟件質量發揮真正的作用,就必須對軟件質量的度量過程充分理解,并且遵循正確的質量度量過程,確立完整的質量度量體系。在度量過程中,隨著時代的發展和人們的認知水平提升,不斷涌現出質量過程的想法。這其中非常著名的有美國電氣和電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)和能力成熟度模型集成(Capability Maturity Model Integration,CMMI)過程。IEEE著重于軟件過程質量,運用系統方法進行研究[5-6]。它將質量度量過程分為5個階段:第一,確認質量度量需求,對軟件質量度量的需求進行正確的確認;第二,選定軟件質量度量的表示,選擇合適的度量方法;第三,實施質量度量活動,對軟件進行質量度量操作;第四,分析和整理數據,對得到的數據進行分析和整理,存儲;第五,得出結果,經過數據分析最后得到軟件質量度量結果。CMMI由美國國防部與卡內基—梅隆大學和美國國防工業協會共同研制和開發[7],將整個軟件生命周期的度量分為三個階段:一是計劃階段,確定軟件質量目標;二是收集階段,采集收集數據;三是分析階段,在整理分析數據的同時存儲。度量的過程是對軟件質量評估的想法表示,思路體現。這兩種度量過程在本質上是相同的,沒有明顯區別,將兩者綜合起來可以得到以下的軟件質量度量過程,如圖1所示。

圖1 軟件質量度量過程
為了保證軟件質量度量的有效進行,保證工作的有效組織,軟件行業在軟件開發的實際過程中總結出了很多質量度量模型,來實現對于軟件的質量度量,實現軟件的質量評估。目前,主流的軟件質量模型分為兩類:關系模型和層次模型。比較有代表性的關系模型有Perry模型和Gillies模型。比較著名的層次模型包括McCall模型和ISO/IEC 9126質量模型。
ISO/IEC 9126軟件質量模型把軟件產品的質量劃分為三個不同的層次,分別是外部質量、內部質量和使用質量。內部質量是軟件產品自身的質量,是一種靜態的屬性,用來衡量產品的內部質量;外部質量是通過運行程序,對系統行為進行測量得出的。內部質量和外部質量的關系密不可分,緊密相聯。內部質量是軟件自有的內在屬性,外部質量是軟件產品的外在表現,是通過運行程序得到的質量。內部質量是外部質量表現的內在因素,外部質量屬性是內部質量屬性的表現形式。外部質量的缺陷會由內部的質量問題引發,在特定的環境下會影響軟件產品使用的質量,造成不良后果。這里將內部質量和外部質量劃分為六個質量特性,包括功能性、易用性、可靠性、高效性、維護性和可移植性6個一級指標,分析軟件的質量特征如圖2所示。

圖2 軟件內部質量和外部質量特征圖
敏捷開發是一種當下流行的手機開發模式,采用迭代、循序漸進的方法進行軟件開發,同時以用戶的需求進化為核心。敏捷開發的應運而生并逐漸推廣,主要目的是為了應對需求不斷快速變化的軟件開發難題。敏捷開發對與客戶和開發團隊之間的關系進行了變更,敏捷開發鼓勵客戶團隊與開發團隊雙方之間的面對面相互溝通,及時交換意見,同時提倡雙方改變傳統的合作關系,在溝通的基礎上進行緊密的合作。通過時時的互動,和用戶需求的及時接受,可以快速的向客戶交付新的軟件版本,來滿足客戶隨時變化的需求。在與用戶交流時,注重收集用戶反饋,根據用戶的反饋及時地針對性地做出回應。敏捷開發的這種開發方式,就是為了即時了解客戶需求并滿足,這樣可以得到真正符合用戶需求的軟件產品。
敏捷開發里運用最廣泛的方法之一是Scrum方法。在一個Scrum敏捷項目中,整個產品主要被分為四個部分:Product Backlog,Sprint Backlog,User Story,和Obstacles。它們相對應的是:產品的待開發項,迭代周期的待開發項,用戶故事和障礙。產品的待開發項包括所有的用戶需求和軟件要求;迭代的待開發項是指在一個迭代周期內的任務項;用戶故事是對用戶需求的一個簡化,是系統里實現某種功能的模塊稱謂;障礙即為產品缺陷,缺陷是軟件產品開發或維護過程中存在的錯誤等各種問題;從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背[8]。
敏捷開發的主要特點就是頻繁的迭代開發,之后再把每個迭代的開發任務細分到以天為單位,并要求每天都發布可以運行的版本[9,10]。在不斷的迭代周期中評估軟件的質量,是敏捷開發環境中手機軟件質量度量的難點。
在敏捷開發模式中,產品待開發項目就是軟件項目,在整個軟件項目開發周期中,通過模塊或者其他標準進行分解,可以得到多個迭代周期,也就是說,軟件的生命周期是由一個個連續的迭代周期組成的。在每個迭代周期內,完成這個周期的開發任務,進行用戶故事的實現和編寫,通過反復迭代達到增量開發的結果,最后將各個迭代周期的完成成果組合統一,就得到了最終的開發結果。敏捷開發任務分解如圖3所示。

圖3 敏捷開發任務分解
根據軟件質量的定義,從整體結果來看,對用戶的滿意度評估是軟件質量的評估的主要依據,從軟件項目管理的角度看,用戶滿意度的高低就是用戶需求的實現程度,用戶需求達到的高度。在敏捷開發模式中,用戶故事代表用戶需求,缺陷代表測試發現的問題,缺陷的發生當然會包含到軟件評估中,因此,對軟件質量的評估可以通過軟件用戶需求的實現程度來衡量,也就是說,可以通過用戶需求的缺陷程度來衡量。缺陷越多,軟件質量越差;反之,缺陷越少,用戶的需求實現度越高,軟件質量越好。
為了度量軟件質量,用戶故事和缺陷的屬性除了本身的基本性質外,還應具備以下屬性:
(1)模塊,就是該用戶故事或缺陷屬于軟件模塊的哪個部分,可以通過這個屬性評價模塊的軟件質量,從而比較各個模塊間的質量程度高低。
(2)權重,就是用戶故事的優先級或者缺陷的嚴重程度,區分了用戶故事的優先級和缺陷的嚴重程度,不同級別的用戶故事或者缺陷對于整體軟件的用戶滿意度起到的作用是截然不同的。
(3)質量特性,就是一個用戶故事的設計是為了度量哪種質量特性,是度量功能性、可靠性、易使用性等6個質量性質中的哪一種或者哪幾種。一個用戶故事可以設計為一條或幾條質量特性,這個屬性可以衡量不同的質量特性的質量水平,便于最后進行綜合的質量度量計算。
(4)迭代周期,就是用戶該用戶故事或者缺陷屬于哪一個迭代周期,這個屬性可以對不同的迭代周期的質量進行評價。
通過掙值分析的思想得知,綜合手機軟件質量度量的目標,手機軟件的質量得分,由總分和缺陷分兩個方面的分數決定:第一方面是總的質量得分,是計劃實現用戶故事的質量得分;第二個方面是抵扣的質量得分,這一部分得分是因為缺陷產生的,缺陷對軟質量的負面影響需要作為被減數被減掉。手機軟件的質量得分則等于:總分減去缺陷分,再除以總分。
前文提到的軟件的質量特性有功能性、可靠性、易用性、高效性、維護性和可移植性6個方面,在此將六個方面進行分別評估,再進行匯總。
假設某個模塊在一個迭代周期里,計劃實現某種質量特性的用戶故事數量是n,其中按影響力可分為三個等級,用戶故事數量分別是n1,n2,n3,三種故事的權重分別a1,a2,a3,那么總的質量得分Q則為:

同樣在這個迭代周期的同一模塊中,通過測試發現了一些沒有完成的用戶故事,也就是缺陷m,其中有不同影響力的缺陷數量為m1,m2,m3,三種缺陷的質量影響權重分別為b1,b2,b3,那么缺陷的不利影響也就是需要抵扣的質量分Q1為:

需要注意的是必須是同一迭代周期中同一模塊的缺陷,否則不需要計算其中。
綜上,可以得到,在單個迭代周期中某個模塊的某種質量特性水平Qs為:

為了便于對其他模塊的橫向比較,將所得結果進行數學標準化評分,也就是如上式所示的比值。同時,在上述的情況中,用戶故事的缺陷數量是不大于用戶故事總量的,因為測試是在同模塊中操作的,所以Qs的大小是位于0到100之間的,數量越大表示用戶故事完成率越高,可靠性越高,質量越好。
通過上文的計算,就可以評估出各個質量特性的質量水平。例如要計算某個模塊在某個迭代周期中的功能性質量水平,就可以將這個周期內所有功能性用戶故事挑選出來,進行測試,得到相應的總質量得分和需要抵扣的不利影響得分,便可以計算出功能性質量水平Qs1。同理,可靠性、效率等都可得出相應的Qs2、Qs3等等。
在上文中計算的是軟件或者模塊對于不同的軟件質量性質的結果,比如功能性、可靠性等等。對于軟件整體的質量評價,需要對所得的6個方面的質量性質結果進行綜合評價。在這里,需要對這6種性質進行權重的確定,因為不同的權重的設計,權重的確定是否合理對于最后的評價結果的科學性有直接的作用。確定權重的方法有很多,文中運用專家排序法并結合作者的經驗確定。在此,將設定質量性質權重W為:
W={功能性,可靠性,易用性,高效性,維護性,移植性}={W1,W2,W3,W4,W5,W6}={0.27,0.22,0.15,0.13,0.17,0.06}
假設整個手機軟件系統截至當前計劃實現的用戶故事數是N,根據影響力區分,分別有N1,N2,N3個不同級別的用戶故事,期間通過測試活動發現了M個不同影響力的缺陷,分別有M1,M2,M3個不同級別的缺陷。為了便于計算,在此將用戶故事的實現和缺陷都分為三個級別:嚴重,重要,次要。通過賦予不同權重并兩兩比較進行計算,將用戶故事權重A和缺陷權重B設為:
A={嚴重,重要,次要}={A1,A2,A3}={0.7,0.2,0.1}
B={嚴重,重要,次要}={B1,B2,B3}={0.7,0.2,0.1}
至此,積分法手機軟件質量度量模型可以總結為2步。
第1步:計算6個方面軟件性質得分。計算方法為:

第2步:將6個方面的質量得分通過權重進行加權計算。軟件質量總分為:

加權法手機軟件質量度量方法適用于各個質量性質之間互不影響、相互獨立的情況,這樣可以得到更科學的度量結果。這其中六個不同的質量性質之間雖然不完全獨立,但通過專家法對于不同的性質賦予了不同的權重,所以質量性質之間的相互影響可以忽略不計。
某手機企業欲推出一款手機,現在開發階段到對手機主要功能軟件的質量進行度量,得到質量評價。經過測試,得到對應的更軟件質量性質的用戶故事的完成情況和缺陷數量如表1所示。

表1 用戶故事和缺陷數量
運用公式(4)進行規范化數據處理得到的結果如表2所示。

表2 質量性質水平
運用公式(5)進行總度量,手機軟件截止到目前的得分為:45.95。
手機軟件質量管理是貫穿整個軟件生命周期的重要工作,是軟件系項目成功完成并順利實施的可靠保證[1]。所提出的加權法相對于其他軟件質量度量方法的優點有:通過加權法可以對各個性質之間進行線性補償,使得結果更合理并且更科學;權重系數對于最后的評估結果影響大,因為權重之間的設置本身就有一定差距,計算之后得到的結果有所偏重,可以對用戶需求的實現進行不同指標的評估;計算簡便,方法簡易,可操作性強,容易上手;對于手機軟件在敏捷開發模式中對于迭代、模塊的分別評估可以基本做到,可以在開發的任何階段進行任意模塊的檢測,便于進行模塊間的縱向對比,和迭代周期中的橫向比較。對于手機軟件的質量度量具有研究意義。
[1]任永昌,彭霞,常革新.軟件項目質量控制相關技術研究[J].計算機技術與發展,2012,22(10):143-146.
[2]Shatnawi R,Li Wei.The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process[J].Journal of systems and software,2008,81(11):1868-1882.
[3]Nair T R G,Selvarani R.Defect proneness estimation and feedback approach for software design quality improvement[J].Information J]. nformati technology,2012,54(3):274-285.
[4]馬秋慧.基于使用質量的軟件質量度量技術和評價模型研究[J].軟件導刊,2012,11(8):3-5.
[5]石柱,白璐玲.《IEEE軟件質量度量方法學標準》簡介[J].航天標準化,2000(2):45-47.
[6]Schneidewind N.What can software engineers learn from manufacturing to improve software process and product?[J].Journal of intelligent manufacturing,2011,22(4):597-606.
[7]孔垂云.基于CMMI的軟件質量度量研究[D].北京:北京交通大學,2009.
[8]張社英.軟件質量度量方法學及其應用[J].北京航空航天大學報,1997,23(1):61-67.
[9]劉謙.敏捷方法在軟件項目管理中的應用[D].上海:上海交通大學,2011.
[10]程博.面向敏捷開發項目的工作量估算模型的研究與應用[D].北京:北京工業大學,2012.
[11]譚宇,楊華民,王鵬.面向對象軟件度量技術的分析和綜述[J].長春理工大學學報:自然科學版,2013,36(Z2):152-156.
Research on Mobile Phone Software Quality Metrics
WANG Lili
(School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022)
As an essential part in software development,software quality metric is of vital importance to software overall quality evaluation and strengthening project management.With the emergence of mobile phone industry,the industrial competition is growing increasingly fierce,while the demand for software quality has been gradually improved.Therefore,it is imperative to conduct quality management over mobile phone software.With regard to the research on mobile phone software quality metric,on the basis of a comprehensive analysis on the process and mobile phone software characteristics,the paper put forward the defect-based integral method.Firstly,it analyzed the metric process of mobile phone software.Secondly,it pointed out the particularity of agile development process-based mobile phone software.Thirdly,mobile phone software metric method,which is based on defect weighted-method.Fourthly,through case analysis,the paper applied metric method to practice and gained the quality evaluation of mobile phone software.The research contents are of positive significance to mobile phone software management and promotion.
mobile phone software;quality metric;agile development;defect;weighted-method
TP311
A
1672-9870(2017)05-0115-04
2017-09-20
王麗麗(1993-),女,碩士研究生,E-mail:774030950@qq.com