曹洪敏
摘要:目前我国应用性软件过程还不够成熟,一旦软件通过演示就交付给用戶,用户用了以后有问题再不断地修改,改到最后,用户不得不重复投资重新开发。那么,软件究竟如何才能保证质量,以降低重复开发带来的浪费呢?现如今CMMI,充分利用软件开发方法,通过对软件开发过程的管理,来改善软件质量,降低开发过程中的风险。。
关键词:软件;质量;保证
随着软件开发的不断进步,人们已经逐渐意识到单纯靠软件开发方法来提高软件质量是不能够达到控制目标的,于是,为了能够更好的提高软件质量,20世纪80年代提出了全新的软件工程理论。现如今的软件工程师认为,软件工程的基础是用来维护和开发软件,以及和软件相关创新、实践、方法、活动和产品的集合。
一、软件质量保证概述
1.1软件质量保证的定义。
软件管理和开发的过程中,软件质量保证是确保软件质量的重要途径和手段。关于软件质量保证的观点,目前存在着不一样的看法。GordonSchulmeyer,JamesI.麦克马纳斯对软件质量的保证做了下述定义:软件质量保证是能够保证软件的一系列活动,能够提供软件产品开发所要求的能力的证据。RoberH.Dunn给软件质量保证的解释是:项目管理软件质量经常称为“软件质量保证”,这个称呼仅仅是用来表示管理软件质量的一些计划内共通的内容。我们可以理解为相同的两个目标的软件质量计划是完全不存在的。软件质量保证在这个地方来用不是很恰当,因为软件质量保证不能够确保软件质量问题,它只能保证软件质量的方案具有相对的有效性。这样的区别看起来很不起眼,但是这样的区别能够区分软件质量保证的验证、确认、测试和活动等。如果我们相信,通过引进软件质量过程和相关产品,可以提高软件质量,那么我们必须对这个概念全盘接受,软件开发项目过程中要包含软件质量保证。
1.2软件质量保证与软件质量控制。
软件质量保证是一种事先预防的方法,其目的是要为了保证软件开发结果和过程能够符合预期的目标,通过过程的符合性和软件产品的规范性审计,来了解体系运行状况,同时确保遵循同样过程可以生产出同样质量的软件产品。另外,还通过对软件过程数据进行分析,发现过程中的偏差和过程改进机会,从而及时纠正偏差,并对过程进行持续改进,通过对过程质量的保证活动,来提高软件开发的整体质量。软件质量控制是一种事后检查的方法,找出问题,予以纠正的方法,软件的质量控制主要是在软件开发过程的各个阶段,针对每个关键点或阶段的产出物,通过评审和测试的方法对其进行检测,找出软件工作产品中存在的缺陷,以便及时进行修正,从而使软件工作产品满足预期的输出质量。,
二、软件质量保证工作研究
2.1软件质量保证部门。
为了保证软件质量保证人员工作中的独立性和客观性,软件质量保证部门一般独立存在于软件开发部门之外,直接向组织高层管理者进行汇报。隶属于质量保证部门的质量保证人员在执行质量保证活动时,因其与项目组分属于不同的部门,这样可以将外界干扰的程度降低到最低点,使其能够更客观的对软件过程进行评价,且有助于发现软件开发过程中存在的问题,并促使项目组进行改进。但是,目前中国的中小企业在软件质量保证的实施过程中,常常因为企业自身成本考虑,不能提供足够的软件质量保证人员,或由一些缺乏软件开发经验的人员来担当质量保证人员的情况,这样造成质量保证人员不能为项目提供足够的质量保证服务,或仅仅根据体系要求来进行检查,照本宣科地进行软件保证活动,从而使软件开发项目无法从质量保证活动中获得相应的好处,降低了质量保证活动存在的价值。为了确保质量保证活动能够给组织带来应有的价值,组织还是应尽可能保证质量保证部门的独立性,并为其提供必要的、适合的人员。
2.2软件质量保证主要工作。
软件质量保证工作主要是由过程符合性审计和工作产品规范性审计组成的,主要的工作内容有:(1)制定质量保证计划。软件质量保证人员在项目开发计划基础上制定相应的质量保证计划,该计划主要包括审计的工作对象(各阶段输出产品对象和过程对象)、标识出审计时间、频率,详细列出各阶段的检查重点、具体适用规则和审计问题的处理流程。质量保证计划完成后,要将其发给项目经理、主要的项目开发人员及其他相关人员,进行评审,并记录评审结果。(2)过程和产品审计。根据质量保证计划, 在事先制订的检查单的指导下,完成对过程和产品的审计,并出具审计报告。(3)不符合项跟踪,质量保证工程师要对检查出的不符合项改善情况进行跟踪。(4)定期汇报,质量保证工程师要定期将质量保证情况向高层经理进行汇报。
2.3软件质量保证的流程。
在开发高质量的软件产品的过程中,各个阶段和各部门之间存在着非常多的衔接和联系的问题,因此各个分工不同的人员进行密切配合是非常重要的,一系列复杂关系的协调工作的开展需要非常多的规定和约束才能完成。如果各个部门间使用不同的方法和规范,那么想要达到业务流程规范的预期目标是非常困难的。软件质量保证可以帮助降低此类问题的影响,软件质量保证活动是在经过审批的质量保证计划的指导下展开的,在计划的时间点对过程和产品进行审计,将审计中发现的问题反馈给项目经理等相关人员,并在后续对问题改善情况进行跟踪,对于项目内部无法改善的问题,质量保证人员会通过上报流程,反馈给高级经理,由高级经理协调解决。在质量保证过程中,质量保证人员必须熟悉各方面的规范及约束,同时需注意与各相关方人员的沟通和协调。
三、软件质量保证方法(度量)
3.1 GQM度量模型。软件质量保证过程中,度量是一个很重要的环节,针对软件度量,Maryland大学的VictorR.Basili和他的助手提出了GQM模型,它是一种面向目标的、针对软件产品和开发过程的度量定义方法。GQM主要是一种假设:针对软件项目或软件组织的有目的的度量。使用GQM方法,首先要对项目或组织的目标有一个非常明确的认识,收集为目标定义的可量化和可操作的数据,然后对确定的目标进行数据解释和确定。 Wolfhart,Woethert等人对GQM模型进行了改进,引入了指示器的概念,形成了度量层、指示器、问题层和目标层四个层次的GQM(I)模型。
3.2 NC数据度量。
通过使用GQM(I)模型对软件质量保证活动内的NC有关的数据进行收集,并且对收集的数据进行度量。通过对NC分布情况进行分析,找出原因,以减少各个阶段的NC数量,从而提高各阶段的质量。
3.3质量模糊度量。
软件质量的评价主要是建立在度量数据分析结果的基础上。对软件质量的评价的表述方法非常多,通常运用的方法有:达标方法、评级方法、评分方法。这些方法虽然简单、实用,但在保证评估的客观性和准确性方面都或多或少存在一些缺陷。
达标方法,会事先制定一个标准,满足标准就是合格,否则就是不合格。这样的方法显得有点粗糙。而使用评级法和评分法,虽然这两种方法能够确定评估指标的判断值,可避免达标方法的部分缺陷,但却对软件质量评估指标的模糊性有所忽略。
四、结束语
软件质量管理通过对过程的监控和相关工作产品的审计,搜集客观资料和数据,作为科学决策的相关依据,为软件质量的提高提供了很好的帮助。为此,很多国家将软件质量保证作为软件开发的重要组成部分,并且提出非常多的方法以帮助企业规范软件质量保证活动,对软件产业的发展起到了积极的作用。
参考文献:
[1]张海藩.软件工程导论(第6版)[M].北京:清华大学出版杜,2013:68-69.
[2]刘剑,肖长街.重视质量保证,提高软件质量[J].金融电子化,2002:40-41.
[3] 苏秦 . 软件过程质量管理的途径初探 [J].计算机应用研究 ,2001(4)50-51.
[4]朱少民,《软件质量保证和管理》,清华大学出版社:2007:56-57
[5]刘冰川, 软件缺陷分析与管理系统的设计与实现[D].哈尔滨工业大学,2013:89-90.