《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于GQM的软件过程改进度量模型的研究
基于GQM的软件过程改进度量模型的研究
2014年微型机与应用第17期
徐 俊,罗 军,韩坚华,汪双兔
赛宝认证中心,广东 广州 510006
摘要: 提出一种基于GQM的目标、信息及属性共同驱动的GQ(I)M的软件过程改进度量模型,并且通过统计过程控制方法SPC来进行分析验证,能够得到软件组织过程的一组基线模型,为企业决策者在实施软件过程改进中提供有效的支持和指导,以降低缺陷率、控制风险以及提高产品质量等,满足企业希望以较低成本取得良好改进效果的需求,尤其是对中小企业更具有现实意义。
关键词: GQIM SPC 基线 度量模型
Abstract:
Key words :

  摘 要: 提出一种基于GQM的目标、信息及属性共同驱动的GQ(I)M的软件过程改进度量模型,并且通过统计过程控制方法SPC来进行分析验证,能够得到软件组织过程的一组基线模型,为企业决策者在实施软件过程改进中提供有效的支持和指导,以降低缺陷率、控制风险以及提高产品质量等,满足企业希望以较低成本取得良好改进效果的需求,尤其是对中小企业更具有现实意义。

  关键词: GQ(I)M;SPC;基线;过程改进;度量模型

  近年来,软件的规模和复杂度不断地提高,软件开发项目也变得越来越复杂和难以管理,软件项目经常出现质量不高、成本超支、进度滞后以及范围失控等问题。有关研究和实践表明,70%的软件项目失败不是由于技术实力不够而是由于管理不善造成的。产品的质量很大程度上取决于生产和维护产品过程的质量,这一结论已在全世界范围内获得认可[1-2]。

  目前,CMM模型发展到CMMI模型,将度量由分散在其他过程域中提升为一个独立的过程域,由此可见度量在软件组织过程改进过程中的必要性和重要性。 调研发现,目前采用CMMI度量模型进行改进的企业,尤其是中小企业在实施过程改进中并没有达到预期的目标。总结原因,大致在于:选取度量元的盲目性,缺乏度量经验的人员不知从何着手。度量需要考虑成本,过于盲目进行度量不但给软件过程改进组织带来成本压力,而且还会给软件组织过程改进带来阻碍;度量过程脱离开发过程实际,将很难按照现有的度量模型去规范项目数据和采集项目信息,或者即使采集了数据却没有运用有效的分析技术;最后,许多度量程序由于缺乏一致的度量标准,使得数据高度相似、无效或者缺失,从而导致数据信息分析的延迟和分析结果的可靠性遭到质疑[3]。

  本文提出一种基于GQM的支持过程改进的目标和信息共同驱动的GQ(I)M软件过程度量模型,该模型可以在组织的目标和信息驱动下,形成软件组织的度量模型和相关基线,经实验验证,该模型可以保证度量结果的时效性、可靠性以及可操作性。

1 模型概述

  1.1 GQM模型

  GQM模型(Goal Question Metric)是由美国马里兰大学的Vietor Basili博士及其助手提出的一种面向目标、自上而下、由目标逐步细化到度量的度量方法,具备较强的操作性和灵活性。它基于如下假设:对于一个有目的地进行软件度量的组织,首先必须指定组织和项目的目标,然后通过目标跟踪到项目数据,这些数据旨在可量化地定义目标,最后提供一个解释数据与相关目标的框架。每一个组织、项目均有一系列目标要实现;而要实现每一个目标,均要回答一系列问题才能知道目标是否实现;对于提出的每个问题,都可以找到一个完整、可以量化的满意解答。他把组织的目标归纳、分解为度量的指标,并把这些指标提炼成可以测量的值,从而能够更好地预测、控制过程性能,实现软件开发的定量化管理。GQM三层模型如图1所示。

004.jpg

  1.2 改进的度量模型GQ(I)M

  度量在软件发展过程中,前人已经摸索出了一些方法和标准,但是,无论是CMM/CMMI模型,PDCA模型,还是IDEAL模型或者GQM模型,要么是因为企业资金原因,要么是因为操作流程繁琐,都或多或少有一些缺陷。尤其是对于一些中小型企业,资金技术实力不够雄厚,人员流动大,所能承受的风险小,在这种情况下,提出一种具有可操作性和结论时效性的度量模型显得颇为重要。在研究前人提出的模型中,结合GQM模型,提出了一种改进的软件度量模型GQ(I)M,主要思想是在GQM模型的基础上,引入指示器I。GQIM示意图如图2所示。

005.jpg

  GQIM模型是基于GQM模型,在其基础上,在问题Q和度量M之间引入指示器I,可以直接反映问题层的问题,是一种目标G和信息共同驱动的度量模型,并且在分析验证阶段,将收集到的相关度量数据采用统计过程控制(SPC)的方法进行分析和验证,这样既可以避免单纯采用GQM模型造成的度量实施过程中不能及时发现问题和原因的局限性,或者单纯采用SPC方法分析造成的不能够更好地将项目目标、组织过程性能目标与商业目标相联系起来的缺点,而且能够最大限度地保证度量结果的时效性、可靠性以及更具实际意义的可操作性[5-8]。相关流程如图3。

006.jpg

  在项目和组织的特定需要的基础上,GQ(I)M模型的工作原理就是提供一种模式来帮助软件管理者为了达到管理上的目标而设计一整套软件度量体系,运用系统的方法来对软件过程和产品模型中的各个目标进行裁剪和整合。GQ(I)M可以有效回答正在收集的数据目的是“为什么”这个问题。“为什么”的问题是重要的,因为基于它可以确定如何解释所获得的数据,而且,该问题的答案也可以为后续项目活动中变更相关度量计划和过程提供基础。软件开发中运用基于GQ(I)M改进度量模型的方法力求形式化表达这个特殊的过程,通过定义目标和测量指标,使之便于理解,易于培训,方便知识的重用和计算机管理,以及适应于复杂、多变的应用环境等。

2 实施GQIM度量模型的过程

  2.1 模型实施原则

  ⑴度量目标的选取。度量目标取决于企业商业目标。度量的目的是为了达成某个目标,而不仅仅是为了度量去度量。它既可以是看作为了加强对软件过程的理解,也可以是为了组织过程改进。然而,不论是何种目标,均是为了公司的商业目标服务的,因此,在选取组织度量目标时,一定要结合公司的商业目标,并确保度量目标与商业目标的可跟踪性[4]。商业目标、过程目标与度量目标的映射关系如图4所示。

001.jpg

  ⑵用发展的思想来提供度量环境和聚焦目标。在软件度量过程实施中,度量目标的选择多种多样。面对大量的数据,可能会感到迷茫不知所措,因此必须运用发散的思维确定所关注的重点过程和目标,明确度量目标先后顺序。为了能够达到这些目标,还需要建立起达到这些目标的支撑环境,比如度量过程中的辅助工具Minitab、SPC分析方法以及各种控制图等。

  ⑶通过GQIM模型把非形式化的目标分解为可以执行的度量单元。明确了度量目标后,通过这些目标分解出具体的问题,问题解决实际上就是达到了度量目标。每一类问题都和特定的指示器相对应,根据问题,可以派生出相对应指示器或者清晰的度量项,由此,可以得到度量目标与度量数据项之间的映射联系。

  2.2 实施步骤

  采用基于GQ(I)M模型改进的度量活动有4个阶段[5]。

  ⑴计划阶段:确定一个度量项目,通过定义、特征化,制订出项目度量计划。

  ⑵定义阶段:定义度量步骤(确定假设、目标、问题、度量)并文档化。

  ⑶收集数据阶段:收集、确认、分析数据,得到结果集合,并采取相应的措施。

  ⑷解释阶段:按照度量定义将收集的原始数据转换为可量化的测量结果,解答前面的相关问题,评价所要达到的目标。通过事后剖析的方式分析数据以评估是否与目标一致,建立软件组织的性能基线模型,并为其后的改善提供建议,为测量结果利益相关者提供反馈信息。

3 基于GQIM模型建立软件组织性能基线实例

  M公司是一家从事软件开发的中小型企业,在资金和技术上均有一定的制约,为了节约成本,提高产品质量,为公司赢得信誉,项目组决定采取基于GQIM的度量方法对项目进行全程追踪。项目组共有30人,其中开发人员15人。

  3.1 度量计划确定


002.jpg

  图5是银行信贷监管系统项目编码阶段的甘特图,其为度量数据的收集设置了一定的频度,按此计划,可以在一定的频度下,收集到项目的度量数据。

  3.2 度量目标获取

  以下通过选取软件开发缺陷为例来说明度量目标和指标的分解过程和确定过程。度量目标和指标的结构化描述如下。

  ⑴度量目标:降低开发缺陷,提高产品质量。

  ⑵度量对象:银行信贷监管系统项目开发过程。

  ⑶度量目的:评价组织过程的性能,缺陷是影响软件质量的重要因素,控制缺陷是提高软件质量的重要手段。因此,在软件开发过程中需要对缺陷进行跟踪和监控,利用缺陷数据来协助管理项目。

  ⑷度量环境:新开发的银行信贷监管系统项目,项目规模30人,其中开发人员15人。

  结合GQ(I)M模型,可以得出如下度量目标与指示器的映射如表1所示。

003.jpg

  3.3 建立软件组织过程性能基线

  (1)统计过程控制SPC原理

  根据中心极限定律,子组(每次采样中进行的n次实验称为一个子组)样本均值missing image file将随着样本数量的增大而近似的服从正态分布missing image file。由3σ原理可知,missing image file,如图6所示。这说明软件产品的性能特性落在missing image file内的概率为99.73%,在此范围之外两边的概率均为0.135%。当落到missing image file范围之外时,即为小概率事件发生,可判定此过程处于失控状态,此过程中有不稳定因素发生或存在[6]。

  (2)控制图

  SPC常用控制图来反映,用来区分软件组织活动过程的异常是由偶然因素引起的还是由固有因素引起的。控制图与SPC对应关系如图6所示。

008.jpg

  控制图与控制线:

  SYES3SRQ7{MJ37%KHX91M}7.png

  右转90°

4 过程基线模型的建立

  根据项目度量计划设置一定频度,在项目执行的不同阶段为组织过程性能分析收集原始数据(结合图3说明)。在软件组织中,根据项目规模大小、用户需求、技术复杂性、项目范围、活动类型等分为不同种类。这样就可以得到可能是唯一的只适用于一种类型的项目度量数据。收集数据之后,按照一定的规则归类,并且根据这些规则依次运用统计过程控制(SPC)的方法建立组织的性能基线。如果某些类型的项目的数据较少,则将选取类似的项目数据类型组合在一起使用[7]。

  4.1 基线样本数据的分析技术

  所有基线采用XmR控制图方式,采集到的样本数据基于以下公式计算如下。

  X为样本值,mR为移动极值差;

  样本均值:

  Z`1@15_NT}AKZ76ZNZJGEV4.png

  注:其中σ为样本标准差,对于控制范围为2σ,A=2;3σ,A=3…以此类推。

  4.2 样本数据的采集

  在项目中收集到的参数如表2所示,n表示样本数据的样本点数,即样本容量,d2,d3是随样本容量变化的常数。

007.jpg

  根据4.1公式可以得出项目的一组相关基线,如表3所示,其中类型是根据相关过程在具体项目中采取不同的类型建立的不同基线。

  4.3 异常点的判异准则

  剔除异点判异准则[6]:

  1个点距离中心大于3个标准差;

  连续9个点在中心线同一侧;

  连续6个点全部递增或者全部递减;

  连续14个点上下交错;

  3个点中有两个点距离中心线同一侧大于两个标准差;

  5个点中有4个点距离中心线同一侧大于1个标准差;

  连续15个点距离中心线任一侧1个标准差以内;

  连续8个点距离中心线任一侧大于1个标准差。

010.jpg

  剔除异点后重新计算均值和上下限,要保证所有采集到的数据都落在正常值域范围,这时的数据即为过程最终的基线。注意应保持至少3个有效的数据,对踢出的异点应分析原因,必要时应针对该原因提出改进计划措施。

5 度量结果分析

  5.1 I-MR控制图建立

  选择Minitab统计分析工具来模拟仿真,确定过程性能的基线值,评估度量过程的稳定性,注意计算过程性能基线值只适用于稳定过程[7]。例如:通过单点值和移动值域(I-mR)图法建立软件组织过程性能基线。其中I是随着时间顺序观察得到的单点值,mR值是将后一个观察值和前一个观察值比较的差值,即移动极差值。当以单个观测值收集数据时,就没有办法计算出每个子样组的标准方差,所以可采用移动极差代替,过程变异可通过计算两个或者多个连续观测值的极差来反映。图7为编码缺陷率的I-MR控制图:

  5.2 根据指示器分析度量结果

  本文引入的指示器,就是能够在发现问题时,及时有效的找到问题出现的根源,让管理者及时做决策,掌控全局[8-10]。对于类似软件项目来说,若开发过程是稳定的,则开发过程中的缺陷率也是稳定的,因此缺陷率可以很好反映编码过程状态。若某一段时间缺陷率持续偏高或者偏低,偏离组织的性能基线,则需要对该阶段活动进行分析,找出原因并及时采取有效措施。项目结束时,可以总结经验教训,并将其纳入到组织财富库,调整组织性能基线,为后续项目作参考。

  根据上文度量目标与指示器映射表,可及时快速找出问题所出现在的模块。针对指示器“软件缺陷密度分布”,如果软件某个模块的实际缺陷密度在一个阶段突然增加或者降低,其可能原因或者是该项目开发人员的能力欠缺,或者是模块功能本身较为复杂,需要针对它进行原因分析,以达到将其维护到软件组织的正常基线范围内。

009.jpg

  由图7可发现,第4个点落在控制线之外,根据4.2节异常点判异准则知该点异常,其余点正常可控。

  针对第4个点出现的异常,结合表1中的指示器对应部分做了分析,结果发现,新员工参与的模块缺陷率较高、缺陷密度较大。通过原因分析发现是由于公司最近新招进来一批员工,没有经过培训就直接加入到项目组,各自有自己的一套编码风格,对公司编码规范不了解,造成了后续代码缺陷率过高,超出控制线范围。找到原因之后,可将这些原因归类,作为组织经验纳入到公司的财富库中。针对原因,采取一定的改善措施,通过一段时间培训,项目的缺陷密度基本稳定,及时关闭了相关缺陷,较以往类似项目相比,缺陷的发现和关闭时间均有一定程度的提前,项目如期交付,得到客户的认可。

  软件开发活动在很大程度上受人的主观意识支配,具有一定的不确定性和盲目性,这对软件开发的认知造成一定的困扰。本文将改进的GQIM软件过程改进度量模型引入到软件项目的管理中,在很大程度上缓解了以往项目管理过程中的盲目性问题。文中给出了模型的度量指示器以及指示器的可视化性表示,并结合了一个项目实例,在此基础上讲述了GQIM模型的构造、实施流程以及结果分析,使得企业软件管理者对项目的管理有一个清楚的认知,为项目决策提供支持,尤其是对中小型企业具有现实意义。后续工作仍需要继续完善该模型的理论,并在企业实践中不断优化改进,力图找到一种适合我国软件企业的软件过程改进度量模型。

参考文献

  [1] 郑人杰,殷人昆,陶勇雷.实用软件工程(第二版)[M].北京:清华大学出版社,2005.

  [2] CMMI Product Team. CMMI for Development.Version1.3[Z].USA: SEI, CMU/SEI_2010_TR_033, 2010.

  [3] 张凤景,任爱华.一种目标与信息共同驱动的度量模型[J].计算机应用,2007,27(2):389-393.

  [4] 徐丹,黄金贵,曾维桥.基于目标的软件过程性能定量评价模型[J].计算机工程与应用,2008,44(2):54-55.

  [5] 徐丹.基于目标的软件过程性能定量评价模型[D].长沙:湖南师范大学,2008.

  [6] 张少岗.基于CMMI的软件过程度量研究与应用[D].郑州:郑州大学,2010.

  [7] 徐俊,李军.软件研发过程性能基线和模型建立方法及应用分析[J].现代计算机(专业版),2013(14):14-17.

  [8] 钱红兵,朱丽娟,曹慧民.基于CMM的软件过程度量系统的设计与实现[J].计算机应用研究,2004,21(6):49-52.

  [9] 田丽从,李铁牛,彭宏.中小型企业软件过程改进方法研究[J].计算机应用与软件,2011,28(4):208-211.

  [10] 范文峰.软件过程度量的研究与应用[D].上海:上海大学,2003.

  [11] 李健,金茂忠.中小型企业软件过程改善方法研究[J].计算机工程与应用,2001,37(19):107-111.

  [12] 程全良.软件过程缺陷度量的研究与应用[D].重庆:重庆大学,2010.

  [13] 王海.基于CMMI的软件度量过程的研究与应用[D].天津:天津大学,2006.

  [14] 徐俊.软件过程改进模型研究与应用[D].广州:中山大学,2008.

  [15] 孔垂云.基于CMMI的软件质量度量研究[D].北京:北京交通大学,2009.


此内容为AET网站原创,未经授权禁止转载。