引言
说到软件项目的质量管理,首先要弄清楚什么是质量管理。国际标准组织ISO9000对质量的定义就是:质量是产品或服务用于满足人们潜在或明示的需求的所有特征和性能的总和。
软件项目的质量管理就是确定软件项目的质量方针、目标和职责,并通过质量规划、质量保证、质量控制和改进等工作确保软件项目的质量得以实现的全部管理活动的总称。
怎样才能做好软件项目的质量管理呢?我们要在理解现代软件项目的质量管理的理念的基础上,使软件项目的质量管理具有可操作性和可衡量性。
现代软件项目的质量管理的理念包括:
①顾客满意:就是我们的交付件(本文指软件)要满足客户的期望;
②预防胜于检查:质量管理的重点在事前的预防,而不是事后的检查;
③管理层责任;
④持续改进:软件项目的质量管理是一个持续改进的过程。
即使我们理解了现代质量管理的理念,达到质量管理所要求的高度,我们在实际操作中,还需要理论联系实际。这就要求软件项目的质量管理具有更强的可操作性和可衡量性,为此将软件的质量定义为达到要求(Conformance to Requirements)和适合使用(Fitnessof Use)两个层面。也就是说,软件项目的项目工作要提交出原来所要求的、具有实际用途的软件产品。简单地说,软件项目的质量管理就是产出的软件,满足客户明确需求、隐含需求的能力的所有特性。在现实生活中,监控所有对质量有影响的关键点,采用有效的测量手段来管理软件的质量,从而实现软件项目的“高”质量。
1 质量管理的流程总述
一般软件项目可分为启动、规划、执行、监控和收尾五个部分。其中质量管理涉及到规划、执行、监控三个部分。软件的质量管理包括质量规划、实施质量保证、实施质量控制三个部分。
质量规划在软件项目的规划过程组中;实施质量保证在软件项目的执行过程组中;实施质量控制在软件项目的监控过程组中。他们之间的关系并不是相互独立的,而是相互作用,相互影像的。
在软件项目的质量管理中,质量规划就是判断哪些质量标准与本项目相关,并决定应如何达到这些质量标准。它是软件的项目管理计划的一部分,一般在项目的规划时处理。
软件项目的质量保证是指质量系统内实施了计划的、系统的活动;同时为项目满足所有项目利益相关方的要求提供信心,相对于内部的质量控制,质量保证可以说是对外的,它包含:
①涉及整体项目、提高信心;
②涉及经验教训总结/质量审计;
③重新评价质量标准是否合适;
④实施阶段。
软件项目的质量控制是在项目生命周期的几个关键点上进行的,它决定了项目进行的方式并进行了必要的纠正。质量控制是质量保证的输出,它考虑了项目的效果和效率。
它通常包含:
①涉及项目的具体工作成果(软件,开发过程中的文档等);
②涉及到具体工作成果是否可以被接受;
③检查具体工作成果是否符合相关质量标准;
④监控阶段。下面将介绍软件项目中质量管理的各个流程。
2 软件项目的质量管理流程
1·1 质量规划
从前文可知,软件项目的“高”质量来自于“好”的计划。只有一个好的质量规划,才有可能产出高质量的产品。质量规划既然如此重要,那如何做才能制定一个“好”的软件项目的质量规划呢?
制定软件项目的质量规划,依据的是公司的质量方针。公司的质量方针是“由最高层管理部门正式阐明的、组织关于质量的总的打算与努力方向”。由此可见,质量管理是最高层责任。
项目质量规划的目的都是为了产出“高”质量的产品。那么怎样衡量软件项目质量的高低呢?我们主要的手段是将软件项目的质量和其质量基准进行对照。基准对照是将软件项目的实际做法或计划做法与其他项目的做法进行对照,从中萌生出如何改进思路,或者提供一项量度的标准。
1·2实施质量保证
质量保证指通过实施计划中的系统质量活动,确保项目实施满足要求所需的所有过程。
质量保证的内容有:
①清晰的软件质量要求说明(包含在软件的需求分析和范围说明书中);
②科学可行的质量标准;
③建立和健全软件项目质量体系;
④配备合格和必要的资源;
⑤持续开展有计划的质量改进活动;
⑥项目变化全面控制。
1·3实施质量控制
实施质量控制指监视软件项目的具体结果,确定其是否符合相关的质量标准,并判断如何杜绝造成不合格结果的根源。
软件项目的质量控制包括两项内容:
①监控具体的交付软件,以确定他们是否与相关质量标准一致;
②确定消除造成不满意结果的影响因素。
其中“结果”也包含两项:
①产品结果(交付的软件);
②项目管理结果(成本与进度计划执行绩效)。实施软件项目的质量控制,就必须实施质量监控。
如何对质量进行有效的监控呢?有如下几条原则:
①监控工作对事不对人;②监督与服务相结合;③采用结构化的监控方法;④制定合理基线;⑤动态持续监控;⑥监控信息交流;⑦采取必要的变更和纠偏行动。
在质量监控的原则上,我们对软件项目的质量实施控制。
质量控制主要有以下步骤:
①收集质量数据;②整理数据;③统计分析;④判断质量状况;⑤分析原因;⑥拟定措施。
再严格的质量保证,质量控制都会有变更的情况出现。
质量变更方法有如下几种:
①利用质量保证,检查质量标准的有效性,如必要,重复进行质量计划;
②利用质量控制,检查项目成果质量,如必要重复进行质量计划;
③利用边际分析:对单位质量改进能够产生的效益增加和需要支付的成本增加的分析。
最佳的质量应该是效益增加和成本增加相等时的质量。对于软件项目的质量变更,事前判断质量的成本,然后才决定是否变更。软件项目的质量成本包含多个方面,它不仅包括预防成本,评估成本,还包括内部缺陷成本和外部缺陷成本。
对于软件项目的质量成本,在实际处理中我们可 以通过提高符合成本来降低不符合成本,实现质量总成本的降低。
2 实际处理过程
理论很容易学会,但是理论联系实际一直都是一个问题。下面我们将从六个方面说明软件项目的质量管理。其中第一、二、三为质量规划部分,第四为实施质量控制部分,第五条为实施质量保证部分。第六条贯穿质量管理的全过程。
(1)确定交付物的质量特性。
①软件产品的“质量”很大程度上是由其设计确定的;
②并非所有软件过程中的设计细节都可以进行质量控制;
③软件的功能系指软件完成自身工作的“好坏”程度。
(2)选择各个软件项目的质量特性的测量指标。
要控制软件项目的质量,所确定的特性必须是可以测量的。如证券软件的委托笔数在一定客户量下每秒能达到的性能等指标。
(3)设定各个软件项目的质量特性的指标。
对所确定的软件项目的质量特性指标要建立一个质量标准作为评价标准。这就涉及两个方面:①标准的可行性:并不是所有质量管理的标准都适用于软件项目,标准是否可行可从三个方面进行考量:与顾客期望比较;与同行比较;与历史比较等;②成本制约应是:无论对顾客还是我们,都必须要考虑软件项目的成本和进度等问题。
(4)根据这些标准对软件项目的质量进行控制。
设定标准后质量控制部门的任务就是对软件进行检验测试,看它们是否符合标准。现代质量管理的理念是质量是管理层责任。那么管理层该采取哪些措施来避免重大责任的发生呢?
以下以项目经理为例来进行阐述管理层应采取的措施。在软件项目中,项目经理有三个职责(工作方向)可以提高软件的质量:
1)在运作系统的什么位置上检验?项目经理在软件开发过程中设定关键控制点(包括但不限于里程碑):即进行检验以保证软件符合规范的位置:开发前、开发中、开发后。
项目经理设立检查点的基本原则是:
①在一个业务逻辑特别复杂的流程开始之前;
②在与其他软件系统进行对接前;
③在一个模块功能完成前;
④在潜在的损害、破坏可能发生前;
⑤在责任发生转移前。
2)检验的方法。在软件项目中,一般采用测试软件来模拟一定的环境对软件进行测试,例如压力测试等,通过测试来达到检验软件的目的。
2·1产品审计计划
(1)在实际项目中,质量管理人员依据剪裁后的项目过程表(含工作产品)、项目计划,制定项目的《质量保证计划》,在计划中列出质量管理人员需要审计的产品、审计活动的时间,以及需要参照的标准。
(2)在实际项目中,审计的工作产品一般包括:业务需求说明书、需求分析说明书、项目计划、概要设计说明书、单元测试报告、测试用例、测试计划和配置管理计划等。
2·2过程审计计划
(1)在实际项目中,质量管理人员根据剪裁后的项目过程表(含过程元素)、项目计划,制定项目的《质量保证计划》,在计划中列出需要审计的过程活动、审计活动的时间、需要参照的标准。审计活动的时间根据具体项目的活动时间确定。
(2)在实际项目中,审计的过程包括管理过程、开发过程、支持过程。过程活动一般包括:立项管理活动、需求管理活动、项目策划活动、项目监控活动、收尾管理活动、软件工程产品活动、同行评审活动、里程碑评审活动、配置管理活动、培训活动、度量与分析。
(3)组织级相关活动包括:组织培训活动、项目工作量度量(即周计划制定与项目时间填写)、组织级配置管理活动、过程改进(如PMO会议)。审计时机:定期(一般每两周或每月一次)。
3 结语
对软件项目进行质量管理,首先需要知道企业的质量方针;在企业的质量方针下制定详细的质量规划。在制定完质量规划后,要让软件项目的质量管理具有可操作性和可衡量性。同时我们需要牢记,任何类型的质量管理过程,都是一个持续改进的过程,需要不断变更。
现代软件项目的质量管理的思路是:加大前期预防成本的投入,减少后期缺陷成本的支出,从而实现“质量免费”。