为何编程水平决定软件质量.doc
为何编程水平决定软件质量 首先再来看 PMBOK 对质量的定义是内在的系列特征满足要求的程度。这里我们的关注点是这个要求是谁的要求 ,如果仅仅理解为最终的使用软件的用户的要求 ,那就片面的理解了软件的质量。因此这里的要求应该理解为满足内部用户和外部用户的要求。 ◆外部用户要求 正确 ,高效 ,健壮 ,易用和可靠 ◆内部维护人员要求 可维护 (代码易读 ,易读 ,易 Debug,注释清晰 ,容易扩展 ) ◆内部测试人员要求 可测试 ,易用 ,易理解 ◆企业产品化要求 1、可扩展 ,可移植 ,可配置 ,灵活 ,重用性高 ,模块和组件化 因此质量不是无中生有 ,是有具体的需求驱动 ,质量也是为了满足某种需求。但一开始可能我们并不能意识到这种需求 ,如一开始并不注意软件可维护性 ,到了后期随着需求不断变更修改和人员交替 ,软件维护拖垮掉项目一半人员时候才反省软件可维护性的重要性 ,才来关注这个质量需求并制订相应的质量目标。 只有当所有人由于没有执行某些规则而导致惨痛代价后 ,人们才可能真正理解规则的价值。 因此《代码大全》将软件质量特征分为内部质量特征和外部质量特征: 外部质量特 征包括: ◆正确性 整个系统受说明、设计和实现的错误影响程度。 ◆可用性 用户学会和使用系统的难易程度。 ◆效率 对系统资源的最小利用,包括存储和执行时间。 ◆可靠性 在一定条件下执行特定功能的能力。 ◆完整性 防止非法或不适当地访问。完整性思想包括:限制非法用户访问,同时确保证数据恰当访问;并行数据表进行并行修改;数据段仅含有有效数据等等。 ◆适应性 系统在应用或其它环境下不作修改就能使用的能力。 ◆精确性 系统不受错误影响的程度,尤其是数据输出方面 。精确性和正确性是不同的。精确性是对系统完成其工作性能良好的衡量,而不是它设计得是否正确。 ◆坚固性 系统对无效输入或压力环境中能继续执行其功能的能力。 内部质量特征包括: ◆可维护性 修改一个软件系统,提高其性能或修正其错误的能力。 ◆灵活性 修改系统使其能适应于不同的用途或环境的能力,而不必对系统进行特定的设计。 ◆可移植性 能修改所设计的某一系统使其能在其它环境下运行的能力。 ◆可重用性 能将系统的一部分用于其它系统的难易程度。 ◆可读性 能读懂或理解系统源代码的能力,尤其是在细节说明这一级上。 ◆可测试性 对整个系统进行单元或系统测试以证实