【IT168 技术文章】
在软件开发过程中,软件质量是软件工程中一个经常被忽略的要素。在现代的RAD领域和视频开发领域,软件质量几乎是被人忽略的。标准组织不厌其烦地对软件质量作出规范,有些甚至提供了用来度量软件质量的工具、评价等级及证明。许多政府要求软件承包商遵守一定的公共标准。但对于大多数人来说,软件质量是由用户喜欢使用软件的程度决定的。如果软件运行得好,则视其质量好,反之,则不好。这给人们对软件质量的评价标准方式造成错觉。
越来越多的公司在购买软件时有了这样一个概念,即软件质量是一个过程,从软件应用开始,直到停止使用为止。许多组织都确认自己在软件质量方面投入了大量资金,但同时又承认在许多关键任务的应用中,许多软件质量标准是强制执行的结果,而非通过严格控制成本的战术或战略来实现。
软件质量工程耗资不低,而且也不易实现,但如果实施的早,达到高水平就相对要容易些。质量从分析和设计开始,贯穿整个构造过程,并在测试和开发过程中不断完善。在使用应用软件的维护阶段,质量不易完善。度量软件质量并不是件容易的事。我曾经做过调查,问一些开发人员在他们的应用软件出台之前进行多少次合理的编码检查?回答是28%。没有检查编码的原因是由于计划完成的期限太短,时间和资源不充足。组织不能简单地为全职的软件测试者提供时间和资金。由于这些客观原因,我们需要找到提高质量的方法。
在这里我们不但强调软件质量的重要性,也想找出度量软件质量的方法,以及确定我们要达到怎样的质量水平和借助何种工具才能及时正确地完成任务。
什么是软件质量
所谓软件质量就是对应用软件的质量进行三个主要方面的度量:编码、功能、性能。没有充分的分析和设计就不可能达到较高的软件质量。过于简单,难以满足功能或性能上的需求,也就谈不到编写出好的软件。一个不符合用户需求的软件就是失败。
要说清楚正确的发现和设计路径需要许多笔墨,并不是区区一篇文章就能够完成的,但有些公司如Rational 及Riverton等公司花费了大量的时间和金钱创建了能够帮助提高分析设计阶段质量的产品。我向大家强力推荐Riverton公司的HOW系列产品,它运载于PowerBuilder上,是免费的。提高了第一阶段的质量也就等于提高了整个应用软件的质量。本文更侧重软件质量的物理方面,让我们从编码开始谈起。
编码质量
编码质量是应用软件的健康诊断。你可以想象编码就是应用软件的肺。无论看起来多小的缺陷都会影响整体健康,可能引起呼吸(运行)的中断。
我们学习怎样更好地做事,但我们学到的往往是经验。经验的不利之处在于只有在我们经历过之后它才成为经验。而对目前应用的软件来说已太迟,没有什么帮助,只能寄希望于下一次的软件。更有利的办法是与其他软件开发者共同学习,分享经验。
SEI的研究表明,经过软件质量培训的开发人员编写的软件错误更少,能减少50%以上。研究还表明稍稍经过培训,便会加速经验的获得。培训是一个解决办法,对已完成工作进行度量是另一个方法。我们可以建立几个可度量的编码质量的目录:
遵守工业及企业标准,遵守编码规则和结构标准,可提高其可用性及可维护性、非常好的实际应用。
企业标准依据其背景而变化。微软的商品遵循微软标准,Unix商品遵循Unix标准。直到PowerBuilder基础等级(PFC)的数据库出现,PowerBuilder的开发人员才获得了对买方标准的一些提示。现在许多公司遵循PFC命名约定,因为它最接近于工业标准体系结构。这就是说,甚至连Sybase都不遵循自己的标准,而是遵守PFC标准。PFC的版本6集成了一些它自己对外公布命名规范的结构标准。
关键的一点是如果什么也不做就谁也帮不了你。学习的关键是经验。如果你不知道自己已拥有经验,你就无法从中获益。你知道的越早就越有效。你可以通过实施一些标准加速此过程。这完成了两个目标:
要实施标准,必须先度量。如果你度量应用标准及质量,开发人员就会对所度量的要素及他们出的错误更清楚,加强了目标的认识。纠正发现的问题并找到错误原因,可以再次提醒开发人员要达到的目标,并指出达到的方法。
一旦进行度量,应用软件中不通顺的地方立刻被纠正。可以达到两个目的:最终的编码十分整洁,具有高质量;开发人员完成这一步就会得到最重要的益处——经验。