内部质量、外部质量和使用质量的观点在软件生命周期中是变化的,不能说是一成不变的。在 生命周期刚开始阶段,质量需求是从外部和用户的角度获得的,这与设计质量不同,设计质量属于 中间产品质量,它是从内部和开发者的角度获得的。 当然在实际过程中,在收集用户质量要求时,用户所反应的要求往往不是其真正的需求,之所 以会出现这种情况,一般由以下几个方面影响:
(1)用户并不是经常可以意识到自己的实际需要。(2)要求在被确定之后还是可能会发生变化的。 (3)不同的用户可能具有不同的操作环境。 (4)特别是对于现代软件,咨询所有可能类型的用户是很难办到的。
用户质量要求可通过使用质量的度量、外部质量、内部质量来确定为质量需求。确定后,这些 需求应该作为准则来使用。当然获得满足用户的产品通常需要一个不断迭代的过程。 外部质量需求从外观角度来规定要求的质量级别,也包括从用户质量要求派生的需求。外部质 量需求用作不同开发阶段的确定目标,对在本部分中定义的所有质量特性,外部质量需求应在质量 需求说明中用外部度量加以描述,宜先换为内部质量需求,而且在评价产品时应该作为准则使用。 内部质量需求从产品的内部度量来规定要求的度量级别。内部质量需求用来规定中间产品的特 性,这可以包括静态和动态的模型、文档和源代码。内部质量需求可用作不同开发阶段的确认目标, 也可用于开发期间定义开发策略以及评价和验证的准则。 内部质量是基于产品开发内部角度的特性总体,针对产品内部质量需求被测量和评价。通常内 部质量过程包括代码实现、评审、测试等。当然内部质量并不会影响产品质量的基本性质,除非对 内部设计进行重新设计。 外部质量是基于外部角度的软件产品特性的总体。在软件执行过程中,通常我们会在模拟环境 中使用模拟数据进行测试,站在外部质量进行测量和评价。在测试期间,大多数故障都可以被发现 和消除。当然这并不代表测试结束后产品就不存在故障,在测试后仍会有一些故障我们没有发现。 使用质量是基于用户角度的,软件产品在指定的环境和使用环境时的质量,测量用户在特定环 境中达到目标的程度。