PLM软件质量管理理论研究

【导读】
软件产品质量的保证是软件项目管理的一个重要内容。软件项目的目标不仅仅是进度目标和成本目标,更重要的就是质量目标,质量直接决定了软件产品能否生存。软件项目质量管理包
   软件产品质量的保证是软件项目管理的一个重要内容。软件项目的目标不仅仅是进度目标和成本目标,更重要的就是质量目标,质量直接决定了软件产品能否生存。软件项目质量管理包括:质量计划编制、质量保证和质量控制三个过程域。

 
   质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。
 
   质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。




 
2.1软件项目管理概述
   所谓软件项目管理是通过对成本、人员、进度、质量、风险等进行分析和管理,从而保证软件项目能够按照预定的成本、进度、质量顺利完成的活动。它包括项目的计划、项目组织、开发模型定义、监督和控制等主要活动。软件项目管理的根本目的是为了让软件项目从分析、设计、编码到测试、维护等阶段都能在管理者的控制之下,按预定成本按期、保质的完成软件并交付用户使用。而研究软件项目管理是为了从那些成功或失败的案例中总结出能够为今后项目开展提供指导的原则及方法,同时取长补短,以避免错误再次发生。
 
   软件项目管理的内容主要包括以下几个方面:人员组织与人员的管理、软件评估、软件项目计划、软件质量保证、风险管理等。这几个方面都是贯穿、交织于整个软件开发过程中的。其中人员组织与人员的管理主要包括对项目组人员的构成及优化;软件评估主要是用量化的方法评测软件开发中的费用、进度和产品质量等要素是否符合预期值;软件项目计划主要包括对工作量、开发成本、开发时问的估计;软件质量保证是保证产品或服务能充分满足用户需求、完成项目目标而进行的有计划、有组织的活动;风险管理是预测可能发生的各种危害到软件产品质量的潜在因素并由此采取措施进行预防。
 
   软件开发过程可以分为以下几个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段,这几个阶段都是不可缺少的。在进行软件项目管理时,我们可以遵循著名软件工程专家B.W.Boehm总结出的软件开发的七条基本原则:

   (1)用分阶段的生命周期计划严格管理;

   (2)坚持进行阶段评审;

   (3)实行严格的产品控制;

   (4)采用现代程序设计技术;

   (5)结果应能够清楚地审查;

   (6)开发小组的人员应该少而精;

   (7)承认不断改进软件工程实践的必要性。




 
2.2软件项目管理的特殊性
   相对于制造业、建筑业等项目来说,软件项目的成功率一直被公认为较低。总体来说,软件项目的成功率一般为30%左右,同时成本超出预算、时间超出预算的情况也普遍存在。之所以产生这样的结果主要是因为软件项目管理与其他行业的项目管理相比存在一定的特殊性,包括范围的不确定性、需求与实现的差异性、开发效率不确定性、工时标准不固定性等等。
 
   (一)范围的不确定性在软件开发项目的整个生命周期中,软件需求随时可能发生变化,因此软件项目的范围不确定性非常高。同时,在项目初期,由于客户往往不能清晰完整地表达他们的需求,有些需求可能是项目进行过程中才被提出来,因此也给项目范围的确认带来了不小的难度。
 
   (二)需求与实现的差异性软件项目的开发人员通常不是业务领域的专家,而业务领域的专业人员往往又不懂软件开发,因此用软件表达需求会与真实的业务需求存在一些偏差。这给项目的成功带来了一定的风险。
 
   (三)开发效率不确定性软件开发项目在很大程序上受软件架构设计好坏的影响,同时软件程序开发人员的效率受项目条件的制约也会出现很大差异。
 
   (四)工时标准不固定性软件开发不同于制造业的生产活动可以制订标准工时,软件开发人员的技能和工作效率往往随经验、对技术的掌握程度以及对业务问题的了解程度而表现出很大的差异,这也给项目的成本和进度估计带来了难度。因此在日常软件项目中,开发人员的加班加点,特别在项目后期,是普遍存在的现象。正是由于软件项目管理存在以上特殊性以及软件所特有的不确定性,为软件开发项目管理带来了难度和挑战。如何保障软件项目的成功率及软件质量成为我们所面临的一个重要课题。因此,我们需要收集项目中质量管理的成功经验,逐渐形成一个成熟的软件项目质量管理的模型,以提高软件开发的整体水平。




 
2.3软件项目质量管理
   质量:一组固有特性满足要求的程度,指产品或服务满足规定或潜在需要的特征和特性的总和。它既包括有形产品也包括无形产品;既包括产品内在的特性也包括产品外在的特性,即它包括了产品的适用性和符合性的全部内涵。
 
   软件质量:在国家标准《信息技术软件产品评价质量特性及其使用指南》中对软件质量(software quality)的定义是“与软件产品满足明确或隐含需求的能力有关的特征和特性的总和”。这个标准符合对软件质量的普遍理解,即符合用户需求的软件才能被视为高质量的软件,因此客户满意度指标也可以作为软件质量度量体系中的一个参考指标。
 
   软件项目的质量管理:指的是保证项目满足其目标要求所需要的过程。质量管理在项目管理中是非常重要的环节,它主要包括质量计划编制、质量保证和质量控制三个过程域。质量管理实施的主要过程描述如下:

   编制项目的质量计划,首先确定项目的范围、中间产品和最终产品,确定可能影响产品质量的技术要点,并找出能够确保高效满足相关标准的过程及方法。编制质量计划通常采用流程图、因果分析图等方法对项目进行分析。编制质量计划需确定需要监控的关键元素,设置合理的检查点,并制定质量标准。
 
   质量计划中还必须确定有效的质量管理过程,明确质量监理人员对项目质量负责和各级质量管理人员的权限。质量计划中必须将管理活动的细节明确落实到各责任人或单位,才能保证质量计划的有效实施。质量计划确定后,按照其建立的质量管理体系,各模块就要按照质量计划的要求实施有效的质量控制。质量控制应贯穿于项目的整个过程,它可分为监测和控制两个阶段:监测的目的就是收集、记录和汇总有关项目质量的数据信息;控制就是使用质量监测提供的数据进行控制,确保项目质量与计划保持一致。
 
   在质量监测过程中,对于质量计划中设置的检查点或里程碑事件,质量监测人员要及时进行检查,以确定项目是否符合相关的质量标准。同时,对质量监测的结果要进行及时的分析,确定项目实施过程是否在控制之中,并进行趋势分析,对一些偏向于不合格的趋势及早进行控制。在质量监测分析时,对于那些已发现的不合格或存在着潜在不合格的因素,应制定相应的纠正措施或预防措施。纠正措施或预防措施制定后,应对质量计划进行相应的调整,保证项目的顺利实施。
 
   项目收尾包括项目评估和项目终止两个阶段。项目收尾阶段的质量控制是一个非常重要而又容易忽视的内容。项目质量评估不仅仅是在项目完成后进行,还包括对项目实施过程中的各个关键点的质量评估。项目质量评估看起来属于事后控制,但它的目的是试图总结出项目质量合格或不合格的精髓,以便在以后的项目质量管理中能够从中获益。
 
   项目终止阶段,应提供项目质量评估报告、项目竣工报告等,同时进行项目总结。项目总结是一个把实际运行情况与项目计划不断比较并提炼经验教训的过程。通过项目总结,项目过程中的经验和教训将得到完整的记录和升华。一个角色也可以包含多个访问者。




 
2.4软件项目质量管理实施方法研究
   在PLM系统软件开发项目质量管理活动实施过程中,根据企业质量管理的现状以及软件项目质量管理的特点,我们主要借鉴了戴明环、PSP和TSP三种质量管理实施的方法,具体理论分析如下:
 
2.4.1戴明环
   在项目质量管理的实施过程,戴明环(又名PDCA循环法)作为有效的管理工具在质量管理中得到广泛的应用。它为企业实施质量改进提供了一个周期模型。将这个模型运用到企业全面质量管理过程中,企业可以把它用做质量过程改进的方法,通过对问题的定义,确定改进机会,建立改进计划和目标,并根据问题产生的原因实施改进,在改进实施中收集数据,进行分析评价,从而进行持续的改进。戴明环一般将项目划分为四个阶段:

   第一个阶段称为计划阶段,又叫P阶段(Plan)
   这个阶段的主要内容是市场调查、用户访问、需求收集等,摸清用户对产品质量的要求,确定质量目标和质量计划等。

   第二个阶段为执行阶段,又称D阶段(Do)
   这个阶段是实施P阶段所规定的内容,如根据质量标准进行产品设计、试制、试验、其中包括计划执行前的人员培训。

   第三个阶段为检查阶段,又称C阶段(Check)。

   这个阶段主要是在计划执行过程中或执行之后,检查执行情况是否符合计划的预期结果。

   最后一个阶段为处理阶段,又称A阶段(Action)。
   主要是根据检查结果,总结经验并采取相应的措施。

图2-1PDCA