基于六西格玛设计的软件过程缺陷管理研究
2011-11-24徐炳文
徐炳文
(广东岭南职业技术学院 电子信息工程学院,广东 广州 510663)
成功的软件项目管理是在约定的时间与范围、预算的成本以及要求的质量下,达到项目干系人的期望.能否成功地管理一个软件项目,软件的质量是关键,它与软件的项目范围、成本和时间构成项目成功的四要素[1].软件企业通常同时承接很多项目,为了追赶进度与节约成本,往往忽视了软件质量的管理,软件在设计过程中产生了很多缺陷.由于软件系统本身的特殊性,要开发无任何错误与缺陷的软件系统是不现实的,但是减少软件设计过程中的错误与缺陷是完全可能的[2].传统的软件工程管理虽然从工程的角度对软件开发过程进行了大量研究,但却很少从质量管理的度量角度研究,也没有一套很好的软件过程度量方法能持续改进现有软件过程的度量流程[3].早在1997年,Binder就提出了六西格玛不仅可以用于制造业与服务业,还可以用于软件业.将六西格玛管理思想引入到软件过程管理之中,建立软件过程质量度量模型,并不断优化改进,通过对短期目标的改善进而达到长期目标,可以充分体现软件系统设计以满足顾客需求为核心的质量观,从而提高软件的质量和企业的效益.
1 六西格玛管理思想
1.1 六西格玛管理思想
六西格玛管理思想最早在Motorola公司开始实践,并取得了较好的效益.作为一种突破性的质量管理战略,随后在施乐公司、通用电器与德州仪器等公司的制造流程中得到了全面推广.六西格玛管理最重要的是将思想理念变为提高产品质量的行动,将产品质量目标变为产品质量现实.六西格玛管理思想不仅仅是一种理念,它也是一套改善业绩流程与业绩突破的方法,已经被公认为是企业生产高质量产品的高效管理方法.六西格玛管理包括六西格玛改进方法DMAIC和六西格玛设计方法DFSS.
六西格玛改进方法DMAIC是指由定义(Define)、测量(Measure)、分析(Analyze)、改进(Improve)和控制(Control)5个阶段构成的过程改进方法,一般用于对现有流程的改进,以提高企业产品和服务的质量.一个完整的六西格玛改进项目应完成实施“D-定义”、“M-测量”、“A-分析”、“I-改进”和“C-控制”5个流程阶段的工作,每个阶段又由若干个工作步骤构成并有一系列工具方法支持该阶段目标的实现.通过建立并实施以数据为基础、以测量为依据的六西格玛改进方法DMAIC,以达到改善项目和制造流程、减少变异的目标,进而提高项目的效益.六西格玛改进方法DMAIC如图1所示.
图1 六西格玛改进方法DMAICFig.1 DMAIC of six sigma improvement
六西格玛设计方法DFSS是Design for Six Sigma的缩写,是指对新产品和新流程的设计方法,通常被应用于新产品的早期开发过程.DFSS是一种通过信息驱动的系统管理方法,它强调缩短研发周期和降低开发成本,以实现高效能的产品开发过程,准确地反映客户的要求.DFSS方法的核心是在产品开发的早期阶段应用完善的统计工具,以大量数据证明预测设计的可实现性和优越性,这是实现更高的客户满意度、企业利润和市场占有率的关键.
1.2 六西格玛管理思想的质量度量指标
六西格玛管理的度量指标很多,覆盖了各种连续型和离散型的测量数据,如西格玛水平Z、机会缺陷率DPO、单位缺陷数DPU、百万机会缺陷数DPMO以及首次产出率FTY、滚动产出率RTY等,在这里介绍最常用的2个度量指标——西格玛水平Z和百万机会缺陷数DPMO.
1.2.1 西格玛水平Z
西格玛水平Z是指产品或服务的对应过程输出无偏移的情况,用规格范围上限USL减去规格范围下限LSL所得的值与2σ的比值,其中σ值用样本标准差S估计总体标准差得到.
1.2.2 百万机会缺陷数DPMO
缺陷是指产品、服务或过程的输出没有符合既定规格的要求或没有达到客户的期望.缺陷机会是指产品、服务或在每一个单位工作中可能发生的且最终会导致客户不满意的缺陷的个数.性质不同、复杂程度不同的产品和服务,它们的出错机会是不相同的.在软件行业中,软件缺陷机会随着软件系统复杂性的增加而增加,模块数与代码行数越多,软件系统缺陷的机会就越多.例如,一个软件系统由10个模块构成,每个程序模块有100行代码,那么该软件系统至少包含有1 000个缺陷机会.
百万机会缺陷数DPMO可用来综合度量产品或服务过程的质量,可将性质不同、复杂程度不同的产品或服务等进行质量的行业基准评价.百万机会缺陷数DPMO一般用机会缺陷率DPO×106表示.机会缺陷率DPO指每次机会中出现缺陷的比率,表示了每个样本量中缺陷数占全部机会数的比例.百万机会缺陷数DPMO把出错机会考虑进来,排除了不同性质与不同复杂程度等因素对评价带来的影响.在生产过程中,由于每一种产品都有不同的设计,所以缺陷机会也不同.但是,不管生产何种规格的产品,都能够统计其出现缺陷的数量和缺陷机会的数量,然后用总的缺陷数除以总机会数,就可以得到DPMO值.
2 基于六西格玛设计的软件过程缺陷管理方法模型
2.1 基于六西格玛改进方法DMAIC的软件过程度量模型
与六西格玛改进的DMAIC流程相似,软件设计也有自己的流程,一般的软件设计思路与方法过程为需求调研分析、概要设计、详细设计、编码、测试、软件交付与验收.由于软件开发的特殊性,软件开发人员比较注重软件开发的技术革新,缺乏对软件开发过程的度量管理[4].借鉴CMMI软件的过程度量,结合六西格玛改进方法DMAIC,将软件设计过程的度量管理流程设计为:定义度量内容、收集测量数据、分析影响因素、改进优化设计、控制和验证5个阶段,在每一个度量流程阶段有相应的工具或方法支持开展工作.基于六西格玛改进方法的软件过程度量模型如图2所示.
图2 基于六西格玛改进方法的软件过程度量模型Fig.2 Software process measurement based on six sigma improvement
基于六西格玛改进方法的软件过程度量模型引入了六西格玛DMAIC流程的优势,融度量方法与支持工具于一体,它针对具体的软件过程活动进行改进,使度量过程有了具体的工作流程,这给软件企业管理带来了巨大的帮助.
2.2 基于六西格玛设计的软件过程缺陷管理方法模型
基于六西格玛改进方法的软件过程度量模型管理方法着眼于对现有软件的设计或开发流程的改进,当改进使流程达到西格玛水平Z值4.8水准时,就再难以突破,这就是人们常说的五西格玛墙.为了超越五西格玛墙,达到西格玛水平Z值6.0的水准,实现真正意义上的六西格玛质量,就必须从源头开始提高软件设计的质量,开展六西格玛设计DFSS.DFSS强调质量是在软件的整个设计过程中形成的,而非测试得来.在软件过程中融入六西格玛理念,激发了软件开发的创新能力,加快了创新速度.根据六西格玛改进方法的软件过程度量模型,设计出了基于六西格玛设计的软件过程缺陷管理方法模型(IDOTE),模型分为5个阶段:识别(Identify)、定义(Define)、优化(Optimize)、跟踪(Track)与消除(Eliminate),如图3所示.
图3 基于六西格玛设计的软件过程缺陷管理方法模型Fig.3 Software defects management model base on six sigma design
六西格玛改进方法DMAIC流程在第5个阶段是控制,IDOTE软件过程缺陷管理方法模型在第4个阶段就引入了控制,软件项目过程缺陷管理组有必要对软件过程可能产生的软件错误或缺陷因素进行跟踪,以便确定责任与是否需要采取新的控制措施或对已有的控制做出调整,避免可能产生的软件错误与缺陷漫无边际地外延或遗漏,在适当的时候可以对已产生的软件错误与缺陷进行消除.
IDOTE软件过程缺陷管理方法模型在每个流程阶段中分别对应着该阶段所要完成的任务、过程输出以及所用的研究方法和工具.该方法模型是一环紧扣一环的过程,每个阶段都是对上一阶段的深入与细化.针对目前软件设计过程中存在的缺陷,如可追踪性差、潜在挖掘不深等问题,结合软件设计过程的具体情况,运用六西格玛设计特有的工具进行分析或重新设计开发流程,为软件企业提供达到六西格玛水准的软件质量开发过程管理.IDOTE软件过程缺陷管理方法模型是一套不同于常规设计的过程管理方法,它以顾客的需求为核心、以数据为基础、以质量功能的展开为纽带,深入分析和展开顾客的需求,综合应用软件系统开发的头脑风暴法、Pareto图和回归分析等技术,从而跨越式地快速提高软件产品的质量,更好地满足顾客的需求.
3 基于六西格玛设计的软件过程缺陷管理方法模型实例
某大型信息软件企业为了提高软件开发的质量,改善开发流程,组建了软件过程管理改进小组,运用六西格玛设计方法对软件过程缺陷进行了管理.软件过程管理改进小组运用基于六西格玛改进方法的软件过程度量模型对过去一年中4个大型软件系统的开发流程进行了具体的过程改进.首先,查找缺陷注入阶段,运用Pareto图对产生软件缺陷的各阶段进行查找,如图4所示.
图4 软件过程各阶段注入的缺陷的Pareto图Fig.4 Pareto of software defects in every process stage
从Pareto图可以看出,软件过程注入缺陷最多的是软件需求调研阶段与软件编码阶段.软件开发过程改进小组对软件需求调研阶段与软件编码阶段的历史数据进行了整理,得到了产生软件缺陷的主要原因是获取顾客需求的不全面和开发人员对软件需求的理解不一致等,分析与统计产生缺陷的数据如图5所示.
从图5可以看出,软件过程超出了受控范围.软件开发过程改进小组根据80-20定律把关键问题域锁定在获取顾客需求的不全面和开发人员对软件需求的理解不一致等问题上,然后根据IDOTE软件过程缺陷管理方法模型对需求调研阶段与软件编码阶段实施具体的改进,改进后的软件过程缺陷数据分析与统计如图6所示.
图6 改进软件过程流程后评审发现的缺陷统计Fig.6 Statistics of software defects after software process management improvement
从图6可以看出,改进软件过程流程后,软件每一千行代码缺陷的平均值减少到12,缺陷率明显降低,而且软件过程缺陷处于受控状态.
4 结束语
IDOTE软件过程缺陷管理方法模型的特点在于,强调软件质量出自于计划与设计,而非检查与测试,软件质量管理是软件设计阶段的延伸.使用IDOTE软件过程缺陷管理方法,从质量度量的角度对软件开发过程进行了设计与优化,对可能注入软件缺陷的因素进行了跟踪与消除,使软件产品具有更少的缺陷和更高的质量,从而达到更高的顾客满意度.IDOTE软件过程缺陷管理方法虽然不能使开发的软件杜绝缺陷,但是在软件系统开发的每一个阶段都融入了六西格玛“零”缺陷的设计与管理理念,能够使软件的缺陷率降到最低.将六西格玛的工具应用到软件开发的过程中,不仅为软件过程的改进和软件系统整体性能的评估提供了质量度量的解决方法,还是六西格玛管理和软件工程领域的一个重要补充.
参考文献:
[1] 冯雷, 陈贺新, 邸朝生. 产品设计过程管理模型[J]. 吉林大学学报:信息科学版, 2009, 27(6): 624-627.
[2] 朱焱, 张龙飞. Web质量模糊评测系统的研究与实现[J]. 电子科技大学学报, 2010, 39(2): 242-246.
[3] 宋娜娜. 设计模式在管理信息系统开发中的应用研究[J]. 河南工程学院学报:自然科学版, 2010(3): 34-37.
[4] 马永军, 贾玲. 基于工作流技术的中小型企业软件过程管理系统[J]. 天津科技大学学报, 2009,24(1): 66-70.