第1章 引言
每个开发软件的企业都努力提供最佳质量的软件。只有精确定义了一个目标,我们才能切实地实现这个目标,但这个道理却并不适用于“最佳质量”的概念。软件质量是涉及多方面的。一个软件的多种性能共同构成软件的质量。这些性能对使用者和制造商而言并非同等重要。一些性能对特定的软件产品特别重要,其他性能对相同的软件产品则毫无关系。一些性能相互发生负面作用。有人说,我们要做出质量最好的软件,显然是没有理解软件质量的含义。开发软件的目的不在于实现最好的质量,而是最合适的质量。为此,需要确定所谓的质量目标来制定所需的软件质量。随后,人们可以决定,采用何种方式来达到确定的质量。一般来说,必须采用设计上有前瞻性、经过分析检验的技术与组织管理方面的手段相结合。在实现质量的过程中,重要的是考虑到经济性,即一定不要忘记时间和成本两个要素。不同软件产品的多样性,造成了对软件质量的不同要求,加上时间和成本,导致人们无法找出万能的解决方案。本章将分门别类地为您介绍软件质量管理和软件质量保证的各种组织上和技术上的解决方案。
1.1 动机
随着计算机越来越深入人类生活的各个应用领域,其软件功能的正确性、可靠性也越来越重要。成本的发展表明,和硬件成本相比,软件成本明显呈上升趋势,同时,软件使用寿命也明显长于硬件。所以,在软件开发领域缩减成本是十分经济的做法。如果根据软件生命周期来分析软件开发的成本,则其结果是市场上某个软件产品的大部分成本在维护阶段产生,也就表明软件质量不够理想。在制作软件时产生的错误,和使用软件时发现的错误是导致软件质量不完善的原因。如果一个软件产品结构不清晰,内容不够简洁明了,要修正错误则是一件耗费时间的重任。软件产品日渐增强的复杂性同样也增加了软件质量不完善的可能性。要将错误本地化,并消除错误很难,特别是结构上有欠缺的软件,修正的错误可能会带来其他错误,因为对某一处的修改会与软件的其他部分相互作用。如果某个错误的形成原因已经在软件开发的早期阶段出现,比如在定义要求的时候或者设计软件的时候,那么必须进行大量的变动。
展开