![](https://csdnimg.cn/release/download_crawler_static/14503785/bg6.jpg)
们学习 “ 高质量编程 ” 的目的就是要在干活的时候一次性编写出高质量的程序,
而不是当程序出错后再去修补。
( 2 ) 当工作成果刚刚产生时马上进行质量检查,及时找出并消除工作成果中的缺陷。
这种方式效果比较好,人们一般都能学会。最常用的方法是技术评审、测试和 质
量保证(详见本章 1.5 节) ,这些方法已经被企业广泛采用,并取得了成效。
( 3 ) 当软件交付给用户后,用着用着出错了,赶紧请开发者来补救,这种方式的代 价
最高。可笑的是,当软件系统在用户那里出故障了,那些现场补救成功的人倒 成
了英雄,好心用户甚至还寄来感谢信。
1 . 2 . 3 “ 零缺陷 ” 理念
质量的最高境界是什么?是尽善尽美,即 “ 零缺陷
”
。
“ 零缺陷 ” 理念来源于国际上一些著名的硬件厂商。尽管软件的开发与硬件生产有
很大的区别,但我们仍可以借鉴,从中得到启迪。
人在做一件事情时,由于存在很多不确定的因素,一般不可能 100% 地达到目标。
假设平常人做事能完成目标的 80% 。如果某个人的目标是 100 分,那么他最终成绩可 达
80 分;如果某个人的目标只是 60 分,那么他最终成绩只有 48 分。我们在考场上身经 百
战,很清楚那些只想混及格的学生通常都不会及格。即使学习好的学生也常有失误,因
而捶胸顿足。
做一个项目通常需要多个人的协作。假设某系统的总质量是十个开发人员的工作质
量之积,记最高值为 1 .0 ,最低值为 0 。如果每个人的质量目标是 0. 95 ,那么十个人的 累
积质量不会超过 0. 598 。如果每个人的质量目标是 0. 9 ,那么十个人的累积质量不会超 过
0. 35 。只有每个人都做到 1.0 ,系统总质量才会是 1 .0 。只要其中一人的工作质量是 0
,
那么系统总质量也成了 0 。因系统之中的一个缺陷而导致机毁人亡的事件已不罕见。
上述比喻虽然严厉了一些,但从严要求只有好处没有坏处。如果不严以律已,人的
堕落就很快。如果没有 “ 零缺陷 ” 的质量理念,也许缺陷就会成堆。
从理念到行动还是有一定距离的,企业在开发产品时应当根据自身实力和用户的期
望值来设定可以实现的质量目标。过低的质量目标会毁坏企业的声誉,而过高的质量目
标也有可能导致成本过高而拖累企业(请参见本章 1.3
节) 。
1
1
1
1 .
.
.
. 2
2
2
2 细说软件质量属性
1. 2 . 1 正确性
正确性是指软件按照需求正确执行任务的能力。这里 “ 正确性 ” 的语义涵盖了 “ 精
确性
”
。正确性无疑是第一重要的软件质量属性。如果软件运行不正确,将会给用户造 成
不便甚至造成损失。技术评审和测试的第一关都是检查工作成果的正确性。
正确性说起来容易做起来难。因为从 “ 需求开发 ” 到 “ 系统设计 ” 再到 “ 编程
”
, 任