陈奂昊 洪流
摘 要:随着软件行业的成熟,对软件定量评价的必要性增大。作者借鉴功能点分析法[1]结合自身多年系统测试的经验,提出一套软件外部质量[2]的评价模型,简便可行的解决了软件质量工程评价过程中因缺少实操性而难以量化的难题,为软件工程质量定量评价提供客观可行的方案。
关键词:功能点分析法;软件质量评价;软件度量
中图分类号:TP311.5 文献标识码:A
1 引言(Introduction)
软件质量难以量化,寻找客观、可量化的软件评价方法是软件工程研究的方向之一。软件的定量研究难度大,被认为是“寻找不可能的圣杯”[1]而测量学却认为“凡是不能测量的,便是不能对其进行控制的”[1],所以软件测量的标尺只能采用折中、平衡和约定性的。Allan Albrecht提出了功能点分析法(Function Point Analysis,FPA)[1,3]被国际软件行业逐渐认可。本文提出基于FPA的软件评价计算模型,该模型可用于软件的外部质量评价,对软件质量评价量化提供参考。
2 软件度量(Software metrics)
2.1 软件度量分类
在软件生存周期中对软件质量的度量方式主要分为三种:内部、外部和使用质量度量[4]。内部质量度量是从设计和开发的角度进行,外部质量基于规格说明,使用度量则是从真实世界的需求角度来考虑。本文仅对外部质量度量进行讨论。
2.2 软件度量过程
软件度量过程大体可以分为四步:需求分析、设计、执行、分析结果。度量需求分析是有效构造软件质量客观评价的前提。度量需求分析的依据通常是需求规格说明。其次确定产品的类型,最后选择相应的软件质量模型。
设计包括:选择度量类型、确定定量定级水平[5]、确定评价规则。软件的质量特性无法直接度量,因此需定义各质量特性的等级、各质量特性标识,确定定量定级水平。
执行过程是收集和分析测试数据的过程。采集的数据应该基于正确定义的度量和模型,从而保证数据的正确性、准确性和精度;因此,在收集数据之前,应当设定数据采集的目标,并且定义有意义的问题。同时必须详细规定使用的数据分类计划,避免脱离度量采集无用信息。
收集到数据后,必须选择合适的度量指标,采用一种适当的方式对数据进行分析处理,得出度量结果[6]。
3 软件外部质量评价模型(Software evaluation
model of external quality)
根据ISO/IEC 14598的要求,定量测量的结果需映射到标度上[4],为了便于理解,我们采用百分制的标度,根据计算结果,将评估结果分为不合格、合格、良好、优秀四个等级。
3.1 确定软件质量特性权重
(1)软件外部质量特性分类
按照ISO/IEC 9126中对软件外部质量度量特性的要求,将软件外部质量特性分为功能性、可靠性、易用性、效率、维护性和可移植性[2]。
(2)软件外部质量特性权重
软件外部质量特性的权重是指软件外部质量特性占软件整体质量的比重,反映各质量特性对软件产品质量的影响大小。权重的确定由项目的技术委员会确定,技术委员会成员由项目干系方及行业专家组成,由多方确定的结果保障了模型计算结果的合法、有效性。
一般情况下,功能是软件的根本,非功能特性本质是功能的延伸,因而功能在软件质量特性中权重最高,外部质量的度量可将非功能性折算为FPA。权重矩Wi(其中∑Wi=1)[5],Wi=(W1,W2,W3,W4,W5,W6)T=(功能性,可靠性,可靠性,易用性,维护性,可移植性)T。
3.2 软件问题的量化
(1)软件问题评分规则的确定
质量评价中,软件问题是重要的评分依据,通常对软件问题进行分级,分别是致命、严重、一般、微小和其他[7]。
在该评价模型中,问题严重性的定义由高到低,1级问题为最严重问题,以此类推。为了使问题等级的划分清晰、便于计算,我们将赋予问题等级相应的计分值,形成问题等级矩阵Ki=(1,2,3,4,5)=(不合格,-3,-2,-1,-1)。
(2)软件问题计分值的确定
在对软件进行测试时,对各软件特性设计测试用例,对相应类型的软件问题形成问题矩阵Tij(i:问题等级,j:软件特性),形成如下的矩阵:
在问题等级矩阵Ki和问题矩阵Tij都明确后,我们可以计算得出计分值矩阵Fi=|Ki*Tij|。
3.3 综合得分的计算
(1)计分比值的确定
在计算得出Fi后,定义用例矩阵Yi=(功能性用例数,效率用例数,可靠性用例数,易用性用例数,维护性用例数,可移植性用例数),为了把非功能质量因素转化为FPA,这里将效率用例的转换系数设置为a,可靠性用例的转换系数设置为b,易用性用例的转换系数设置为c,维护性用例的转换系数设置为d,可移植性用例的转换系数设置为e。
Yi=(Y1,aY2,bY3,cY4,dY5,eY6)
通过矩阵Fi和Yi我们可以得出计分比值的矩阵Bi,矩阵Bi中的值为矩阵Y与矩阵F相减后除以矩阵Y相应位置的值得到。
(2)综合得分值的确定
获取Bi后,我们就可以得出最终的综合得分Z=Bi*Wi*100。
4 实例应用(Example)
4.1 需求分析及采样
某政府部门的业务系统,系统为本级及下级单位提供服务,这类业务具有极高的相似度,适合于本评价模型进行评价。在该项目实例中,设计的测试用例总数为355(个),其中功能性211,效率11,可靠性102,易用性15,维护性12,可移植性4。此外问题情况是(个):功能性58,效率2,可靠性19,易用性3,维护性0,可移植性1。endprint
4.2 模型计算
(1)软件外部质量特性权重
按照技术委员会的确定,软件外部质量特性权重矩阵W=(0.4,0.25,0.15,0.1,0.05,0.05)T=(功能性,效率,可靠性,易用性,维护性,可移植性)T。
(2)软件问题评分规则
软件问题评分规则矩阵K=(不合格,-3,-2,-1,-1)。
(3)软件问题计分值
对软件问题个数进行确认,则获取到的软件问题矩阵:
按照上面给出的计算模型,可以计算出结果并存放到矩阵中,F=|(-89,-4,-5,-2,-1,-1)|=(89,4,5,2,1,1)。
(4)计分比值
为计算方便,将a、b、c、d、e的值均取为1,Yi=(Y1,Y2,Y3,Y4,Y5,Y6),Y=(211,11,102,15,12,4),可计算出计分用例比,计算值存放到矩阵B中,则B=(0.58,
0.64,0.95,0.87,0.92,0.75)。
(5)综合得分值
最终的综合得分值Z=B*W*100=70.4,计算过程如下所示,系统的评价结论为合格。
Z=B*W*100=(0.58,0.64,0.95,0.87,0.92,0.75)*(0.4,
0.25,0.15,0.1,0.05,0.05)T*100=0.704*100=70.4
5 结论(Conclusion)
软件评价结果的直观性是软件测试人员和用户的追求,解决好软件量化问题以及提供简便易行的计算方法成为该领域重点研究方向之一,本文所提出的软件质量评估计算模型简便易行,同时评估过程严谨,为工程实践提供了高可靠、可行性强的评价解决方法。
参考文献(References)
[1] Norman E.Fenton(英),Shari Lawrence Pfleeger(美).Software
Metrics A Rigorous and Practical Approach 201-205.
[2] GB/T 16260.1-2006(ISO/IEC 9126-1:2001)软件工程产品质
量第1部分:质量模型(Software engineering Product
quality):3-5.
[3] 王颖,柳小军.基于功能点的软件度量在项目管理中的应用
[J].中国电子科学研究院学报,2013,8(1):82-83.
[4] GB/T18905.1-2002(ISO/IEC 14598-1:1999)软件工程产品
评价第1部(Information technology-Software product
evaluation-Part 1): 5-15.
[5] Roger S.Pressman(美).Software Engineering A Practitioner's
Approach:333-344;483-492.
[6] 曹济,温丽.软件项目功能点度量方法与应用[M].北京:清华大
学出版社,2012:23-44.
[7] 尹平,许聚常,张慧颖.软件测试与软件质量评价[M].北京:国
防工业出版社,2008:23-56.
作者简介:
陈奂昊(1972-),男,本科,工程师.研究领域:第三方系统评
测,Web性能评测.
洪 流(1988-),男,硕士,助理工程师.研究领域:第三方系
统评测,软件工程化.endprint
4.2 模型计算
(1)软件外部质量特性权重
按照技术委员会的确定,软件外部质量特性权重矩阵W=(0.4,0.25,0.15,0.1,0.05,0.05)T=(功能性,效率,可靠性,易用性,维护性,可移植性)T。
(2)软件问题评分规则
软件问题评分规则矩阵K=(不合格,-3,-2,-1,-1)。
(3)软件问题计分值
对软件问题个数进行确认,则获取到的软件问题矩阵:
按照上面给出的计算模型,可以计算出结果并存放到矩阵中,F=|(-89,-4,-5,-2,-1,-1)|=(89,4,5,2,1,1)。
(4)计分比值
为计算方便,将a、b、c、d、e的值均取为1,Yi=(Y1,Y2,Y3,Y4,Y5,Y6),Y=(211,11,102,15,12,4),可计算出计分用例比,计算值存放到矩阵B中,则B=(0.58,
0.64,0.95,0.87,0.92,0.75)。
(5)综合得分值
最终的综合得分值Z=B*W*100=70.4,计算过程如下所示,系统的评价结论为合格。
Z=B*W*100=(0.58,0.64,0.95,0.87,0.92,0.75)*(0.4,
0.25,0.15,0.1,0.05,0.05)T*100=0.704*100=70.4
5 结论(Conclusion)
软件评价结果的直观性是软件测试人员和用户的追求,解决好软件量化问题以及提供简便易行的计算方法成为该领域重点研究方向之一,本文所提出的软件质量评估计算模型简便易行,同时评估过程严谨,为工程实践提供了高可靠、可行性强的评价解决方法。
参考文献(References)
[1] Norman E.Fenton(英),Shari Lawrence Pfleeger(美).Software
Metrics A Rigorous and Practical Approach 201-205.
[2] GB/T 16260.1-2006(ISO/IEC 9126-1:2001)软件工程产品质
量第1部分:质量模型(Software engineering Product
quality):3-5.
[3] 王颖,柳小军.基于功能点的软件度量在项目管理中的应用
[J].中国电子科学研究院学报,2013,8(1):82-83.
[4] GB/T18905.1-2002(ISO/IEC 14598-1:1999)软件工程产品
评价第1部(Information technology-Software product
evaluation-Part 1): 5-15.
[5] Roger S.Pressman(美).Software Engineering A Practitioner's
Approach:333-344;483-492.
[6] 曹济,温丽.软件项目功能点度量方法与应用[M].北京:清华大
学出版社,2012:23-44.
[7] 尹平,许聚常,张慧颖.软件测试与软件质量评价[M].北京:国
防工业出版社,2008:23-56.
作者简介:
陈奂昊(1972-),男,本科,工程师.研究领域:第三方系统评
测,Web性能评测.
洪 流(1988-),男,硕士,助理工程师.研究领域:第三方系
统评测,软件工程化.endprint
4.2 模型计算
(1)软件外部质量特性权重
按照技术委员会的确定,软件外部质量特性权重矩阵W=(0.4,0.25,0.15,0.1,0.05,0.05)T=(功能性,效率,可靠性,易用性,维护性,可移植性)T。
(2)软件问题评分规则
软件问题评分规则矩阵K=(不合格,-3,-2,-1,-1)。
(3)软件问题计分值
对软件问题个数进行确认,则获取到的软件问题矩阵:
按照上面给出的计算模型,可以计算出结果并存放到矩阵中,F=|(-89,-4,-5,-2,-1,-1)|=(89,4,5,2,1,1)。
(4)计分比值
为计算方便,将a、b、c、d、e的值均取为1,Yi=(Y1,Y2,Y3,Y4,Y5,Y6),Y=(211,11,102,15,12,4),可计算出计分用例比,计算值存放到矩阵B中,则B=(0.58,
0.64,0.95,0.87,0.92,0.75)。
(5)综合得分值
最终的综合得分值Z=B*W*100=70.4,计算过程如下所示,系统的评价结论为合格。
Z=B*W*100=(0.58,0.64,0.95,0.87,0.92,0.75)*(0.4,
0.25,0.15,0.1,0.05,0.05)T*100=0.704*100=70.4
5 结论(Conclusion)
软件评价结果的直观性是软件测试人员和用户的追求,解决好软件量化问题以及提供简便易行的计算方法成为该领域重点研究方向之一,本文所提出的软件质量评估计算模型简便易行,同时评估过程严谨,为工程实践提供了高可靠、可行性强的评价解决方法。
参考文献(References)
[1] Norman E.Fenton(英),Shari Lawrence Pfleeger(美).Software
Metrics A Rigorous and Practical Approach 201-205.
[2] GB/T 16260.1-2006(ISO/IEC 9126-1:2001)软件工程产品质
量第1部分:质量模型(Software engineering Product
quality):3-5.
[3] 王颖,柳小军.基于功能点的软件度量在项目管理中的应用
[J].中国电子科学研究院学报,2013,8(1):82-83.
[4] GB/T18905.1-2002(ISO/IEC 14598-1:1999)软件工程产品
评价第1部(Information technology-Software product
evaluation-Part 1): 5-15.
[5] Roger S.Pressman(美).Software Engineering A Practitioner's
Approach:333-344;483-492.
[6] 曹济,温丽.软件项目功能点度量方法与应用[M].北京:清华大
学出版社,2012:23-44.
[7] 尹平,许聚常,张慧颖.软件测试与软件质量评价[M].北京:国
防工业出版社,2008:23-56.
作者简介:
陈奂昊(1972-),男,本科,工程师.研究领域:第三方系统评
测,Web性能评测.
洪 流(1988-),男,硕士,助理工程师.研究领域:第三方系
统评测,软件工程化.endprint