APP下载

手机软件质量度量研究

2017-11-29王丽丽

关键词:手机软件度量权重

王丽丽

(长春理工大学 计算机科学技术学院,长春 130022)

手机软件质量度量研究

王丽丽

(长春理工大学 计算机科学技术学院,长春 130022)

软件质量度量是软件开发中必不可少的一个环节,对评估软件整体质量,加强项目管理有着至关重要的作用。随着手机行业异军突起,行业竞争日益激烈,对于软件质量要求逐渐提高,手机软件质量管理势在必行。对于手机软件质量度量的研究,将度量过程和手机软件特性综合分析后,提出了基于缺陷的积分法。首先,分析软件质量度量过程;然后分析手机软件基于敏捷开发过程的独特性;之后,提出基于缺陷的加权法手机软件质量度量方法;最后,通过实例分析将度量方法应用于实践中并得出手机软件的质量评价。研究内容对于手机软件的管理和推广具有积极意义。

手机软件;质量度量;敏捷开发;缺陷;加权法

软件质量管理是贯穿整个软件生命周期的重要工作,是软件项目成功完成并顺利实施的可靠保证[1]。智能手机已经席卷全球,在生产生活中正扮演着重要的角色。随着手机的普及和信息的爆炸式发展,用户对于手机软件的质量要求逐渐增高,对于手机软件的质量管理理所应当成为项目管理的重要工作。通过严格度量手机软件生命周期的阶段,阶段性地评估手机软件质量水平,可以避免错误的发生率,提高产品质量指数,增加管理可见性。软件质量度量提供了一种定量方法来度量产品内部属性的质量,通过软件质量度量可以预测软件中潜在的错误,能够在软件产品完成之前进行质量评估,因而减少了软件质量评估的主观性,并且根据度量结果还可以改进软件质量[1-3]。软件质量度量方法有很多,基本思想都是将软件质量按照“质量特性—子特性—影响子特性的因素”进行分层,从中寻找度量元,定量或定性地进行度量[4]。

1 软件质量度量

1.1 软件质量度量的过程

想要得到科学的软件评价数据,使软件质量发挥真正的作用,就必须对软件质量的度量过程充分理解,并且遵循正确的质量度量过程,确立完整的质量度量体系。在度量过程中,随着时代的发展和人们的认知水平提升,不断涌现出质量过程的想法。这其中非常著名的有美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)和能力成熟度模型集成(Capability Maturity Model Integration,CMMI)过程。IEEE着重于软件过程质量,运用系统方法进行研究[5-6]。它将质量度量过程分为5个阶段:第一,确认质量度量需求,对软件质量度量的需求进行正确的确认;第二,选定软件质量度量的表示,选择合适的度量方法;第三,实施质量度量活动,对软件进行质量度量操作;第四,分析和整理数据,对得到的数据进行分析和整理,存储;第五,得出结果,经过数据分析最后得到软件质量度量结果。CMMI由美国国防部与卡内基—梅隆大学和美国国防工业协会共同研制和开发[7],将整个软件生命周期的度量分为三个阶段:一是计划阶段,确定软件质量目标;二是收集阶段,采集收集数据;三是分析阶段,在整理分析数据的同时存储。度量的过程是对软件质量评估的想法表示,思路体现。这两种度量过程在本质上是相同的,没有明显区别,将两者综合起来可以得到以下的软件质量度量过程,如图1所示。

图1 软件质量度量过程

1.2 软件质量度量的模型及质量性质

为了保证软件质量度量的有效进行,保证工作的有效组织,软件行业在软件开发的实际过程中总结出了很多质量度量模型,来实现对于软件的质量度量,实现软件的质量评估。目前,主流的软件质量模型分为两类:关系模型和层次模型。比较有代表性的关系模型有Perry模型和Gillies模型。比较著名的层次模型包括McCall模型和ISO/IEC 9126质量模型。

ISO/IEC 9126软件质量模型把软件产品的质量划分为三个不同的层次,分别是外部质量、内部质量和使用质量。内部质量是软件产品自身的质量,是一种静态的属性,用来衡量产品的内部质量;外部质量是通过运行程序,对系统行为进行测量得出的。内部质量和外部质量的关系密不可分,紧密相联。内部质量是软件自有的内在属性,外部质量是软件产品的外在表现,是通过运行程序得到的质量。内部质量是外部质量表现的内在因素,外部质量属性是内部质量属性的表现形式。外部质量的缺陷会由内部的质量问题引发,在特定的环境下会影响软件产品使用的质量,造成不良后果。这里将内部质量和外部质量划分为六个质量特性,包括功能性、易用性、可靠性、高效性、维护性和可移植性6个一级指标,分析软件的质量特征如图2所示。

图2 软件内部质量和外部质量特征图

2 敏捷开发下的质量层次

2.1 敏捷开发

敏捷开发是一种当下流行的手机开发模式,采用迭代、循序渐进的方法进行软件开发,同时以用户的需求进化为核心。敏捷开发的应运而生并逐渐推广,主要目的是为了应对需求不断快速变化的软件开发难题。敏捷开发对与客户和开发团队之间的关系进行了变更,敏捷开发鼓励客户团队与开发团队双方之间的面对面相互沟通,及时交换意见,同时提倡双方改变传统的合作关系,在沟通的基础上进行紧密的合作。通过时时的互动,和用户需求的及时接受,可以快速的向客户交付新的软件版本,来满足客户随时变化的需求。在与用户交流时,注重收集用户反馈,根据用户的反馈及时地针对性地做出回应。敏捷开发的这种开发方式,就是为了即时了解客户需求并满足,这样可以得到真正符合用户需求的软件产品。

敏捷开发里运用最广泛的方法之一是Scrum方法。在一个Scrum敏捷项目中,整个产品主要被分为四个部分:Product Backlog,Sprint Backlog,User Story,和Obstacles。它们相对应的是:产品的待开发项,迭代周期的待开发项,用户故事和障碍。产品的待开发项包括所有的用户需求和软件要求;迭代的待开发项是指在一个迭代周期内的任务项;用户故事是对用户需求的一个简化,是系统里实现某种功能的模块称谓;障碍即为产品缺陷,缺陷是软件产品开发或维护过程中存在的错误等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背[8]。

敏捷开发的主要特点就是频繁的迭代开发,之后再把每个迭代的开发任务细分到以天为单位,并要求每天都发布可以运行的版本[9,10]。在不断的迭代周期中评估软件的质量,是敏捷开发环境中手机软件质量度量的难点。

2.2 敏捷开发环境下的质量层次

在敏捷开发模式中,产品待开发项目就是软件项目,在整个软件项目开发周期中,通过模块或者其他标准进行分解,可以得到多个迭代周期,也就是说,软件的生命周期是由一个个连续的迭代周期组成的。在每个迭代周期内,完成这个周期的开发任务,进行用户故事的实现和编写,通过反复迭代达到增量开发的结果,最后将各个迭代周期的完成成果组合统一,就得到了最终的开发结果。敏捷开发任务分解如图3所示。

图3 敏捷开发任务分解

3 基于缺陷的加权评价方法

3.1 需要的数据

根据软件质量的定义,从整体结果来看,对用户的满意度评估是软件质量的评估的主要依据,从软件项目管理的角度看,用户满意度的高低就是用户需求的实现程度,用户需求达到的高度。在敏捷开发模式中,用户故事代表用户需求,缺陷代表测试发现的问题,缺陷的发生当然会包含到软件评估中,因此,对软件质量的评估可以通过软件用户需求的实现程度来衡量,也就是说,可以通过用户需求的缺陷程度来衡量。缺陷越多,软件质量越差;反之,缺陷越少,用户的需求实现度越高,软件质量越好。

为了度量软件质量,用户故事和缺陷的属性除了本身的基本性质外,还应具备以下属性:

(1)模块,就是该用户故事或缺陷属于软件模块的哪个部分,可以通过这个属性评价模块的软件质量,从而比较各个模块间的质量程度高低。

(2)权重,就是用户故事的优先级或者缺陷的严重程度,区分了用户故事的优先级和缺陷的严重程度,不同级别的用户故事或者缺陷对于整体软件的用户满意度起到的作用是截然不同的。

(3)质量特性,就是一个用户故事的设计是为了度量哪种质量特性,是度量功能性、可靠性、易使用性等6个质量性质中的哪一种或者哪几种。一个用户故事可以设计为一条或几条质量特性,这个属性可以衡量不同的质量特性的质量水平,便于最后进行综合的质量度量计算。

(4)迭代周期,就是用户该用户故事或者缺陷属于哪一个迭代周期,这个属性可以对不同的迭代周期的质量进行评价。

3.2 加权法手机软件质量度量方法

通过挣值分析的思想得知,综合手机软件质量度量的目标,手机软件的质量得分,由总分和缺陷分两个方面的分数决定:第一方面是总的质量得分,是计划实现用户故事的质量得分;第二个方面是抵扣的质量得分,这一部分得分是因为缺陷产生的,缺陷对软质量的负面影响需要作为被减数被减掉。手机软件的质量得分则等于:总分减去缺陷分,再除以总分。

前文提到的软件的质量特性有功能性、可靠性、易用性、高效性、维护性和可移植性6个方面,在此将六个方面进行分别评估,再进行汇总。

3.2.1 单个模块在单个迭代周期的软件质量性质水平

假设某个模块在一个迭代周期里,计划实现某种质量特性的用户故事数量是n,其中按影响力可分为三个等级,用户故事数量分别是n1,n2,n3,三种故事的权重分别a1,a2,a3,那么总的质量得分Q则为:

同样在这个迭代周期的同一模块中,通过测试发现了一些没有完成的用户故事,也就是缺陷m,其中有不同影响力的缺陷数量为m1,m2,m3,三种缺陷的质量影响权重分别为b1,b2,b3,那么缺陷的不利影响也就是需要抵扣的质量分Q1为:

需要注意的是必须是同一迭代周期中同一模块的缺陷,否则不需要计算其中。

综上,可以得到,在单个迭代周期中某个模块的某种质量特性水平Qs为:

为了便于对其他模块的横向比较,将所得结果进行数学标准化评分,也就是如上式所示的比值。同时,在上述的情况中,用户故事的缺陷数量是不大于用户故事总量的,因为测试是在同模块中操作的,所以Qs的大小是位于0到100之间的,数量越大表示用户故事完成率越高,可靠性越高,质量越好。

通过上文的计算,就可以评估出各个质量特性的质量水平。例如要计算某个模块在某个迭代周期中的功能性质量水平,就可以将这个周期内所有功能性用户故事挑选出来,进行测试,得到相应的总质量得分和需要抵扣的不利影响得分,便可以计算出功能性质量水平Qs1。同理,可靠性、效率等都可得出相应的Qs2、Qs3等等。

3.2.2 积分法手机软件质量度量模型

在上文中计算的是软件或者模块对于不同的软件质量性质的结果,比如功能性、可靠性等等。对于软件整体的质量评价,需要对所得的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个方面的质量得分通过权重进行加权计算。软件质量总分为:

加权法手机软件质量度量方法适用于各个质量性质之间互不影响、相互独立的情况,这样可以得到更科学的度量结果。这其中六个不同的质量性质之间虽然不完全独立,但通过专家法对于不同的性质赋予了不同的权重,所以质量性质之间的相互影响可以忽略不计。

4 实例分析

某手机企业欲推出一款手机,现在开发阶段到对手机主要功能软件的质量进行度量,得到质量评价。经过测试,得到对应的更软件质量性质的用户故事的完成情况和缺陷数量如表1所示。

表1 用户故事和缺陷数量

运用公式(4)进行规范化数据处理得到的结果如表2所示。

表2 质量性质水平

运用公式(5)进行总度量,手机软件截止到目前的得分为:45.95。

5 结论

手机软件质量管理是贯穿整个软件生命周期的重要工作,是软件系项目成功完成并顺利实施的可靠保证[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

猜你喜欢

手机软件度量权重
有趣的度量
模糊度量空间的强嵌入
告诉你猫开不开心的手机软件
权重常思“浮名轻”
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
心血管病患者服药提醒手机软件的设计与应用
为党督政勤履职 代民行权重担当
基于公约式权重的截短线性分组码盲识别方法
简述手机软件的安装与使用
地质异常的奇异性度量与隐伏源致矿异常识别