拥有较高软件过程成熟度的组织能以极低的出错率来确保软件生产的质量。因此,在具有较高软件过程成熟度的组织内,如果在需求分析阶段以及对相应的功能进行设计、改进、测试的同时,对非功能特征给予恰当的关注,无疑将极大地提高软件产品的质量。这就是在MIEL发起的产品质量改进计划的主题。在本文中,我们将讨论那些对产品质量改进至关重要的关键过程和软件工程技术的相关领域。同时提出作者从所参与项目中得到的关于如何指导和开展某些关键实践(如指定非功能性需求)的一些经验,以供读者参考。我们还提出一些有关产品质量评价标准的想法,以帮助在产品的改进、测试以及交付过程中保持对产品质量的跟踪。
1. 绪论
软件产品质量不同于软件生产质量。一个成熟的软件过程能确保好的生产质量(功能的正确性、可估计的费用和进度、较低的出错率)。但是,产品质量对此提出了一个新的问题:好的生产质量是否就一定能保证满足用户对产品的期望呢?以及产品是否完全按照发展组织的观点进行开发,就像MIEL一样。这种观点包括许多方面,比如用户对产品提出的意见,它是由产品的可用性、操作性、有效性等因素决定的。从发展组织(MIEL)的观点来看,决定产品质量的因素还包括可重用构件的开发和使用以及它们是否在将来的产品中具有较强的改进能力,使产品能够容易地进行变更或者自定义,易于扩展,易于维护,易于操作。
质量特征是由技术型风险承担者和非技术型风险承担者共同提出的希望实现的系统功能,它包括功能性、操作性、可用性、有效性、风险措施、安全性、质量,等等。我们可以进一步将这些质量特征划分为四大类,即:商业特征、行为特征、改进特征和发展特征。
一般说来,软件产品的最终用户是最关心行为特征的风险承担者,发展组织最关心发展特征、商业特征和改进特征,消费者团体最关心商业特征和改进特征。
实现软件产品的功能正确性是必要的,但是将一个产品的系统设计和实现与其它产品区分开来必须依靠非功能特征(比如操作性、可用性、有效性等等)的满足。
3.1 特征调查
在明确地阐述产品质量改进计划之前,我们应该与不同操作过程中的关键技术员进行交谈,以较好地理解他们所认同的产品质量特征的含义。数据代表项目的个数。调查涉及到的基本特征包括:操作性、可用性、有效性和改进能力。
3.2 技术
与产品质量相关的关键技术组成包括:
—如何详细说明质量特征?
—如何为质量特征进行设计?
—如何分析和测试质量特征?
我们研究的重点将放在下面四个质量特征上:操作性能、可用性、改进措施和有效性。