论文部分内容阅读
软件质量评估是保障软件可信性的关键技术之一,软件质量评估技术主要包括质量模型和评价方法。国际标准化组织1991年颁布了ISO9126-1991标准《软件产品评价-质量特性及其使用指南》,将诸多的软件质量和度量模型统一到一个模型中。ISO/IEC标准给出了两种通用的软件质量模型-描述内部质量和外部质量时用的模型及描述使用质量时用的模型。ISO/IEC JTC1于1998年开始结合软件工程领域的研究进展,对ISO/IEC9126:1991标准进行了修订,将原标准中有关软件质量模型和质量特性的部分与有关依据质量特性评价软件质量的部分进行了划分,并充实了很多新的研究进展,有关软件评价部分的内容形成了ISO/IEC14598《软件工程产品评价》标准,有关质量特性和质量模型部分仍称为ISO/IEC9126《软件工程产品质量》标准。
使用质量是指软件产品使指定用户在特定的使用周境下达到满足有效性、生产率、安全性及满意度要求的特定目标的能力,它是根据使用软件的结果而不是软件自身的属性来测量的。ISO/IEC使用质量的属性分类为四个特性:有效性,生产率,安全性和满意度。
可用性指的是产品对用户来说有效、易学、高效、好记、少错和令人满意的程度,即用户能否用产品完成他的任务,效率如何,主观感受怎样,实际上是从用户角度所看到的产品质量,是产品竞争力的核心。它是以用户为中心的。ISO9241-11国际标准对可用性作了如下定义:产品在特定使用环境下为特定用户用于特定用途时所具有的有效性(effectiveness)、效率(efficiency)和用户主观满意度(satisfaction)。
随着计算机技术、数据融合技术、网络技术和通信技术的飞速发展,对软件功能提出的要求也越来越高,如何评估软件质量已成为一个迫切需要解决的课题。评价一套软件系统的质量,一方面要对其所表现出来的外部特征进行研究,另一方面还应对其内部结构进行分析。因为构成软件系统的程序代码质量如何直接决定了整个软件系统的质量水平,所以程序代码中的缺陷分布特征也直接反映了软件系统的质量特征。本文主要介绍了如何通过抽样审查程序代码的方法,对软件代码的质量特征进行量化,最后引入统计分析方法,通过量化之后的度量数据建立软件缺陷分布函数,从而达到由软件缺陷分布来对软件质量进行综合、量化评估的目的。
从软件内部结构来看,代码的质量与缺陷数量有关,缺陷数量越多软件的质量越差,另一方面,质量还与缺陷等级有关,等级越高的缺陷给系统造成的危害越大,相应的系统质量就越差。因此,要评估一个软件系统的综合质量,不仅要观察缺陷的数量,还应该关注缺陷的等级。
代码审查技术是一项通过静态分析的方法,可以帮助我们找出软件系统存在的缺陷,但是对于一般应用软件而言,代码量是十分庞大的,少则几十万、几百万代码行,多则上千万代码行,因此不可能对系统全部的代码进行审查分析,此时抽样审查的方法正好能够解决这个问题,通过抽样的方式,从代码库中随即抽取若干份代码,然后对每份代码进行审查评估,通过样本的缺陷特征来推测总体的缺陷分布规律,这样即可以减轻代码审查的工作量,也能够反映代码的总体质量。本文重点介绍了抽样审查技术在代码质量评估当中的应用,并且结合统计分析方法,最终给出综合的软件质量评估模型。
本文通过建立缺陷等级,将缺陷分类,并根据实际情况对每类缺陷定义不同的等级权重,通过加权的方式得到缺陷贡献分值这一综合度量指标,从而将缺陷数量、缺陷等级两个因素综合起来考虑,提高了质量评价的客观性和完备性。
通过抽样得到样本代码的缺陷贡献分值并不能简单说明总体的缺陷特性,因此,需要对样本数据进行统计分析,寻找总体的分布规律,即总体的缺陷分布特征,为了通过有限的样本数据得到总体的缺陷分布特征,本文着重论述了最大熵的概念,Jaynes原理,以及如何根据中心矩利用Jaynes原理来求解总体的缺陷分布函数,最后根据总体的缺陷分布函数来对整个软件系统的质量予以评估。