[软件质量度量研究及其分析]什么是度量软件质量的基础
摘要:软件质量是软件的生命,它直接影响软件的使用与维护,软件开发人员、维护人员、管理人员和用户都十分重视软件的质量.质量低下的软件不但影响基于计算机系统的工作效率,而且还可能给用户带来灾难性的后果,因而,提高软件产品质量已成为软件工程的一项首要任务。为此,首先讨论了软件度量的概念,接着分析了确定权值的基本原则�软件质量评价工具�面向对象度量方法,最后做了总结。因此本文具有深刻的理论意义和广泛的实际应用。
关键词:软件质量;度量;质量特性;度量特性
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31635-01
Research and Analyze Software Quality Metric
LIU Jun,YUAN Lin
(Department Computer Science & technology of Henan Mechanical and Electrical Engineering College,Xinxiang 453000,China)
Abstract:The software quality is the life of the software, it influences the usage and maintenance of the software directly, the development personnel of the software,the personnel of the maintenance,manager and customers all value the quality of the software very. quality the lowly software influence not only according to the work efficiency of the calculator system, and may also bring customer disaster result, as a result, raise an initial mission that the software product quality has become the software engineering.So, in this paper,firstly introduced the conception of the software quality metric,then expatiated the basic fundamental of the authority, evaluate tool of the software quality and the face object metric measure,finally summarize the paper. It has deeply signification in theory and extensive value in applications.
Key words:software quality; metric; quality characteristic; metric characteristic
1 引言
软件质量被定义为:软件要符合显式声明的功能和性能需求、显式文档化的开发标准以及专业人员开发的软件所应具有的所有隐含特征,软件质量反映了以下三方面的问题:(1) 软件需求是进行“质量”测量的基础,与需求不符就是质量不高.(2)指定的标准定义了一组指导软件开发的准则.如果不能遵照这些准则,就很有可能导致质量不高.(3)通常有一组“隐含需求”是不被提及的(如对易维护性的需求)。如果软件符合了显式的需求却没有满足隐含需求,软件质量仍然值得怀疑。
2 软件度量的概念
度量就是对事物属性的量化表示,它的目的是对过程、项目和产品进行理解、预测、评估和改进。
组织行为学研究的成果表明,形成一个企业制度化的核心要素是:组织要求、能力、活动、度量以及验证与确认控制。对于企业来讲,除了追求项目的高质量和高生产率(Quality and Productivity,Q&P),项目的可预见性以及Q&P的持续增长也是关注的焦点。把度量纳入过程,实现量化管理是实现企业目标的根本保证。软件度量主要分为以下三类(图1):
(1)项目度量。它是针对具体开发项目的特性进行的测量。目的是确定项目当前的状态,评价项目开发过程的质量,预测项目进度、工作量以及下一步发展趋势,从而辅助管理者进行有效的项目管理和控制。
(2)产品度量。通过评审、走查、测试等环节,对过程中的产品质量进行测量,从而及时了解产品的质量状况,发现、纠正并预防缺陷,实现产品质量全程的管理和控制。
(3)过程度量。通过对所遵从的过程性能进行度量。度量的数据反映了当前过程成熟能力的高低,是形成过程基线的前提,通过过程基线的横向对比,就能够量化度量过程改进的幅度和效能。
基于上述度量而收集的过程数据,是组织重要的资产,应该纳入组织过程资产库永久地保存,并为以后类似项目的计划、风险管理以及过程改进提供必要的参考数据。
图1 软件度量分类
3 确定权值的基本原则
(1)系统优化原则在评价软件质量体系中,每个特性对软件质量都有它的作用和贡献.对软件而言都有它的重要性。所以。在确定它们的权值时,不能只从单个特性出发,而是要处理好各个特性之间的关系.合理分配它们的权值。把整体最优化作为出发点和追求的目标。在这个原则指导下。对软件质量特性进行分析对比,权衡它们各自对整体的作用和效果.然后对它们的相对重要性做出判断。确定各自的权值,即不能平均分配,又不能片面强调某个特性,而忽略其他方面的作用。在实际工作中,应该使每个特性发挥其应有的作用
(2)民主与集中相结合的原则 由于权值是人们对软件质量评价的重要性的认识。是定性判断的量化.因此往往受个人主观因素的影响。不同的人对同一件事情都有各自的看法,而且经常是不相同的。其中有合理的成分;也有受个人价值观、能力和态度造成的偏见。这就需要集中相关人员的意见,互相补充。形成统一的方案。这样可以使考虑的问题比较全面。使权值分配比较合理.防止个别人认识和处理问题的片面性。还可以比较客观的协调了评价各方之间意见不统一的矛盾,经过讨论、协商、考察各种具体情况而确定的方案,具有很强的说服力.预先消除了许多不必要的纠纷。事实上。没有重点的评价就不算是客观的评价,每个评价人员的性质和所处的层次不同.其工作的重点也肯定是不能一样的
4 软件质量评价工具
软件质量评价最重要的两件事是建立有效的度量元库和执行评价过程。可以使用软件技术将它们开发成自动化辅助评价工具,以便规范化评价过程,提高评价效率。评价工具至少可以体现以下3方面的优势:
(1)规范化评价过程
建立一个标准化的评价平台,包括评价软件信息登记、评价过程5步骤,使得评价人员可以对一个软件产品实施开发全过程的评价操作。其中,“评价软件信息登记”是软件评价的预处理功能,它允许评价人员登记一个待评价的软件产品的相关信息,为后面的整个软件评价过程做好准备。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 (2)建立开放度量元库
评价工具除了提供标准给出的度量元供评价人员使用外,还允许评价人员依据积累的经验,不断增加自己总结出来的度量元或修改已有度量元的计分规则。
(3)提供评价结果的多种表现方式
使用多种报表和图形方式供评价人员查看软件的当前实际质量水平,预测软件以后的可能质量走势。
5 面向对象度量方法
目前,面向对象技术非常盛行,面向对象软件开发的重点在于类,面向对象语言一般具有局部性、封装性、信息隐蔽性、继承性和抽象性等特征,而传统的度量方法不适用这些特征,我们必须采用面向对象度量方法。面向对象度量主要包括:局部化度量、封装性度量、信息隐蔽性度量、继承性度量和抽象性度量,这些都体现在对于类的度量上。目前,用于面向对象度量的方法主要有两种:C&K 方法和MOOD方法。下面简要阐述这两种方法。
(1)C&K方法
1994年,Chidamber和Kemerer提出了基于继承树的一套面向对象度量方法,简称C&K方法。在此方法中主要考虑类的继承、类的方法数、类之间的耦合性和类的内聚性等。C&K方法定义了6个度量指标:类的加权方法数WMC、继承树的深度DIT、继承树的子数目NOC、对象类间的耦合度CBO、类的响应集合RFC和类的内聚缺乏度LCOM。其中,WMC揭示用于开发和维护类的精力,WMC的值越大,对子类的影响可能越大,其通用性和可复用性也就越差;DIT的值越大,表示它可能的继承方法数目越大,复用程度越高,但将更难预测它的行为,且设计复杂性更大;NOC的值越大,则复用性越好,表示该类在设计中的影响越大,此类应该成为测试重点;CBO 的值越大,则维护越难; RFC 的值越大,表示对该类进行测试和调试将更复杂;LCOM 的值越大,表示该类可以分裂成更多的子类,那么会增加类的复杂性,在开发过程中也就越容易出错,因此,我们希望类的内聚度越大越好,这样可以提高封装性。
(2)MOOD方法
MO D方法从封装性、继承性、耦合性和多态性四个方面给出了面向对象软件的六个度量指标。其中,针对封装度量方面提出了两个指标:方法隐藏因子MHF和属性隐藏因子AHF。对继承的度量也提出了两个指标:方法继承因子AIF和属性继承因子MIF。对耦合的度量给出了一个指标:耦合因子CF,它判断每对类之问是否存在通过消息传递或语义联系产生的耦合。CF的值越大,系统的封装性就越差,复用性也越差,可理解性也越差,维护的困难也越大。对多态性的度量,MO D方法用多态因子PF来衡量,它用继承的方法数目除以可能出现多态情况的最大方法数目,它反映了一个系统的动态连接情况。当然,面向对象的软件质量度量还处于发展阶段,这两种方法都仅揭示了软件的内部属性,还没有与软件的外部属性,如复杂性、可理解性、可维护性和可测试性等建立起对应关系,而人们更关心软件的外部属性,因此尚待进一步研究。
6 总结
软件质量是一个企业成功的必要条件,而且用户对软件质量的要求也越来越严格。因而,要严格按照软件工程要求,全面考虑各种影响软件质量的因素,针对所有影响软件质量的要素和因素都采取有效的措施进行管理和控制,对软件质量进行合理度量,建立一个完善的软件质量保证体系,才能保证软件质量的提高,使企业成功,用户满意。
参考文献:
[1]蔡希尧. 软件质量的度量问题[J].计算机工程与科学 ,1996:18(1)-1-7.
[2]杨扬.计算机软件质量模糊综合评价方法[J].小型微型计算机系统,2000:21(3)-313-315.
[3]刘宗田.面向对象软件度量中的内聚缺乏度分析[J].计算机研究与发展,2001:38(2)-138-143.
[4]阮彤,沈备军,居德华.面向对象软件度量工具的软件结构[J].计算机研究与发展,2000:37(4)-401-406.
[5]周莹新,艾波.对面向对象软件设计度量的扩展[J].北京邮电大学学报,1998:21(2)-38-42.
[6]张社英,邓日失.软件质量度量方法学及其应用[J].北京航空航天大学学报,1997:23(1)-61-67.
[7]蔡希尧.软件质量的度量问题[J].计算机工程与科学 , 1996:18(1)-1-7 .
[8]廖彬山,高仲仪.Ada软件质量保证系统的构成框架和集成机制[J].计算机研究与发展,1995:32(10)-55-59.
[9]何新贵.软件能力成熟度模型CMM的框架与内容[J].计算机应用,2001:21(3)-1-5.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
