当前位置:文档之家› 软件质量评估与控制

软件质量评估与控制

软件质量评估与控制朱向荣1罗桂林2摘要:随着信息技术的发展,软件产品的应用范围越来越广泛,如何开发高质量的软件产品成为热点的研究内容。

而软件质量的评估和控制是软件质量管理的重要方面。

本文在学习他人研究成果的基础上对如何进行软件质量控制和评估进行总结,以形成对主流软件质量评估和控制方法的初步认识。

1 引言随着信息时代的发展,计算机软件的需求愈来愈复杂,规模愈来愈大。

软件企业随着自身规模的不断扩大,所从事的软件工程项目的工作量和复杂度也不断升级。

这些都导致软件企业在软件开发、服务提供和工程实施过程中所遇到的问题越来越多,软件质量要得到保障越来越具有挑战性。

软件质量问题,已经成为国家政府、工业界、学术界以及社会各界关注的重要问题。

一些专家认为,21世纪计算机软件发展的大方向将是质量的提高优先于性能和功能的改进,超高质量软件的开发技术将是打开21世纪高技术市场的钥匙。

因此,研究和应用软件质量控制技术是一项迫切而且重要的任务。

软件质量控制和软件质量评估是软件工程中非常重要的研究领域,有大量的专家学者和软件开发人员从事这方面的研究,国际上也出台了有一系列的标准对软件质量的各个方面进行规范,各种进行软件质量度量的方法也不断被提出。

但是由于软件本身的复杂性和软件技术发展迅速等原因,到目前为止,软件质量控制和评估在理论上和技术上都很不成熟,如何系统的、客观的控制软件产品质量是几十年来一直困扰着人们的难题。

2 软件质量概述2.1软件质量定义不同的组织对软件质量与不同的定义。

国际标准化组织ISO在质量特性国际标准ISO/IEC9126中将软件质量定义为反映软件产品满足规定需求和潜在需求能力的特征和特性的总和。

MJ.Fisher将软件质量定义为:所有描述计算机优秀程度的特性的组合。

也就是说为了满足软件的各项精确定义的功能、性能要求,符合文档化的开发标准,需要相应的给出或设计一些质量特性及其组合,要得到高质量的软件产品,就必须使这些质量特性满足。

按照ANSI/IEEE Std 1061.1992中的标准,软件质量定义为:与软件产品1.朱向荣:学号ZY1106151,北京航空航天大学计算机学院ZY班朱向荣、罗桂林:软件质量评估与控制满足需求所规定的和隐含的能力有关的特征或特性的全体。

具体包括:(1)软件产品中所能满足用户给定需求的全部特性的集合;(2)软件具有所有的各种属性组合的程度;(3)用户主观得出的软件是否满足其综合期望的程度;(4)决定所用软件在使用中将满足其综合期望程度的合成特性。

2.2软件质量标准高质量的软件在能够保障可靠性,可支持性,可维护性,可移植性的同时,也能够满足用户的需求并且能够和其他工具进行整合。

然而一个软件产品的好坏光靠直观的感受是不够的,软件质量也需要一个标准来衡量。

标准是衡量产品质量,工作质量的尺度。

每一行业的标准都是为适应该行业的存在和发展而建立起来的,它代表了各生产部门之间、生产部门和用户之间、产品的生产过程期间和产品的验收与评价期间大家所公认的、必须遵守的约定和规则。

同样,软件质量需要相应的标准。

软件质量方面的标准有ISO 9000-3 Quality Management and Quality Assurance Standards - Part 3与IEEE Std 1061-1992 Standard for Software Quality Metrics Methodology。

第一个标准从好的管理体系产生高质量软件产品角度和定义标准,而第二个标准更多的是从好的度量框架产生高质量软件产品的角度来制定标准。

3 软件质量评估和控制的重要性概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。

具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。

对于软件用户来说,高质量的软件可以概括为正确性、健壮性、高效率、完整性、可用性、风险小、故障恢复能力性强及可维护性等等的性能要求软件;对于软件开发者来说,高质量的软件意味着高质量的软件开发过程,即:高效性,时效性的开发过程。

然而,高质量的开发的软件项目的困难之处,在于影响软件开发过程的诸多不利因素。

例如软件的开发周期长、需求变化快,参与人员多、流动性大等等不确定因素,使得软件项目难以保证按时、按需高质量的完成。

为了克服这一不利因素,在软件的开发过程中,我们引入了软件开发的工程化以保证软件质量,而加强软件全寿命全过程的质量控制是提高软件质量的有效途径。

北京航空航天大学计算机学院高等软件工程3.1软件质量控制的定义在IEEE 中对软件质量控制的定义是:用以评价开发或生产的软件产品质量的一系列活动。

质量控制是质量管理的一部分,是为保证每一件产品都满足对它的需求而应用于整个开发周期中的一系列审查和测试。

吴金义指出,软件质量控制指监视项目的具体结果, 确定其是否符合相关的质量标准, 并判断如何杜绝造成不合格结果的根源[4]。

这就是说以软件质量为目的驱动,以软件质量评估为度量软件质量,以软件质量控制为核心手段,高效地运作软件开发的过程。

的确,高质量的软件离不开有效的管理和控制[6]。

J.M.Juran认为质量控制室一个常规的过程,通过他度量实际的质量性能并与标准比较,当出现差异是采取行动。

由此,Donald Refier 给出的软件质量控制定义:软件质量控制是一系列的验证活动,在软件开发过程之中的任何一点进行评估开发的软件产品是否在技术上符合该阶段指定的规约。

由此,我们给出的软件质量管理的定义是:软件质量控制是一系列的验证活动,通过这些活动,我们可以判断软件开发各个阶段是否符合既定的要求,对发生的软件缺陷和软件错误给出及时的修正和纠正。

3.2软件质量评估和控制的重要性软件质量控制的任务是发现和消除软件产品的缺陷和错误,然而由于软件开发是一个以人为中心的活动,而且往往是一个团队的合作开发过程,所以软件开发过程中出现的缺陷和错误都是不可避免的。

因而想要交互一个高质量的软件,消除缺陷和错误是非常有必要的。

在实际的软件开发过程中,即使软件开发人员做好项目的需求分析、概要设计、详细设计等等一系列的前序工作,我们软件开发人员还会遇到麻烦。

例如需求分析的删减,研发人员的变更与调动,软件测试中发现的软件缺陷和错误,协同和管理各研发人员的子项目进度等等一系列的不确定的因素影响我们开发软件的进度。

而当我们开发软件的进度与预期的不一致的时候,反过来可能需要调整软件的项目进度以及这带来的一系列不必要的麻烦。

我们在项目软件开发过程中,“二个人的项目小组的研发工作效率比不上五个人项目小组的软件研发工作效率”,这很大程度上是项目开发在项目管理方面的欠缺,致使五个人的研发工作效率很低。

朱向荣、罗桂林:软件质量评估与控制4 软件质量评估的方法4.1软件质量评估的标准与度量软件质量有与硬件不同的评价方法,根据软件产品的特性,评估一个软件的质量需要有一个评价标准,一个评价准则和一种度量。

(1)标准软件的质量标准就是软件质量的六个特性:①功能性(Functionality) 指软件所实现的功能满足用户需求的程度②可靠性(Reliability) 指在规定的时间和条件下,软件所能维持其应有性能水平的程度。

它除了反映软件满足用户需求正常运行的程度,而且反映了在故障发生时能继续运行的程度。

③易用性(Usability) 指对于一个软件,用户学习、操作时所作的努力程度。

易用性反映了软件与用户的友善性。

④效率(Efficiency) 指在指定的条件下,软件实现某种功能所需要的计算机资源(CPU、内存、接口、外设等)、时间的有效程度。

效率反映了在完成功能要求时,有没有浪费资源。

⑤可维护性(Maintainability) 指在一个运行的软件中,为了满足用户需求、环境改变或软件发生错误时,进行相应修改所作的努力程度。

可维护性反映了在用户需求、环境发生变化或软件发生错误时,对软件进行修改的容易程度。

⑥可移植性(Portability) 指从一个计算机系统或环境移植到另一个计算机系统或环境的容易程度。

可移植性反映了软件在不同环境的适应程度。

评价软件的质量。

(2)准则软件评价准则,概括起来有:精确性、健壮性、安全性、通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件环境无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性,自描述性、简单性、结构性和文档完备性。

对不同类型的软件、软件的各个开发阶段,评价准则要进行不同的有机组合,方可反映出该软件的质量要素。

(3)度量软件的度量包含费用、工作量、生产率、性能、可靠性和质量等方面的度量,对于软件质量度量应根据软件质量的六个特性,在软件开发不同的生命周期,对不同类型的软件在每一个阶段制定相应的评价内容,以实现软件开发过程的质量控制。

[3]4.2软件质量度量在软件开发过程中,对即将生成出来的软件进行科学的客观的评估是非常有北京航空航天大学计算机学院高等软件工程必要的。

有效地保障了软件产品的质量。

软件度量提供了一个定量的方法来评价产品内部属性的质量,能够在软件产品完成之前进行质量评估,因而减少了软件质量评估中的主观性。

软件质量度量就是从整体上上软件质量,用于软件开发过程中对软件进行质量控制,并最终对软件产品进行评价和验收。

度量是软件质量评估的基础,要对软件产品进行准确的评估就必须有一个客观和科学的度量。

4.2.1软件度量的概念软件度量(software measurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。

没有软件度量,就不能从软件开发的暗箱中跳将出来。

通过软件度量可以改进软件开发过程,促进项目成功,开发高质量的软件产品。

度量取向是软件开发诸多事项的横断面,包括顾客满意度度量、质量度量、项目度量、以及品牌资产度量、知识产权价值度量,等等。

度量取向要依靠事实、数据、原理、法则;其方法是测试、审核、调查;它的工具是统计、图表、数字、模型;其标准是量化的指标。

4.2.2软件度量的方法体系(1)项目度量:项目度量是针对软件开发项目的特定度量,目的在于度量项目规模、项目成本、项目进度、顾客满意度等,辅助项目管理进行项目控制。

(2)规模度量:软件开发项目规模度量(size measurement)是估算软件项目工作量、编制成本预算、策划合理项目进度的基础。

(3)成本度量:软件开发成本度量主要指软件开发项目所需的财务性成本的估算。

(4)顾客满意度度量:顾客满意是软件开发项目的主要目的之一。

(5)软件质量的生命周期及其度量:软件产品的度量实质上是软件质量的度量,而软件的质量度量与其质量的周期密切相关。

相关主题