则,定量化地度量项目工作(或产品)属性从而反映出项目质量水平。McCall等人针对软件开发项目定义的软件质量要素包括:正确性、可靠性、效率、完整性、可使用性、可维护性、可测试性、灵活性、可移植性、重复使用性、连接性;评价准则定义为:可跟踪性、完备性、一致性、准确性、容错性、简单性、模块性、通用性等。
项目质量要素之间会存在有利影响(正相关)和不利影响(逆相关),由于逆相关的存在,所以没有一种方案可以使得所有质量要素都达到最佳。在项目建设过程中,应确定各质量要素的权衡。例如,航空型号研制项目其可靠性是一个至关重要的问题。然而对于商用软件项目,可维护性则是关键。
根据上面三层次式模型,我们可以得到项目质量评价的三个步骤:
1.决定质量要素
在综合考虑了项目的内外部环境(尤其是项目合同)及应用的特性后,可以确定原始的项目质量指标,质量指标反映了各要素对项目的相对重要性。为了定量化地表示要素与项目质量的关系,指标应该用一个数值范围来表示。在为要素分配最终的质量指标时,要考虑到要素间的有利的和不利的关系,以决定为要素所定的指标是否可以达到。
要素和要素间的关系是通过要素和准则间的关系反映出来的,要素和准则的关系有以下三种情况:
(1)准则是要素的基本属性;
(2)准则对要素有有利的影响;
(3)准则对要素有不利的影响;
通过要素与准则的关系推出要素与要素的关系也有三种情况:
(1)几个要素共享同一准则;
(2)某个要素的准则对其它要素有有利的影响;
(3)某个要素的准则对其它要素有不利的影响。
把要素对要素有利的影响和不利的影响的程度加起来,即可得到定量表示的要素间的有利影响和不利影响,二者合并便得到定量表示的要素间的相互关系。有可能存在某些要素与其它要素的严重冲突,要使所有的要素指标都达到原始的质量指标,显然有困难,因此可以适当降低某些指标,而通过其他途径来实现预期的目的。例如在软件开发项目中,效率与可靠性、可维护性及可移植性都有较严重的冲突,要使这4个要素的指标都达到最优,显然有困难,因此可以适当降低效率的指标,而通过改进硬件性能等方法来提高效率,使整个系统 达到预期目的。
为要素规定质量指标即规定了项目所应达到的质量水平。对于项目的工作质量来说,在项目建设的每一个阶段完成以后,为每个要素打分,并与所定的质量指标进行对照,就可以知道这个阶段的工作的质量是否达到了要求。对于项目的产品质量来说,也可按照上述方法规定质量需求,为项目产品打分,并与规定的指标对照,就知道项目产品的质量是否达到了要求。
2.决定属于每个质量要素的准则及其权值
对每个建立了质量指标的要素,找出属于该要素的所有准则。准则的权说明了准则和要素的特殊关系,即准则在要素中所占的比重。加权的结果形式如矩阵M:
这里得到的准则的权值没有考虑到准则和其它要素可能发生的冲突。在准则的权值初步确定以后,可以考察要素与准则的关系,适当调整准则的权,提高对其它要素起有利影响的准则的权,降低对其它要素有不利影响的准则的权,使总的质量指标满足系统要求。
3.决定度量和度量问题
每一度量由若干度量问题(又称度量元)组成,根据度量问题的回答与计分可反映度量的得分,从而反映出评价准则与质量要素的得分。可以有两套度量工作表,一套是面向过程性的,即针对于项目工作质量,对项目建设的每一阶段设计相应的度量问题;一套是面向项目产品的,即对已完成的项目产品质量进行度量。
对每个权值不为0的准则,根据设计好的度量工作表,在考虑了项目环境及应用的特性后,为每个准则选取合适的度量,然后,再为每个度量选取合适的度量元。接下来,根据这一部分选出的度量问题采用合适的评价方法打分,并通过度量问题和度量、准则、要素的层次关系计算出要素的得分。对照起初为要素规定的指标,就可知道在建设过程中,项目质量是否达到了要求。