SEI的研究表明,经过软件质量培训的开发人员编写的软件错误更少,能减少50%以上。研究还表明稍稍经过培训,便会加速经验的获得。培训是一个解决办法,对已完成工作进行度量是另一个方法。我们可以建立几个可度量的编码质量的目录:
遵守工业及企业标准,遵守编码规则和结构标准,可提高其可用性及可维护性、最佳实际应用。
企业标准依据其背景而变化。微软的商品遵循微软标准,Unix商品遵循Unix标准。直到PowerBuilder基础等级(PFC)的数据库出现,PowerBuilder的开发人员才获得了对买方标准的一些提示。现在许多公司遵循PFC命名约定,因为它最接近于工业标准体系结构。这就是说,甚至连Sybase都不遵循自己的标准,而是遵守PFC标准。PFC的版本6集成了一些它自己对外公布命名规范的结构标准。
关键的一点是如果什么也不做就谁也帮不了你。学习的关键是经验。如果你不知道自己已拥有经验,你就无法从中获益。你知道的越早就越有效。你可以通过实施一些标准加速此过程。这完成了两个目标:
要实施标准,必须先度量。如果你度量应用标准及质量,开发人员就会对所度量的要素及他们出的错误更清楚,加强了目标的认识。纠正发现的问题并找到错误原因,可以再次提醒开发人员要达到的目标,并指出达到的方法。
一旦进行度量,应用软件中不通顺的地方立刻被纠正。可以达到两个目的:最终的编码十分整洁,具有高质量;开发人员完成这一步就会得到最重要的益处——经验。
功能性质量
功能性质量是度量应用软件与其用户需求的匹配程度,即完成必要性功能的好坏,以及是否完成了所有必要的功能。你可以想象这是应用软件的大脑。如果所有必需的功能并没有全部完成,那么其结果难以预测。
由于许多应用已事先规定应该怎样,所以功能性质量比编码质量更难度量。只有对开发完的应用才能度量。这意味着改变代价很大。我们应该怎样度量?在开发周期的早期阶段应该做什么才能保证我们正朝着更高质量的目标前进?
我们应当保证应用满足客户提出的所有需求。这主要取决于开发过程的一开始这些需求被确定的程度,但这可通过检验正进行的基础来保证它符合需求目的。这是一个手工完成的测试,但有些自动工具如Rational ClearQuest也可以跟踪设计、构造、测试等不同阶段。我们还必须保证为满足需求而设计的商业功能完全,用好、坏或没有输入来检验。养成用这种方法测试商业功能可以达到更高质量。